我的结构就像
- 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 错误
,但是当我将 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 都会重新启动,它就可以工作了。
谢谢你的耐心
最佳答案
您无法直接访问 WEB-INF 内的文件,这只能通过 servlet 实现,而不能由您实现。
此目录(WEB-INF)包含与应用程序相关但不在应用程序文档根目录中的所有资源。这是您的 Web 应用程序部署描述符所在的位置。请注意,WEB-INF 目录不是公共(public)文档的一部分。此目录中包含的任何文件都不能直接提供给客户端。
关于java - Tomcat 不读取 web.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285587/