Session
Session是服務(wù)器端技術(shù)梦裂,利用這個(gè)技術(shù),服務(wù)器在運(yùn)行時(shí)可以為每一個(gè)用戶的瀏覽器創(chuàng)建一個(gè)其獨(dú)享的session對(duì)象,由于session為用戶瀏覽器獨(dú)享蛛倦,所以用戶在訪問(wèn)服務(wù)器的web資源時(shí),可以把各自的數(shù)據(jù)放在各自的session中啦桌,當(dāng)用戶再去訪問(wèn)服務(wù)器中的其它web資源時(shí)溯壶,其它web資源再?gòu)挠脩舾髯缘膕ession中取出數(shù)據(jù)為用戶服務(wù)。
Session與Cookie的區(qū)別
- Cookie基于瀏覽器甫男,不安全且改,大小有限制
- Session技術(shù)把用戶的數(shù)據(jù)寫到用戶獨(dú)占的session中(服務(wù)器端)。
- 關(guān)閉瀏覽器Session消亡板驳,沒(méi)法持久化
- Session對(duì)象由服務(wù)器創(chuàng)建又跛,開(kāi)發(fā)人員可以調(diào)用request對(duì)象的getSession方法得到session對(duì)象。
- session域?qū)ο笕糁危秶淮螘?huì)話范圍慨蓝,存?zhèn)€人相關(guān)的數(shù)據(jù)。
Session的使用
HttpSession session = request.getSession();
- 如果第一次get,就會(huì)創(chuàng)建session端幼,并放入session池中礼烈,以后就都從池中取出
- 響應(yīng)的時(shí)候,會(huì)以Cookie的形式把Session在Session池中的Id返回給瀏覽器静暂,用戶下一次請(qǐng)求的時(shí)候回帶上這個(gè)Cookie,如:
Cookie:JSESSIONID=BE985E34470E2BF96EBC403AAAE7F95B
相關(guān)API
- setAttribute(String name, Object value)
- Object getAttribute(String name)
- String getId() 獲取seesion的唯一的ID
- void invalidate() 銷毀的session
Session的應(yīng)用場(chǎng)景
- 購(gòu)物車
- 單點(diǎn)登錄(有時(shí)間做一下:保存用戶登錄信息济丘,遍歷所有Session,所有Session可保存在Application)