【问题标题】:Multiple filters with same url mapping具有相同 url 映射的多个过滤器
【发布时间】:2013-11-28 17:56:18
【问题描述】:

是否可以使用两个具有相同 url 映射的过滤器?

<filter>
 <filter-name>TeeFilter</filter-name>
 <filter-class>filter1r</filter-class>
</filter>
<filter-mapping>
 <filter-name>TeeFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<display-name>CredentialsFilter</display-name>
<filter-name>CredentialsFilter</filter-name>
<filter-class>filter2</filter-class>
</filter>
<filter-mapping>
 <filter-name>CredentialsFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

【问题讨论】:

    标签: java servlets servlet-filters web.xml


    【解决方案1】:

    是的。你可以。

    您在 web.xml 中下的订单将执行。

    这里,

    首先控制转到TeeFilter,然后转到CredentialsFilter

    如果你想先执行CredentialsFilter,在web.xml中改变顺序

    【讨论】:

    • 我只使用 CredentialsFilter,一旦我添加了 TeeFilter,它只是一个用于记录 http 请求和响应的 logback 记录器,一些服务停止工作,而其他服务仍在工作。你知道为什么会发生这种情况吗?
    • @mosaad 是的,这真的很奇怪。它不应该发生。你观察执行顺序吗?还有什么例外?
    • 执行顺序没有区别,创建的日志文件显示收到 204 响应
    • 老问题漏掉了一个重点:你需要一个chain.doFilter(request, response);在你的公共 void doFilter(...)
    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 2022-01-18
    • 2011-04-10
    • 1970-01-01
    • 2013-02-22
    • 2014-11-16
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多