这些网址映射模式有什么区别?

时间:2014-05-05 16:49:54

标签: java web.xml url-pattern

这些网址映射有什么区别?

<url-pattern>/servlet</url-pattern>

<url-pattern>/servlet/*</url-pattern>

<url-pattern>/*</url-pattern>

 <url-pattern>*.do</url-pattern>

2 个答案:

答案 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结尾。