Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets 递归运行的过滤器_Servlets_Servlet Filters - Fatal编程技术网

Servlets 递归运行的过滤器

Servlets 递归运行的过滤器,servlets,servlet-filters,Servlets,Servlet Filters,我已经编写了一个servlet过滤器,它正在递归运行 我想在会话中未设置特定属性时控制登录页面 实际上,登录页面和其他页面具有相同的url模式 <filter> <filter-name>AppFilter</filter-name> <filter-class>web.AppFilter</filter-class> </filter> <filter-mapping

我已经编写了一个servlet过滤器,它正在递归运行

我想在会话中未设置特定属性时控制登录页面

实际上,登录页面和其他页面具有相同的url模式

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

应用过滤器
web.AppFilter
应用过滤器
/面孔/*

请告诉我一个doFilter不应该递归运行的解决方案。

如果请求URI与登录页面本身匹配,请检查过滤器,这样它就不会被重定向

String loginURI = request.getContextPath() + "/faces/login.xhtml";

if (user != null || request.getRequestURI().equals(loginURI)) {
    chain.doFilter(request, response);
}
else {
    response.sendRedirect(loginURI);
}