session的建立:
session隨著使用者第一次訪問伺服器而建立,在訪問jsp、servlet等程式的時候才會建立session,只訪問html等靜態資源並不會建立,session儲存在瀏覽器裡面方便快速訪問。
session的消亡:
伺服器會清除一些長時間不活動的session,預設時間為30分鐘,清除之後session就失效,需要重新建立(重新建立意思就是需要再次請求伺服器)。
呼叫session的invalidate方法也會清除使session消亡,invalidate只會消亡當前的session,比如說有兩個人訪問伺服器,建立是兩個session,
名字暫且為s1,s2。s1訪問的時候然後在某一程式中呼叫了invalidate方法,清除的就是s1的session,別人的session跟你一點關係都沒有。
session對瀏覽器的要求:
session雖然是儲存在伺服器中,使用者並不知道有這個,但是他的運作還是需要客戶端(瀏覽器)的支援。因為session需要使用cookie作為識別標識,
http協議是無狀態的,session不能依據http連線來判斷是否為同一使用者,因此伺服器會傳送乙個jsessionid的cookie,他的值為session的id也就是httpsession.getid()的返回值。
session依據cookie來識別是不是同一使用者。
session 的注意事項:
新開啟的瀏覽器會生成乙個新的session(新開啟的網頁不會),新開啟的網頁會共享當前的session,如果客戶講瀏覽器的cookie功能禁用或者說使用者的瀏覽器不支援cookie功能的時候怎麼辦,
url位址重寫是對客戶端不支援的情況提供的解決方案,它將該使用者的sessionid資訊重寫到url位址當中,伺服器能夠解析重寫之後的url,然後拿到他的id,這樣即使客戶不支援也能使用session來記錄使用者狀態,
httpservletresponse類提供了encodeurl(string url)實現位址重寫,該方法會自動判斷客戶是否支援cookie,如果支援就會原封不動的輸出出來,如果不支援那麼就會進行位址重寫。
tomcat判斷使用者瀏覽器是否支援cookie的依據是根據請求中是否含有cookie,儘管使用者瀏覽器支援cookie,但是由於第一次訪問的時候不會攜帶任何的cookie,因為第一次沒有cookie攜帶,url位址重寫後仍會攜帶
jsessionid,當第二次訪問的時候伺服器已經在瀏覽器寫入cookie,因此url位址重寫之後就不會再帶有jsessionid了。
session 生命週期
session的生命週期 當發生下面的情況時,session以及其中的資料會被清空 使用者關閉當前正在使用的瀏覽器 關閉網頁伺服器 使用者未向服務 起提出請求或超過預定的時間,tomcat伺服器預設為30分鐘 執行程式結束session。注意,當瀏覽器關閉時,不會向伺服器傳送訊息,這次會話關聯的所有...
Session生命週期
session生命週期 session儲存在伺服器端,一般放置在伺服器的記憶體中 為了高速訪問 session在使用者第一次訪問伺服器時建立,需要注意只有訪問jsp,servlet等程式時才會建立session,只訪問html image等靜態資源並不會建立session,可呼叫request.ge...
Session生命週期
今天我就詳細講解下中間那個兄弟.因為在網上看到很多文章.幾乎毫無例外的說.乙個瀏覽器只有乙個session,瀏覽器關閉session就消失了.其實這種方法是不正確的.要了解session首先要知道乙個概念 session的銷毀只有兩種情況 第一 session呼叫了 session.invalida...