我试图用谷歌搜索这个问题,但是,似乎谷歌搜索引擎将其读取为某些特殊字符。

那么将服务器映射到“ /”和“ / *”之间有什么区别?

最佳答案

SRV.11.2 Specification of Mappings

‘/’字符开头并以‘/*’后缀结尾的字符串用于路径映射。


‘*.’前缀开头的字符串用作扩展名
映射。
仅包含‘/’字符的字符串表示“默认”
应用程序的servlet。在这种情况下,servlet路径是
请求URI减去上下文路径,并且路径信息为null。


所有其他字符串仅用于完全匹配。

我的重点

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


如果看到映射XServlet匹配所有请求,并且每个请求都命中XServlet

在哪里

 <servlet-mapping>
            <servlet-name>XServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>


现在,XServlet是我的默认应用程序servlet,它为static资源提供服务。

只是为了澄清进一步的混乱:How to access static resources when mapping a global front controller servlet on /*

10-07 15:52