我的结构就像
- 的WebContent
- META-INF
- WEB-INF
- JSP
- 的index.jsp
- 的web.xml
web.xml
文件就像
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>servlets</display-name>
<welcome-file-list>
<welcome-file>WEB-INF/jsp/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
但是当我在浏览器中使用eclipse执行它时,得到404 error
,但是当我将index.jsp移动到根目录时,它的工作正常。
编辑: 改变后
JSP
- index.jsp的
META-INF
WEB-INF
- web.xml中
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>servlets</display-name>
<welcome-file-list>
<welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
解
我发现在编译时我的Tomcat服务器没有重启。现在,每当我编译servlet时,tomcat都会重新启动它。
感谢您的患者
答案 0 :(得分:3)
你不能直接访问WEB-INF中的文件,这只能由你不在的servlet来访问。
此目录(WEB-INF)包含与应用程序相关的所有资源,这些资源不在应用程序的文档根目录中。这是您的Web应用程序部署描述符所在的位置。请注意,WEB-INF目录不是公共文档的一部分。此目录中包含的任何文件都不能直接提供给客户端。
答案 1 :(得分:2)
web.xml
必须立即在WEB-INF
内(也不在WEB-INF
的子目录中)
也可以尝试更改此
<welcome-file>WEB-INF/jsp/index.jsp</welcome-file>
到
<welcome-file>jsp/index.jsp</welcome-file>
更新:
根据您的新目录结构,您的<welcome-file>
标记应为:
<welcome-file>jsp/index.jsp</welcome-file>
答案 2 :(得分:0)
检查网址是否正确。 根据您的目录结构,您的URL应该是这样的: localhost:8080 / jsp / index.jsp
还要确保web.xml位于WEB-INF目录中。
答案 3 :(得分:0)
首先
web.xml
应位于web-inf
其次
index.jsp
中web.xml
的路径不正确。
根据您的目录结构,index.jsp
位于webcontent\jsp\indiex.jsp
内,为什么您使用路径web-inf\jsp\index.jsp
根据您的current
目录结构,它应该是.\jsp\indiex.jsp
更新:OP已更新目录结构。
你不应该把jsps放在WEB-INF中,你应该把jsps放在webcontent中,将web.xml
放在WEB-INF
中。
重新组织您的目录结构。将web.xml
放在web-inf
和jsp
内的webcontent
内,然后放入web.xml
放置路径以欢迎jsp jsp\index.jsp