Web-app:welcome-file-list使用servlet-mapping无法正常工作

Jus*_*s12 5 java jsp web.xml servlets

访问裸网址(例如localhost:8080)时,我想要访问相同的行为localhost:8080/foo.servlet(实际上是一个JSP)映射到/foo.我的web.xml是

<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <display-name>Test</display-name>
    <description></description>

    <!-- servlets -->

    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <jsp-file>/test/welcome.jsp</jsp-file>
    </servlet> 

    <!-- mappings -->
    <servlet-mapping> 
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/foo</url-pattern>
        <url-pattern>/foo/*</url-pattern>
    </servlet-mapping> 

    <welcome-file-list>
        <welcome-file>/foo</welcome-file>
    </welcome-file-list> 
</web-app> 
Run Code Online (Sandbox Code Playgroud)

当我这样做时http://localhost:8080/foo,我得到了正确的输出; test/welcome.jsp显示输出.但是,当访问裸URL时http://localhost:8080,jetty会显示文件列表,Tomcat 6会显示未找到的页面.我是对的web.xml吗?

(版本:jetty-8.0.yz-SNAPSHOT,Tomcat 6,Java 1.6,servlet-api-2.5)

更改<welcome-file>/foo</welcome-file><welcome-file>foo</welcome-file>没有什么区别.

我的web.xml中有错误吗?如果没有,做什么是正确的方法.

编辑:似乎是Jetty-8中的一个错误.它开始在Jetty-9工作.

小智 3

/从此 删除<welcome-file>/foo</welcome-file> 它应该是

<welcome-file>foo</welcome-file>
Run Code Online (Sandbox Code Playgroud)

  • 我在问题中提到这没有什么区别。 (4认同)