session技術學習

2021-09-25 03:38:38 字數 1448 閱讀 2295

問題:

乙個使用者的不同請求處理的資料共享怎麼辦?

解決: 使用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...