在JSP文件中引用放置在WEB-INF文件夹中的资源将返回资源上的HTTP 404
我在eclipse中创建了一个名为BookShopWeb的动态web项目,该项目具有以下目录结构在JSP文件中引用放置在WEB-INF文件夹中的资源将返回资源上的HTTP 404,jsp,resources,web-inf,Jsp,Resources,Web Inf,我在eclipse中创建了一个名为BookShopWeb的动态web项目,该项目具有以下目录结构 /BookShopWeb/| |--src |---WebContent | |---META-INF |----WEB-INF---web.xml | |--css--styles.
/BookShopWeb/|
|--src
|---WebContent
|
|---META-INF
|----WEB-INF---web.xml
|
|--css--styles.css
|--jsp---index.jsp
在web.xml中,我将起始页设置为
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/index.jsp</welcome-file>
知道为什么会发生这种情况吗?我该怎么纠正?
谢谢
标记
/WEB-INF
文件夹中的文件不可公开访问。将CSS文件放在WebContent
文件夹的上一层,通过直接在浏览器地址栏中输入URL确保可以访问这些文件。另外,您在
中指定的URL必须是相对于请求URL(打开JSP时在浏览器地址栏中看到)的,而不是相对于其在服务器磁盘文件系统上的位置。最好的方法是以正斜杠开始,使其与域相关
<link rel="stylesheet" href="/BookShopWeb/css/styles.css" />
或者更动态一点,这样您就不需要每次更改上下文路径时都更改JSP
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css" />
JSP文件可以保存在/WEB-INF
中,但这种方式只能通过调度servlet访问它们,可以是通过扩展HttpServlet
自行生成的,也可以是由servlet容器(如
隐式生成的)
另见:
/BookShopWeb/|
|--src
|---WebContent
|
|---META-INF
|----WEB-INF---web.xml
|
|--css--styles.css
|--jsp---index.jsp
您还将css命名为styles.jsp,这不是声明css文件的正确方式
在web.xml中:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
index.jsp
在jsp文件中:
<head>
<link rel="stylesheet" type="text/css" href="./css/styles.css" />
</head>
css文件是styles.css。我在键入问题时出错。好的。但您的目录结构应该和我的答案中的一样。如果JSP文件保存在/WEB-INF中,我应该如何在href中写入字段?@shirley:只需指定分派servlet的URL即可。如果您对servlets完全陌生,请阅读我也有同样的问题。我把css
文件夹放在webapp
中,而我的jsp
放在WEB-INF
中……我仍然无法获得工作参考。在web.xml
Servlet dispatcher中是否也需要对此进行一些确认?
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<head>
<link rel="stylesheet" type="text/css" href="./css/styles.css" />
</head>