我试图谷歌这个问题但是,似乎谷歌搜索引擎将其视为一些特殊字符。
那么将服务器映射到"之间的区别是什么? /"和#34; / *" ?
答案 0 :(得分:2)
SRV.11.2 Specification of Mappings
以‘/’
字符开头并以‘/*’
后缀结尾的字符串用于路径映射。
‘*.’
前缀开头的字符串用作扩展名
映射。‘/’
字符的字符串表示“默认”
应用程序的servlet。在这种情况下,servlet路径是
请求URI减去上下文路径,路径信息为空。所有其他字符串仅用于完全匹配。
我的重点
<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 /*
答案 1 :(得分:1)
模式/将使您的servlet成为应用程序的默认servlet,而模式/ *将强制通过您的servlet的所有内容。
答案 2 :(得分:0)
如果您映射到/只有一个网址匹配:您的服务器网址(http://my.example.org/)。 如果你映射到/ *很多网址会匹配:http://my.example.org/logo.gif,http://my.example.org/index.jsp,http://my.example.org/detail.html等等。
如果你只有1个servlet,并且你的资源不在你的webapp的根目录下,那么使用/可能很有用(无论如何都不应该这样)。