从 WEB-INF 中的 JSP 访问资源 [重复]

Posted

技术标签:

【中文标题】从 WEB-INF 中的 JSP 访问资源 [重复]【英文标题】:Accessing Resources from JSP inside WEB-INF [duplicate] 【发布时间】:2014-06-05 09:28:45 【问题描述】:

我无法从存储在 WEB-INF 中的 JSP 访问一些图像和 css 文件。我的 servlet 调用了 JSP,一切正常,但页面找不到图像和 css 文件。我对这种事情很陌生,希望能得到帮助。我知道过去有一些关于此的问题,我已经尝试了这些建议,但我似乎无法理解它。这是JSP的内容(我尝试了很多不同的方法):

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="resources/grid.css">   
</head>
<body>  
<!-- Main container -->
<div class="container_12"></div>

<!-- Foreground container -->
<div class="grid_10 prefix_1 suffix_1">

    <img src = "/resources/images/Foreground.png">

</div>

<!-- Header container -->
<div class = "grid 8 prefix_2 suffix_2">

    <img src = "$pagecontext.request.contextPath/resources/images/Header.png">
    <p>Test</p>

</div>

<div class = "clear"></div>

<!-- Navigation bar container -->
<div class = "grid 8 prefix_2 suffix_2">

    <img src = "$pagecontext.request.contextPath/resources/images/Navbar.png">

</div>

 </body>
 </html>

这是我的目录结构:

http://gyazo.com/0a7aea0a44e51e1789c263767e14a40b

【问题讨论】:

请将该资源文件夹添加到WEB-INF文件夹中,我会工作的 有人告诉我,如果文件位于 WEB-INF 文件夹中,我将无法访问这些文件,这是我最初的尝试,也没有成功。 【参考方案1】:

您可以使用下面找到图像的真实路径。

<!-- Header container -->
<div class = "grid 8 prefix_2 suffix_2">

    <img src = "<%= application.getRealPath("/resources/images/Header.png") %>">
    <p>Test</p>

</div>

【讨论】:

那么当它们位于 WEB-INF 文件夹中时,这是否允许我访问这些文件?您在那里获得的目录引用指向当前目录,然后指向资源,对吗?这意味着资源需要在 WEB-INF 内部?还是客户端不知道 JSP 文件在提供后包含在 WEB-INF 文件夹中? 不,它不允许访问WEB-INF文件中的资源文件。上述解决方案适用于您在问题中提到的目录结构。 哦,我明白了,所以客户端应该相信从 WEB-INF 提供的文件在标准的 WebContent 文件夹中?我现在试试,谢谢。【参考方案2】:

将所有文件或 css-images 放在 WEB-INF 文件夹之外。最好的做法是在 WEB-INF 中只放置类和 web.xml。

【讨论】:

以上是关于从 WEB-INF 中的 JSP 访问资源 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

访问WEB-INF下JSP资源的几种方式(转)

eclipse WEB-INF下文件夹中的jsp文件无法运行

WEB-INF下的静态资源不能访问的问题

访问WEB-INF下的JSP (转载)

/WEB-INF 中的 JSP 返回“HTTP 状态 404 请求的资源不可用”

/WEB-INF 中的 JSP 返回“HTTP 状态 404 请求的资源不可用”