tomcat和码头的url-pattern

时间:2014-07-09 11:48:33

标签: tomcat jetty servlet-filters

在我的java web应用程序中,我有一个过滤器的以下url-pattern:

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

它在码头9中运行良好,但tomcat 8拒绝它说它无效。怎么会?另外,我不能让tomcat理解像/*/*-template这样的url模式(如果我指定了确切的url /foo/bar-template,那么tomcat只使用我的过滤器。但是我不想指定每个url。是我的选择吗?

1 个答案:

答案 0 :(得分:0)

可能是因为Tomcat正在更严格地实施规范。从Java Servlet规范3.1(第12.2节):

  

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

     
      
  • 以“/”字符开头并以“/ *”后缀结尾的字符串用于路径映射。
  •   
  • 以'*。'前缀开头的字符串用作扩展名映射。
  •   
  • 空字符串(&#34;&#34;)是一种特殊的URL模式,它完全映射到应用程序的上下文根,即表单的请求   http://host:port/<contextroot>/。在这种情况下,路径信息是'/'   servlet路径和上下文路径为空字符串(“”)。
  •   
  • 仅包含'/'字符的字符串表示&#34;默认&#34;应用程序的servlet。在这种情况下,servlet路径是   请求URI减去上下文路径,路径信息为空。
  •   
  • 所有其他字符串仅用于完全匹配。
  •