这些网址映射有什么区别?
<url-pattern>/servlet</url-pattern>
和
<url-pattern>/servlet/*</url-pattern>
和
<url-pattern>/*</url-pattern>
和
<url-pattern>*.do</url-pattern>
答案 0 :(得分:2)
网址格式在Servlet 3.0 Specification部分 12.2规范映射中进行了解释:
在Web应用程序部署描述符中,以下语法用于定义映射:
以
/
字符开头并以/*
后缀结尾的字符串用于路径映射。以
*.
前缀开头的字符串用作扩展名映射。空字符串(&#34;&#34;)是一种特殊的URL模式,它完全映射到应用程序的上下文根,即
http://host:port/<context-root>/
形式的请求。在这种情况下,路径信息为/
,servlet路径和上下文路径为空字符串(“”)。仅包含
/
字符的字符串表示&#34;默认&#34;应用程序的servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为空。所有其他字符串仅用于完全匹配。
答案 1 :(得分:1)
请注意,root(/
)表示Web应用程序的上下文根。
<url-pattern>/servlet</url-pattern>
匹配直接映射到根(/)
下的路径servlet
的特定资源
<url-pattern>/servlet/*</url-pattern>
与/servlet
下的任何资源匹配。
<url-pattern>/*</url-pattern>
匹配root(/
)下的任何资源。
<url-pattern>*.do</url-pattern>
匹配特定文件模式,即以.do
结尾。