Java Servlet筛选器-不将筛选器应用于特定筛选器
我有一个web应用程序,其登录屏幕由身份验证过滤器备份 我的web.xml中有以下内容Java Servlet筛选器-不将筛选器应用于特定筛选器,java,servlets,servlet-filters,web.xml,Java,Servlets,Servlet Filters,Web.xml,我有一个web应用程序,其登录屏幕由身份验证过滤器备份 我的web.xml中有以下内容 <filter> <filter-name>AuthenticationFilter</filter-name> <display-name>AuthenticationFilter</display-name> <filter-class>com.mycompany.secutity.Authentication
<filter>
<filter-name>AuthenticationFilter</filter-name>
<display-name>AuthenticationFilter</display-name>
<filter-class>com.mycompany.secutity.AuthenticationFilter</filter-class>
</filter>
身份验证过滤器
身份验证过滤器
com.mycompany.secutity.AuthenticationFilter
我有下面的映射-
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
身份验证过滤器
/*
但是现在我想添加一个例外,对于特定的servlet
/web/MyNewServlet
,我想绕过authentication过滤器。我们如何做到这一点?有两种方法可以做到这一点:
- 将
模式重新映射到另一个模式,如/*
,从而避免对/subdir/*
应用AuthenticationFilter。这是一个麻烦的过程,因为您的web应用程序中可能有几个URL现在需要重新映射。我建议您在开发的早期,或者在没有太多URL需要重新映射的时候这样做/web/MyNewServlet
- 在过滤器实现中以编程方式包含排除规则。您需要使用和类似的方法来验证URL片段是否包含
,然后将筛选器链接到下一个筛选器或servlet,而不是执行筛选器主体/web/MyNewServlet