将tomcat配置为serv index.html

将tomcat配置为serv index.html,tomcat,web.xml,static-content,Tomcat,Web.xml,Static Content,我正在寻找一种方法,让tomcat在其中一个子目录中为我的应用程序自动显示index.html 当我尝试访问 http://mydomain.tld/myapp/docs http://mydomain.tld/myapp/docs/ 我得到一个404文件未找到错误。但当我加载 http://mydomain.tld/myapp/docs/index.html 它很好用 我当前的web.xml如下所示: <?xml version="1.0" encoding="UTF-8"?>

我正在寻找一种方法,让tomcat在其中一个子目录中为我的应用程序自动显示index.html

当我尝试访问

http://mydomain.tld/myapp/docs
http://mydomain.tld/myapp/docs/
我得到一个404文件未找到错误。但当我加载

http://mydomain.tld/myapp/docs/index.html
它很好用

我当前的web.xml如下所示:

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

    <display-name>Foo</display-name>
    <description>Bar</description>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
    </welcome-file-list>



    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/docs/*</url-pattern>
    </servlet-mapping>

</web-app>
我错过了什么?为什么tomcat不按喇叭呢

编辑


奇怪的是,如果我创建的应用程序没有web.xml或servlet,只有静态内容,那么这种行为是正确的。所以tomcat确实知道如何做到这一点。

您需要包括子目录:

<welcome-file>docs/index.html</welcome-file>

可能是由于/docs/*上的servlet映射,它无法工作。你真的需要这种映射吗?目的是什么?我不太明白你的问题//docs/是我希望它提供index.html的URL。问题的关键是正确地提供服务。那么它是必要的吗?简言之对