1

考虑我的以下过滤器映射web.xml

<filter-mapping>
    <filter-name>rememberMeCookieFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>mustBeSignedInFilter</filter-name>
    <url-pattern>/private/*</url-pattern>
</filter-mapping>

据我从我所做的测试中了解到,如果我去/private/account.jsp, mustBeSignedInFilter 将始终首先执行(据我所知,这是因为路径更具体)。我需要先执行 rememberMeCookieFilter。

我怎么做?

4

1 回答 1

1

您将过滤器映射与 servlet 映射混淆了。与 URL 匹配的所有过滤器都按照在 中指定的过滤器映射顺序执行web.xml。因此,交换过滤器映射,它将按您的预期工作。

<filter-mapping>
    <filter-name>mustBeSignedInFilter</filter-name>
    <url-pattern>/private/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>rememberMeCookieFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
于 2012-06-01T13:21:53.440 回答