我知道我不能将正则表达式用于过滤器映射的<url-pattern>
,但是可以使用directory pattern来指定包含单词myuniqws
的任何网址,如下所示:
https://my.hostname.org/myuniqws/myport/soap?wsdl
我在考虑这可能是正确的语法:
<url-pattern>/*myuniqws*</url-pattern>
但我无法找到有关Tomcat <url-pattern>
语法的确切规则的文档。
上面的正则表达式会不会像我想的那样工作?
更新
感谢下面的回答,我在Java Servlet规范中发现了以下部分,它基本上回答了我的问题。
12.2映射规范
在Web应用程序部署描述符中,使用以下语法进行定义 映射:
http://host:port/<contextroot>/
形式的请求。在这种情况下,路径信息是'/',servlet路径和上下文路径是空字符串(“”)。如果有效web.xml
(在从片段和注释合并信息之后)包含映射到多个servlet的任何url模式,则部署必须失败。
答案 0 :(得分:1)
据推测,您的意思是<url-pattern>
中过滤器映射的web.xml
。您可能不知道这一点,但web.xml
被定义为Java Servlet规范的一部分。您可以在此处找到3.1版本(目前,最新和最好)的完整文档:
https://jcp.org/aboutJava/communityprocess/final/jsr340/index.html
如果您阅读第12.2节(&#34;映射规范&#34;),您可以确切地看到识别出哪种模式,包括您在上面请求的前缀映射。
编辑2014-11-04 :
您应该知道CATALINA_HOME/conf/web.xml
(或CATALINA_BASE/conf/web.xml
,如果您有)是Tomcat上部署的所有Web应用程序的默认配置,并且您的webapp WEB-INF/web.xml
是特定于您自己的Web应用程序。这两个文件都应该包含以下xmlns
语句,因此(通过它们的URI)指示它们是Java Servlet规范(或至少Java EE,包括servlet规范)所涵盖的:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">