1.會話技術:從打開一個浏覽器通路某個站點,到關閉這個浏覽器的過程,成為一次會話。
2.cookie:資料存儲在用戶端本地,減少伺服器的壓力,安全性不好,可以随時清除
緩存cookie;session:資料存儲在伺服器端,安全性較好,但是能增加伺服器壓力
3.伺服器向用戶端發送一個cookie,分為
1).建立cookie Cookie cookie = new Cookie("UserName","PassWord");
cookie會以響應頭的格式發送給用戶端。***cookie中不能存儲中文。
2).設定cookie在用戶端的持久化時間,cookie.SetMaxAge("秒");//如果不設 置持久化時間,cookie會存儲在浏覽器的記憶體 中,浏覽器關閉,cookie銷毀 ,如果設定持久化時間,cookie資訊會被持久化到浏覽器的磁盤檔案中。
3).設定Cookie的攜帶路徑:如果不攜帶路徑,那麼該cookie資訊會在該web工程 下所有的路徑中存在。cookie.setPath("/");
4).向用戶端發送cookie;response.setCookie(Cookie cookie);
5).删除cookie ,設定為0即可;cookie.SetMaxAge("0");
4.伺服器怎麼接受用戶端攜帶的cookie
1).cookie資訊是以請求頭的方式發送給伺服器端的,通過request獲得所有的 cookie,Cookie[] cookies = request.getCookies();
2).周遊cookie數組,通過cookie的名稱獲得我們想要的cookie。
for(Cookie cookie:cookies){
if(cookie.getName.equals(cookieName))
String cookieValue = cookie.getValue();
}
========================session==============================
1.擷取session對象,HttpSession session = request.getSession();,擷取專屬當
前會話的session對象,如果伺服器沒有該會話的session,會建立一個session對
象,如果已經存在這個session對象,直接傳回(使用JSESSIONID判斷該伺服器是
否已經存在session,注,JSESSIONID是cookie中存儲客戶的唯一标志。)
2.擷取session對象
request.setAttribute();
request.getAttribute();
request.removeAttribute();
3.建立:第一次執行request.getSession()時建立
銷毀:
1)伺服器(非正常)關閉時
2)session過期/失效(預設30分鐘)
問題:時間的起算點 從何時開始計算30分鐘?
從不操作伺服器端的資源開始計時
可以在工程的web.xml中進行配置
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3)手動銷毀session
session.invalidate();