具有相同网址映射的多个过滤器

2022-09-02 21:34: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>

答案 1

是的。您可以。

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

所以在这里,

首先将控制权转到 ,然后转到 。TeeFilterCredentialsFilter

如果您想先执行,请更改 Web 中的顺序.xmlCredentialsFilter


答案 2

使用注释时,它似乎在字典上比较了两个过滤器。然后根据这个比较选择先来的那个。示例我尝试使用两个名为Filter1.javaFilter2.java的筛选器。两个筛选器具有相同的 url 映射。当我调用映射的 url 时,Filter1.java首先执行。但是当我重命名 Filter1 时.java重命名为 Filter3.java。然后首先执行 Filter2.java。要说得更清楚一些。如果您有2个过滤器A和B.当使用注释映射相同的URL时,A将始终首先执行。你能试试你能像我一样达到这个结果吗?谢谢.如果不是让我知道


推荐