我怎样才能访问放在WEB-INF文件夹中的文件

时间:2012-05-03 18:50:57

标签: java jsp web-inf

我是java的新手并且有一个奇怪的问题。 我在WEB-INF文件夹中创建一些文件夹(主题,js,css)并将我的文件放到这个文件夹中。 在index.jsp中,我按照以下方式使用css文件:

<style type="text/css"> 
        <%@include file="WEB-INF/css/style.css" %>
 </style>

效果很好。 但是在style.css文件中我有一个div标签,它通过以下方式设置标头标签的背景:

#header{
background: url(../theme/violet/header.jpg) repeat-x;
}

哦。我的问题在这里。它不起作用。因为其他css命令工作得很好。 我知道WEB-INF细节不可访问,但可能有一种方法,就像我在index.jsp页面中用于链接style.css的方式。

任何解决方案? 感谢。

3 个答案:

答案 0 :(得分:2)

从包含style.css的方式来看,我猜你的index.jsp在WEB-INF文件夹之外,可以由客户端浏览器直接访问。包含style.css正常工作的原因是因为它包含在服务器端。但是在style.css中,为了获得背景图像,浏览器将启动一个新的连接到图像,该图像恰好位于WEB-INF文件夹内,服务器拒绝将其发送回来,你注定要失败。

如果您有集中控制器servlet,则可以将jsps放在WEB-INF文件夹中以防止直接访问它。您的servlet会根据请求参数将所有请求重定向到适当的jsp。

据我所知,没有绝对的理由将图像,JavaScripts等放在此文件夹中,当浏览器需要访问此文件夹以检索数据时,您肯定会遇到问题。

答案 1 :(得分:1)

这是不可能的。如果您希望从浏览器直接访问内容,则它不能驻留在WEB-INF中。

答案 2 :(得分:0)

为什么要在theme, js, css文件夹中创建WEB-INFWEB-INF目录包含有关应用程序的元数据。在正常操作期间,您不需要修改WEB-INF目录下的任何内容。

您可以直接在theme, js, csswar目录下创建WebContent文件夹,它可以在您的jsp页面中轻松使用。

this链接可以帮助您。

相关问题