18

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

<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>
4

2 回答 2

19

是的。你可以。

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

所以在这里,

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

而如果 CredentialsFilter要先执行,改web.xml中的顺序

于 2013-11-15T10:56:33.363 回答
1

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

于 2022-02-14T23:13:17.957 回答