繁体   English   中英

Tomcat中的前导斜杠是什么意思 <url-pattern> ?

[英]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应用程序部署描述符中,以下语法用于定义映射:

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

如果有效的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM