【问题标题】:What is the difference between these url mapping patterns?这些 url 映射模式有什么区别?
【发布时间】:2014-06-22 01:34:57
【问题描述】:

这些 url 映射有什么区别?

<url-pattern>/servlet</url-pattern>

<url-pattern>/servlet/*</url-pattern>

<url-pattern>/*</url-pattern>

 <url-pattern>*.do</url-pattern>

【问题讨论】:

标签: java web.xml url-pattern


【解决方案1】:

请注意,根 (/) 表示您的 Web 应用程序的上下文根。

<url-pattern>/servlet</url-pattern>

匹配直接映射到 root(/) 下的路径 servlet 的特定资源

<url-pattern>/servlet/*</url-pattern>

匹配/servlet下的任何资源。

<url-pattern>/*</url-pattern>

匹配根目录下的任何资源(/)。

<url-pattern>*.do</url-pattern>

匹配特定的文件模式,即以.do 结尾。

【讨论】:

    【解决方案2】:

    Servlet 3.0 Specification12.2 映射规范部分中解释了 URL 模式:

    在 Web 应用程序部署描述符中,使用以下语法来定义映射:

    • / 字符开头并以/* 后缀结尾的字符串用于路径映射。

    • *. 前缀开头的字符串用作扩展映射。

    • 空字符串 ("") 是一种特殊的 URL 模式,它精确映射到应用程序的上下文根,即 http://host:port/&lt;context-root&gt;/ 形式的请求。在这种情况下,路径信息是/,servlet 路径和上下文路径是空字符串(“”)。

    • 仅包含/ 字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。

    • 所有其他字符串仅用于完全匹配。

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 2015-01-13
      • 2020-06-28
      • 1970-01-01
      相关资源
      最近更新 更多