首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tomcat7中将过滤器映射到webapp的上下文根

在Tomcat7中将过滤器映射到webapp的上下文根
EN

Stack Overflow用户
提问于 2013-07-13 12:44:45
回答 1查看 3.7K关注 0票数 0

我正在制作一个小型的webapp (这可能被认为是一个uni任务)。我的工具是java7,tomcat7.0.40。

我有一个过滤器,叫做FlowFilter。下面是FlowFilter在web.xml中的定义和映射:

代码语言:javascript
复制
<filter>
    <filter-name>FlowFilter</filter-name>
    <filter-class>path.to.filter.FlowFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>FlowFilter</filter-name>
    <url-pattern></url-pattern>
    <url-pattern>*.flow</url-pattern>
    <url-pattern>*.request</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
    <dispatcher>INCLUDE</dispatcher>    
</filter-mapping>

我的webapp根目录是:http://[host]/mywebapp

我还通过web.xml配置了一个欢迎文件:

代码语言:javascript
复制
<welcome-file-list>
    <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>

从映射中可以看出,我需要在以下3种情况下精确执行FlowFilter:

  1. 当请求以".flow“结尾时
  2. 当请求以".request“结尾时
  3. 当我访问http://[host]/mywebapp (“映射”)时。

问题是,在第三种情况下从未调用过FlowFilter。

正如我在servlet-3规范、12.2和6.2.4中所读过的,url模式规则适用于过滤器。

但是当我调试Tomcat的ApplicationFilterFactory.matchFiltersURL时,过滤器的url模式从来没有与“映射”相匹配。

问题是:只是Tomcat还没有实现这样的特性,还是我误读了规范或者我用错误的方式映射过滤器,以及为什么。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-13 13:54:51

如果您已经定义了一个<welcome-file-list>,这个将击败过滤器

在应用过滤器规则之后,您可以删除<welcome-file-list>并自行重定向。并尝试使用<url-pattern>/</url-pattern>来匹配上下文根。

另见这个答案

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17630307

复制
相关文章

相似问题

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