[英]What is the meaning of the leading slash / in Tomcat's <url-pattern>?
我知道我不能对过滤器映射的<url-pattern>
使用正则表达式,但是可以使用目录模式来指定任何包含单词myuniqws
url,如下所示:
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模式,则部署必须失败。
大概是指web.xml
过滤器映射的<url-pattern>
。 您可能不知道这一点,但是web.xml
被定义为Java Servlet规范的一部分。 您可以在以下位置找到有关3.1版的完整文档(当前,最新和最好的):
https://jcp.org/aboutJava/communityprocess/final/jsr340/index.html
如果您阅读了第12.2节(“映射的规范”),则可以确切地看到可以识别哪些类型的模式,包括您在上面请求的前缀映射。
编辑2014-11-04 :您应该知道CATALINA_HOME/conf/web.xml
(如果有的话,也可以是CATALINA_BASE/conf/web.xml
)是在Tomcat上部署的所有Web应用程序的默认配置,并且您的WEB-INF/web.xml
应用程序是WEB-INF/web.xml
是特定于您自己的Web应用程序的配置。 这两个文件都应具有以下xmlns
语句,因此(通过它们的URI)向您表明它们已被Java Servlet规范(或至少包括Servlet规范的Java EE)所涵盖:
<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">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.