2014-04-09 81 views
0

我正在開發一個需要用戶登錄和註銷的Java應用程序。我想從回去阻止用戶:註銷 防止用戶在登錄後返回登錄表單並退出後返回會話頁面?

我已經看了看StackOverflow的一些問題,分別回答了這些問題後,登錄

  • 會話頁面後

    1. 登錄頁面,我不知道是否爲他們兩個實現單獨的過濾器?

      此外,我應該使用會話檢查還是非會話頁面緩存或兩者?

      有人可以提供這個問題的代碼樣本?

      謝謝

  • +1

    _I不知道是否執行不同的過濾器對他們倆的或不?_ **首先實現,看看,如果你面對任何問題張貼。** – Rembo

    回答

    0

    我終於用這個代碼,似乎運作良好。

    public class SessionFilter implements Filter { 
    
    /** 
    * Default constructor. 
    */ 
    public SessionFilter() { 
    } 
    
    /** 
    * @see Filter#destroy() 
    */ 
    public void destroy() { 
    } 
    
    /** 
    * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 
    */ 
    public void doFilter(ServletRequest request, ServletResponse response, 
         FilterChain chain) throws IOException, ServletException { 
    
        HttpServletRequest hRequest = (HttpServletRequest) request; 
        HttpServletResponse hResponse = (HttpServletResponse) response; 
        HttpSession session = hRequest.getSession(false); // returns existing or 
                     // null 
    
        if (session == null || session.getAttribute("user_email") == null) { 
         hResponse.sendRedirect(hRequest.getContextPath() + "/login.jsp"); 
         // return; 
        } else { 
         hResponse.setHeader("Cache-Control", 
           "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
         hResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
         hResponse.setDateHeader("Expires", 0); 
         chain.doFilter(request, response); 
        } 
    
    
    } 
    
    /** 
    * @see Filter#init(FilterConfig) 
    */ 
    public void init(FilterConfig fConfig) throws ServletException { 
        // TODO Auto-generated method stub 
    } 
    

    }

    相關問題