Tomcat不读取web.xml文件

时间:2012-11-08 08:56:20

标签: java servlets

我的结构就像

  
      
  • 的WebContent   
        
    • META-INF
    •   
    • WEB-INF   
          
      • JS​​P   
            
        • 的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都会重新启动它。

感谢您的患者

4 个答案:

答案 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)

当您的网址不正确时,会出现404错误。

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

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

答案 3 :(得分:0)

首先

web.xml应位于web-inf

其次

index.jspweb.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