2014-04-18 205 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響應

回答