問題:
乙個使用者的不同請求處理的資料共享怎麼辦?
解決: 使用session技術
原理: 使用者第一次訪問伺服器,伺服器會建立乙個session物件給此使用者,並將
該session物件的jsessionid使用cookie技術儲存到瀏覽器中,保證
使用者的其他請求能夠獲取到同乙個session物件,也保證了不同請求能夠
獲取到共享的資料
特點: 儲存在伺服器端
伺服器進行建立
依賴cookie技術
一次會話
預設儲存時間為30分鐘
作用: 解決了乙個使用者不同請求處理的資料共享問題
使用: 建立session物件/獲取session物件
如果請求中擁有session的識別符號也就是jsessionid,則返回其對應對的session物件
如果請求中沒有session的識別符號也就是jsessionid,則建立新的session物件,並將
其jsessionid作為從cookie資料儲存到瀏覽器記憶體中
如果session物件是失效了,也會重新建立乙個session物件,並將其jsessionid儲存到瀏覽器記憶體中。
設定session儲存時間
hs.setmaxinactiveinterval(int seconds);
也可在tomcat的web.xml中進行全域性配置
注意:在指定的時間內session物件沒有被使用則銷毀,如果使用了則重新計時。
設定session強制銷毀
hs.invalidate();
儲存和獲取資料
儲存:hs.setattribute(string name, object value);
獲取:hs.getattribute(string name) 返回的資料型別為object
注意:儲存的動作和取出的動作發生在不同的請求中,但是儲存要先於執行
使用時機:
一般使用者在登入web專案時會將使用者的個人資訊儲存到session中,供該使用者的其他請求使用。
總結:session解決了乙個使用者的不同請求的資料共享問題,只要在jsessionid不失效和session物件不失效的情況下
使用者的任意請求在處理時都能獲取到同乙個session物件
作用域:
一次會話
在jsession和session物件不失效的情況下為整個專案內。
session失效處理:
將使用者請求中的jsessionid和後台獲取到的session物件的jsessionid進行對比,如果一致
則session沒有失效,如果不一致則證明session失效啦。重定向到登入頁面讓使用者重新登入
注意:jsessionid儲存在了cookie的臨時儲存空間中,瀏覽器關閉即失效
SESSION會話技術
以下對session會話技術詳解 要了解點http協議理解更佳 http請求頭和http相應頭 在session start的時候,瀏覽器會向伺服器發出請求 在請求的同時,如果是第一次apache會給瀏覽器分配乙個session id便識別,到瀏覽器下次請求時就會攜帶 apache分配的sessio...
會話技術 Session
一 概念 1.session 將會話中產生的資料儲存在服務端 是服務端技術 2.具體流程 1 瀏覽器第一次傳送請求需要儲存資料時,服務端獲取到需要儲存的資料,去伺服器內部檢查一下有沒有為當前瀏覽器服務的session 如果有就直接拿過來用,如果沒有session就建立乙個新的session拿過來用 ...
SESSION會話技術
以下對session會話技術詳解 要了解點http協議理解更佳 http請求頭和http相應頭 在session start的時候,瀏覽器會向伺服器發出請求 在請求的同時,如果是第一次apache會給瀏覽器分配乙個session id便識別,到瀏覽器下次請求時就會攜帶 apache分配的sessio...