java - Tomcat 不读取 web.xml 文件

标签 java servlets

我的结构就像

  • 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/

相关文章:

java - 完成任务后从数组列表、堆栈、队列中删除线程

java - 如何检查servlet的执行是否没有异常

html - SSE 和 Servlet 3.0

java - SpringMVC : how to get the value of @RequestMapping in the function

java - 无法将 jsp 链接到 servlet...未找到片段..?

java - 如何使用 Bouncy CaSTLe 生成对称 key ?

java - 红色圆圈样检测 |打开简历 | java

java - 查找 gradle 构建项目的问题

java - 如何将 Firebase 数据转换为 Java 对象?

java - 从 servlet 生成线程?