1. 程式人生 > >Java Session的簡單運用 可用於自動登入以及儲存需要的資料等

Java Session的簡單運用 可用於自動登入以及儲存需要的資料等

      在WEB開發中,伺服器可以為瀏覽器建立一個會話物件(session物件),通過將一個sessionID 以cookie方式返回給瀏覽器,只要瀏覽器不保持關閉或者沒有超過session的失效時間,伺服器就會一直保持這個session物件存放需要儲存的資料,特別應用於使用者自動登入。

     public void  UserInfo(HttpServletRequest request){

        JSONObject   customerInfo = new JSONObject  ();

         customerInfo.put("username","hanger");

         customerInfo.put("username","hanger111"); 

          // 建立或者獲取session物件
        HttpSession session = request.getSession();
        // 修改session
        session.setMaxInactiveInterval(1 * 24 * 60 * 60);// 秒後session物件將要被銷燬
        // 儲存會話資料(作為域物件)
        session.setAttribute("customerInfo", customerInfo.toString());

}

public void checkUserInfo(HttpServletRequest request,HttpServletResponse response){

       // 建立或者獲取session物件
        HttpSession session = request.getSession();

        String customerInfo = (String) session.getAttribute("customerInfo");
        if (StringUtils.isEmpty(customerInfo)) {
            response.sendRedirect("http://www.baidu.com");
            return null; // 告訴Spring MVC我已經完成了處理 避免因為刪除cookies 頁面重定向攜帶jsessionid  報錯
                            // 找不到伺服器
        } else {

        response.getWriter().write(customerInfo);//將客戶資訊返回到頁面

        }

}

上述就完成了session的基本操作,當呼叫UserInfo時,將資料存到session,呼叫checkUserInfo時,檢查session是否還存在,不存在就重定向你想要的頁面,比如你的首頁,或者登入頁,否則將資料傳送到頁面,用於頁面獲取,

  自動登入的具體實現就是,當請求過來,自己定義一個頁面標識是否勾選自動登入的值,當判斷不自動登入則不用儲存session,下次請求自動重定向到指定頁面,否則將資料儲存到session中,checkUserInfo方法不用變。