1. 程式人生 > >JAVA中Cookie和session的存取

JAVA中Cookie和session的存取

目錄

Cookie

Cookie -- 存

Cookie Cookie_name = new Cookie("Cookie_name", "張三");

//設定Cookie的最大生命週期,否則瀏覽器關閉後Cookie即失效(Integer.MAX_VALUE)
Cookie_name .setMaxAge(-1);

Cookie_name .setHttpOnly(false);

//將Cookie加到response中
response.addCookie(Cookie_name );


Cookie -- 清除

Cookie Cookie_name = new Cookie("Cookie_name", null);


//設定Cookie的最大生命週期,否則瀏覽器關閉後Cookie即失效
Cookie_name .setMaxAge(0);
Cookie_name .setHttpOnly(false);

//將Cookie加到response中
response.addCookie(Cookie_name );


Cookie -- 獲取

Cookie[] cookies = request.getCookies();
for (Cookie c : cookies) {//遍歷獲取Cookie中的所有值
   if (c.getName().equals("Cookie_name "))
      return c.getValue();
}

Session

Session -- 存

HttpSession session = request.getSession();

session.setAttribute("Session_name", "張三");

//如果設定的值為零或負數,則表示會話將永遠不會超時。常用於設定當前會話時間。
session.setMaxInactiveInterval(3600);


Session -- 清除

  1. 伺服器自動清除沒有活動的session,清除的時間限制就是通過setMaxInactiveInterval來設定的,一般tomcat的此預設時間值為20分鐘

  2. 呼叫session的invalidate方法,意思就是有意而為之。

HttpSession session = request.getSession();

//清除全部Session
//session.invalidate();

session.removeAttribute("Session_name");


Session -- 獲取

HttpSession session = request.getSession();

//String.valueof()為空時,返回值為字串"null",
//原始碼 return (obj==null) ? "null" : obj.toString()   
if(!String.valueOf(session.getAttribute("Session_name")).equals("null"))
return String.valueOf(session.getAttribute("Session_name"));