servlet映射url模式上的双通配符(*)意味着什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (42)

例如:下面的区别是什么?

<servlet-mapping id="...">
    <servlet-name>BuyServlet</servlet-name>
    <url-pattern>/buy/*</url-pattern>
</servlet-mapping>
<servlet-mapping id="...">
    <servlet-name>ShopServlet</servlet-name>
    <url-pattern>/shop/**</url-pattern>
</servlet-mapping>
提问于
用户回答回答于

servlet规范(版本2.5)的11.2节陈述了以下内容:

  • 以“/”字符开头并以“/ *”后缀结尾的字符串用于路径映射。
  • 以'*。'开头的字符串 前缀被用作扩展映射。
  • 只包含'/'字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为空。
  • 所有其他字符串仅用于精确匹配。
用户回答回答于

Servlet规范本身(版本3.0,第12.2章)仅定义了两种通配符映射:

  • 如果URL模式以“/ *”结尾,则将所有请求匹配到前一个路径。
  • 如果URL模式以“*。”开头,则会将所有请求与以下列扩展名结尾的资源进行匹配。

扫码关注云+社区

领取腾讯云代金券