【问题标题】:Tomcat dont read web.xml fileTomcat 不读取 web.xml 文件
【发布时间】:2012-10-28 10:41:42
【问题描述】:

我的结构是这样的

  • 网页内容
    • 元信息
    • 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

元信息

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.xml 应该在 WEB-INF 中?
  • 根据您的目录结构,index.jspwebcontent\jsp\indiex.jsp 内部,您为什么使用路径 web-inf\jsp\index.jsp
  • 更改后目录结构不清晰。适当地格式化它

标签: java servlets


【解决方案1】:

web.xml 必须直接在WEB-INF 内部(也不在WEB-INF 的子目录中)

也尝试改变这个

&lt;welcome-file&gt;WEB-INF/jsp/index.jsp&lt;/welcome-file&gt;

&lt;welcome-file&gt;jsp/index.jsp&lt;/welcome-file&gt;

更新:

根据您的新目录结构,您的 &lt;welcome-file&gt; 标记应为:

&lt;welcome-file&gt;jsp/index.jsp&lt;/welcome-file&gt;

【讨论】:

  • 我的项目名称是servlets
  • @abu,你的在工作,他的不工作,原因是(参考他的新目录结构,他更新了)。他有整个配置 hayway.. web-inf 中的 JSPS 和 webcontent 中的 web.xml。
  • @skowron-line 请将web.xml 立即放在WEB-INF 目录中...
  • WEB-INF目录
  • @Abu 你可以进入聊天吗?
【解决方案2】:

当您的 URL 不正确时会出现 404 错误。

检查 URL 是否正确。 根据您的目录结构,您的 URL 应该是这样的:localhost:8080/jsp/index.jsp

还要确保 web.xml 在 WEB-INF 目录中。

【讨论】:

  • web.xmlWEB-INF 目录中,但在从 eclips 执行后,它转到localhost:8080/servlets url,不像你写的那样
【解决方案3】:

首先

web.xml 应该在 web-inf 里面

其次

index.jsp 的路径在您的 web.xml 中不正确。

根据您的目录结构,index.jspwebcontent\jsp\indiex.jsp 内,您为什么使用路径 web-inf\jsp\index.jsp

根据您的current 目录结构,它应该是.\jsp\indiex.jsp

UPDATE : OP 更新了目录结构。

你不应该把jsps放在WEB-INF中,你应该把jsps放在webcontent中,web.xml放在WEB-INF中。 重新组织您的目录结构。将web.xml 放入web-infjsp 文件夹内webcontent 然后放入web.xml 放入欢迎jsp 的路径为jsp\index.jsp

【讨论】:

  • 注意到jsp 在我的WEB-INF 目录中
  • @skowron-line ,你不应该把 jsps 放在 WEB-INF 中,你应该把 jsps 放在 webcontentweb.xmlWEB-INF 重新组织你的目录结构。将web.xml 放入web-infjsp 文件夹内webcontent 然后放入web.xml 放入欢迎jsp 的路径为jsp\index.jsp
  • @skowron-line ,我已经更新了我的答案,以反映您的目录结构中的更新。
  • 像你写的那样移动文件/文件夹后仍然得到404
  • @skowron-line 您现在可以简要描述一下您的目录结构并粘贴您在 web.xml 中放置的条目吗?
【解决方案4】:

您不能直接访问 WEB-INF 中的文件,这只能通过 servlet 而不是您。

此目录(WEB-INF)包含所有与应用程序相关但不在应用程序文档根目录中的资源。这是您的 Web 应用程序部署描述符所在的位置。请注意,WEB-INF 目录不是公共文档的一部分。此目录中包含的任何文件都不能直接提供给客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2021-05-06
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多