【问题标题】:Filter running recursively过滤器递归运行
【发布时间】:2012-05-23 15:00:40
【问题描述】:

我编写了一个 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 不应该递归运行的解决方案。

【问题讨论】:

    标签: servlets servlet-filters


    【解决方案1】:

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

    String loginURI = request.getContextPath() + "/faces/login.xhtml";
    
    if (user != null || request.getRequestURI().equals(loginURI)) {
        chain.doFilter(request, response);
    }
    else {
        response.sendRedirect(loginURI);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 2018-02-08
      • 1970-01-01
      • 2020-02-25
      • 2010-11-19
      相关资源
      最近更新 更多