<url-pattern> / </url-pattern>和<url-pattern> / * </url-pattern>之间的区别

时间:2014-03-11 16:19:20

标签: spring

web.xml中/和/ *有什么区别?

用于调度程序servlet /并且我猜这意味着所有请求。在这种情况下,url-pattern“/ *”是什么意思?

2 个答案:

答案 0 :(得分:6)

/*表示“所有请求”,而/表示“所有请求均未由其他servlet处理”。

特别是,常见的混淆源是/*覆盖了内置servlet的映射,例如JSP servlet。这意味着如果将DispatcherServlet映射到/*,您将无法使用基于JSP的视图,因为呈现这些视图的请求将由DispatcherServlet本身处理,而不是由实际呈现JSP页面的JSP servlet。

这就是应该处理所有请求的DispatcherServlet通常映射到/

答案 1 :(得分:2)

来自SRV.11.2 Specification of Mappings

  

在Web应用程序部署描述符中,使用以下语法   用于定义映射:

     
      
  • 以“/”字符开头并以“/ *”后缀结尾的字符串用于路径映射。
  •   
  • 以'*。'前缀开头的字符串用作扩展名映射。
  •   
  • 仅包含'/'字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是   请求URI减去上下文路径,路径信息为空。
  •   
  • 所有其他字符串仅用于完全匹配。
  •   

模式/*将强制通过servlet的所有内容。模式/将使您的servlet成为应用程序的默认servlet,这意味着它将获取没有其他完全匹配的每个模式