0

我的结构就像

  • 网页内容
    • 元信息
    • 网络信息
      • jsp
        • 索引.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.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 都重新启动它可以工作。

谢谢你的病人

4

4 回答 4

3

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

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

于 2012-11-08T09:02:44.030 回答
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>

于 2012-11-08T08:57:52.013 回答
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-infjsp文件夹放在里面,webcontent然后web.xml把欢迎jsp的路径放在里面jsp\index.jsp

于 2012-11-08T09:07:21.063 回答
0

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

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

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

于 2012-11-08T09:00:18.347 回答