无法在JSP中显示图像

时间:2012-02-20 18:28:09

标签: java jsp

我无法在JSP中显示图像(并且无法通过SRC访问外部Javascript / jQuery等其他内容)。以下JSP页面只包含一个<img>标记,该标记无法显示SRC所定位的图像。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="Temp.htm" method="post">
            <img src="/images/temp.jpg" alt="Not available">
        </form>
    </body>
</html>

图片位于/WEB-INF/jsp/images。我还试图改变图像位置,并确保给予SRC的路径的所有时间都是正确的,但事实并非如此。 没有框架的应用程序也是如此。它完美地在那里工作。我在这里缺少什么?

3 个答案:

答案 0 :(得分:10)

首先,无法从外部访问/WEB-INF

其次,如果您使用/images/temp.jpg,浏览器将从Web服务器的根目录加载图像,而不是从Web应用程序的根目录(在上下文路径下部署)加载图像。

使用JSTL <c:url>标记从网络应用的根目录生成绝对路径:

<img src="<c:url value='/images/temp.jpg'/>" alt=.../>

答案 1 :(得分:5)

您无法直接从网络访问位于/WEB-INF/的文件。该文件夹受到Web访问保护。

在其他位置找到您的图像文件。 /images/temp.jpg是绝对路径,但您可能需要相对路径。将图像路径指向image/temp.jpg,并将图像放在直接位于网络根目录下的/images/文件夹中。例如。 WebContent/imagessrc/main/webapp/images(取决于您的网络根目录)。

答案 2 :(得分:2)

尝试放入webapp目录,而不是WEB-INF。 OBV。不要在jsp目录中筑巢。