首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web.xml中url-pattern的问题

web.xml中url-pattern的问题
EN

Stack Overflow用户
提问于 2012-06-14 05:48:51
回答 3查看 9.7K关注 0票数 3

我在web.xml中的过滤器映射如下:

代码语言:javascript
复制
  <filter>
    <filter-name>LoginCheckFilter</filter-name>
    <filter-class>com.tutorial.filter.LoginCheckFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>LoginCheckFilter</filter-name>
    <url-pattern>/admin*</url-pattern>
  </filter-mapping>

当我运行我的应用程序并点击http://localhost:8080/admin时,我的过滤器不会被执行。我不能理解为什么。

这个模式有什么问题吗?此外,如果我从模式中删除'*',那么过滤器将在命中上面的url时执行。

在这方面需要帮助。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-14 06:00:45

规范(12.2段)说明如下:

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

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

因此,除非模式以/*结尾或以*.开头,否则将按字面理解*

票数 8
EN

Stack Overflow用户

发布于 2012-06-14 05:54:31

使用/admin/*而不是/admin*

Servlet容器不会将/admin*识别为正确的URL模式。

票数 2
EN

Stack Overflow用户

发布于 2012-06-14 05:55:11

也许可以试试:

代码语言:javascript
复制
<url-pattern>/admin/*</url-pattern>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11023809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档