我编写了一个servlet过滤器,它以递归方式运行。
我希望在会话中控制登录页面未设置特定属性。
实际上登录页面与其他页面具有相同的url-pattern
<filter>
<filter-name>AppFilter</filter-name>
<filter-class>web.AppFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AppFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
</filter>
请告诉我一个解决方案,其中doFilter不应该以递归方式运行。
答案 0 :(得分:0)
如果请求URI与登录页面本身匹配,只需检入过滤器,以便不会重定向。
String loginURI = request.getContextPath() + "/faces/login.xhtml";
if (user != null || request.getRequestURI().equals(loginURI)) {
chain.doFilter(request, response);
}
else {
response.sendRedirect(loginURI);
}