Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何访问放置在WEB-INF文件夹中的文件_Java_Jsp_Web Inf - Fatal编程技术网

Java 如何访问放置在WEB-INF文件夹中的文件

Java 如何访问放置在WEB-INF文件夹中的文件,java,jsp,web-inf,Java,Jsp,Web Inf,我是java新手,有一个奇怪的问题。 我在WEB-INF文件夹中创建了一些文件夹(主题、js、css),并将我的文件放到这些文件夹中。 在index.jsp中,我通过以下方式使用css文件: <style type="text/css"> <%@include file="WEB-INF/css/style.css" %> </style> #header{ background: url(../theme/violet/header.j

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

<style type="text/css"> 
        <%@include file="WEB-INF/css/style.css" %>
 </style>
#header{
background: url(../theme/violet/header.jpg) repeat-x;
}
哦。我的问题在这里。它不起作用。因为其他css命令工作得很好。 我知道无法访问WEB-INF详细信息,但可能有一种方式与我在index.jsp页面中用于link style.css的方式类似

有解决办法吗?
谢谢。

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

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

您可以直接在
war
WebContent
目录下创建
theme、js、css
文件夹,这样很容易在jsp页面中使用


链接将对您有所帮助。

从您包含style.css的方式来看,我猜您的index.jsp不在可以通过客户端浏览器直接访问的WEB-INF文件夹中。included style.css工作正常的原因是它包含在服务器端。但是,在style.css中,为了获得背景图像,浏览器将启动一个新的连接,连接到恰好位于WEB-INF文件夹中的图像,服务器拒绝将其发送回,您就完蛋了

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


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

你回答的意思是什么。你会说我把我的资源文件放在WEB-INF之外的地方最多?所以,我的jsp文件如何能够访问css文件,而css文件却无法访问图像文件?你的答案的意思是css文件通过网络浏览器处理吗?如果你想让客户端(如浏览器)可以访问资源(如header.jpg),它不能位于网络内部。在我读到的一本书中,他为网站提供了一种结构。作者说把css、主题、js和tld放在WEB-INF中很好。当然,他说WEB-INF中的所有数据都是用户无法访问的,但webserver允许cas使用它的类(可能他会说我们的类可以使用它,不是所有的源jsp文件,我不知道),在这个文件夹中添加images文件夹并将header.jpg放在那里。您的图像将可用于style.css-背景路径:url(images/header.jpg)repeat-x;顺便说一句,此图像将对外部的所有人可用(如果您在url中提供精确路径),但整个文件夹图像或css将不可用,因为它受服务器或应用程序容器(如tomcat)的保护-您可以在配置文件(/conf/web.xml)中更改它。Tomcat inside context.xml也监控了有价值的资源