Session在Servlet中的實現

2021-10-08 16:41:36 字數 1481 閱讀 6614

建立session

再次請求

域屬性空間範圍的對比

銷毀session和cookie類似,也是一種會話跟蹤技術,cookie是將會話狀態儲存在了瀏覽器端,而session是將會話狀態儲存在了伺服器端。

session會為每個會話維護乙個session,不同的會話對應不同的session。

session在伺服器上是以map的形式儲存的:

keyvalue

隨機字串,稱為sessionid

session對物件的引用

後端將session資訊寫入session列表後,系統還會將sessionid作為name,將sessionid內容的隨機字串作為value以乙個全域性的cookie的形式(就是當前web應用下任一路徑都會帶上這個cookie,因此可以跨請求共享資料)放到響應包頭中,然後將該cookie返回給客戶端並且存在快取中

當再次發出請求時,客戶端會帶上這個cookie

在最後一次訪問後的30分鐘後失效

並不會在你關閉瀏覽器後失效(除非瀏覽器設定關閉後立即清空快取,因為返回的cookie是存在快取中的),因為對使用者來說開啟關閉瀏覽器是一次會話,但是對伺服器來說,seesion失效才算一次會話

單位是秒s

}前端看到的,在響應中,以cookie的形式返回了session

並且路徑設定為當前web應用全域性

當我們再次傳送請求,會把sessionid的cookie傳過去(不同是因為這是分兩次寫的部落格,這是兩個session)

servletcontext:整個應用,可以跨會話

httpsession:會話範圍,可以跨請求共享

httpservletrequest:請求範圍,可以跨servlet

session.

invalidate()

;

在servlet中怎樣獲得session的配置資訊

session.getattribute 名稱 得到session放入進去的資訊。session.getattributenames 得到session裡面所有的資訊名稱。session.getmaxinactiveinterval 得到session最大存活時間。seesion.getid 得到s...

Servlet學習筆記 Session

session是通過setattribute和getattribute來傳遞資訊的。session通過伺服器建立和管理,當這個session30分鐘空閒,伺服器就會把此session摧毀。session.invalidate 方法可以摧毀session。一次會話結束後,原來的預設cookie就被刪除...

Servlet實現session讀寫

乙個女人讓他的程式設計師丈夫去商店買東西 你去附近的商店買些麵包,如果有雞蛋的話,買6個回來,這個丈夫買了6個麵包回來,他的妻子大吃一驚 你為什麼買了6個麵包?程式設計師丈夫回答 因為他們有雞蛋。session 是存放在服務端的,當使用者傳送請求,session 存放機制是下面這樣的 使用者訪問的時...