2014-04-18 137 views
0

我已经在服务器中配置了会话超时,并添加了一个过滤器来处理会话超时。但是,当我试图将其重定向回登录页面时,它无法正常工作。我搜查了网络,但没有得到任何坚实的东西。我使用JSF ..我的代码JSF,会话超时处理

public class SessionTimeoutFilter implements Filter { 

private String timeoutPage = "login.seam"; 
public void init(FilterConfig filterConfig) throws ServletException { 
} 
public void doFilter(ServletRequest request, 
    ServletResponse response, FilterChain filterChain) throws IOException,ServletException { 
if ((request instanceof HttpServletRequest) 
    && (response instanceof HttpServletResponse)) 
{ 
    HttpServletRequest httpServletRequest = (HttpServletRequest) request; 
    HttpServletResponse httpServletResponse = (HttpServletResponse) response; 
    if (isSessionControlRequiredForThisResource(httpServletRequest)) { 
     if (isSessionInvalid(httpServletRequest)) 
     { 
      String timeoutUrl = httpServletRequest.getContextPath() 
      + "/" + getTimeoutPage(); 
      System.out.println("Session is invalid! redirecting to timeoutpage : " + timeoutUrl); 
      httpServletResponse.sendRedirect(timeoutUrl); 
      return; 
     } 
    } 
} 
filterChain.doFilter(request, response); 
} 

谁能告诉我什么我做错了什么?为什么不的sendRedirect响应

回答