在我的java web应用程序中,我有一个过滤器的以下url-pattern:
<url-pattern>*-template</url-pattern>
它在码头9中运行良好,但tomcat 8拒绝它说它无效。怎么会?另外,我不能让tomcat理解像/*/*-template
这样的url模式(如果我指定了确切的url /foo/bar-template
,那么tomcat只使用我的过滤器。但是我不想指定每个url。是我的选择吗?
答案 0 :(得分:0)
可能是因为Tomcat正在更严格地实施规范。从Java Servlet规范3.1(第12.2节):
在Web应用程序部署描述符中,使用以下语法 用于定义映射:
- 以“/”字符开头并以“/ *”后缀结尾的字符串用于路径映射。
- 以'*。'前缀开头的字符串用作扩展名映射。
- 空字符串(&#34;&#34;)是一种特殊的URL模式,它完全映射到应用程序的上下文根,即表单的请求
http://host:port/<contextroot>/
。在这种情况下,路径信息是'/' servlet路径和上下文路径为空字符串(“”)。- 仅包含'/'字符的字符串表示&#34;默认&#34;应用程序的servlet。在这种情况下,servlet路径是 请求URI减去上下文路径,路径信息为空。
- 所有其他字符串仅用于完全匹配。