狀態管理:cookie
1創建cookie
Cookie cookie=new Cookie("user", username+"#"+password);
Cookie cookie=new Cookie("關鍵字", 值value);
2設置cookie
cookie.setMaxAge(60*60*24*7*2);單位爲秒,cookie的最大存活時間
cookie.setPath("/schoolwork");設置cookie的存放路徑
cookie.setHttpOnly(true);設置cookie只爲http讀取,可以提高安全性
3添加cookie
response.addCookie(cookie);
4讀取cookie
Cookie [] tb_cookie=request.getCookies();讀取cookie表
outcookies.getComment(); 返回cookie中註釋,如果沒有註釋的話將返回空值.
outcookies.getDomain();返回cookie中Cookie適用的域名. 使用getDomain() 方法可以指示瀏覽器把Cookie返回給同 一域內的其他服務器,而通常Cookie只返回給與發送它的服務器名字完全相同的服務器。注意域名必須以點開始(例如.yesky.com)
outcookies.getMaxAge();返回Cookie過期之前的最大時間,以秒計算。
outcookies.getName();返回Cookie的名字。名字和值是我們始終關心的兩個部分。
outcookies.getPath();返回Cookie適用的路徑。如果不指定路徑,Cookie將返回給當前頁面所在目錄及其子目錄下 的所有頁面。
outcookies.getSecure();如果瀏覽器通過安全協議發送cookies將返回true值,如果瀏覽器使用標準協議則返回false值。
outcookies.getValue();返回Cookie的值。
outcookies.getVersion();返回Cookie所遵從的協議版本。
狀態管理:session
1.創建session
HttpSession session=request.getSession();
2.設置session ,session像一個表,放着很多鍵字對
session.setAttribute("username", "zhangsan");
session.setAttribute("username", "wangwu");//後者王五將會覆蓋前者張三
session.setAttribute("username1", "zhangsan");
session.setAttribute("username2", "zhangsan");
session.setAttribute("username3", "zhangsan");
3.獲取session
// 獲取《一旦獲取session,就會創建一個cookie》
HttpSession session=request.getSession();
System.out.println("sessionid"+session.getId());
System.out.println("session創建時間"+session.getCreationTime());
System.out.println("session創建時間"+newDate(session.getCreationTime()));
System.out.println("最後一次訪間"+newDate(session.getLastAccessedTime()));
System.out.println("sesson過期時間"+session.getMaxInactiveInterval());//單位秒
http協議是無狀態的,不能保存每次提交的信息,即當服務器返回與請求相對應的應答之後,這次事物的所有信息就丟掉了。
客戶端的狀態管理技術cookie
服務端的狀態管理技術session
同名cookie後者會覆蓋前者
同名session後者會覆蓋前者
server判斷是否爲同一個用戶的條件是 session ID,session ID以cookie的方式傳遞給瀏覽器
“cookie"VS"session”
存在位置:cookie在客戶端的臨時文件夾
session存在服務器內存中,一個session域對象爲一個用戶瀏覽器服務
安全性:cookie是以明文的方式存在客戶端,
session是存放在服務器內存中,安全性較強
網絡傳輸器:cookie會傳遞信息給服務器
session屬性值不回傳輸給客戶端
生命週期:cookie的生命週期是累積時間,到點失效
session的生命週期可通過修改配置文件和設置屬性兩種方法進行改變