【发布时间】:2014-10-30 18:20:41
【问题描述】:
我知道我不能对过滤器映射的<url-pattern> 使用正则表达式,但是否可以使用directory pattern 来指定任何包含单词myuniqws 的url,如下所示:
https://my.hostname.org/myuniqws/myport/soap?wsdl
我在想也许这是正确的语法:
<url-pattern>/*myuniqws*</url-pattern>
但我无法找到有关 Tomcat 的 <url-pattern> 语法的确切规则的文档。
上面的正则表达式会按我的意愿工作吗?
更新:
感谢下面的回答,我在 Java Servlet 规范中发现了以下部分,它基本上回答了我的问题。
12.2 映射规范
在 Web 应用程序部署描述符中,使用以下语法来定义 映射:
- 以“/”字符开头并以“/*”后缀结尾的字符串用于 路径映射。
- 以“*.”前缀开头的字符串用作扩展映射。
- 空字符串 ("") 是一种特殊的 URL 模式,它精确映射到应用程序的上下文根,即
http://host:port/<contextroot>/形式的请求。在这种情况下,路径信息是“/”,servlet 路径和上下文路径是空字符串(“”)。 - 仅包含“/”字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。
- 所有其他字符串仅用于完全匹配。
如果有效的web.xml(在合并来自片段和注释的信息之后)包含映射到多个 servlet 的任何 url 模式,那么部署一定会失败。
【问题讨论】:
标签: regex tomcat url-pattern