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方法不用變。