HttpSession會話狀態的生命週期

2021-08-21 03:27:11 字數 938 閱讀 1950

瀏覽器訪問伺服器時,伺服器會建立乙個session物件(有乙個sessionid)。伺服器在預設的情況下,會將sessionid以cookie的機制傳送給瀏覽器。當瀏覽器再次訪問伺服器時,會將sessionid傳送給伺服器,伺服器依據sessionid就可以找到對應的session物件。伺服器以此方式管理使用者的狀態。

獲取session物件的方式有兩種:

一、httpsession session = request.getsession(boolean flag);當flag = true時,伺服器會先檢視請求中是否包含sessionid,如果有,則依據sessionid去查詢對應的session物件,如果找到返回該物件。如果找不到,則會建立乙個新的session物件。當flag = false時,伺服器會先檢視請求中是否包含sessionid,如果沒有,返回null。如果有返回sessionid對應的session物件。

二、httpsession session = request.getsession()與方式一中request.getsession(true)等價。session生命週期,servlet容器從建立session物件到銷毀的過程。servlet容器會依據session物件設定的存活時間,在達到session時間後將session物件銷毀。

設定session存活時間的方式有三種:

一、session.setmaxinactiveinterval(interval)方法體內的引數interval為秒。

二、web.xml裡配置如下資訊

時間長度(單位為分鐘)

三、在tomcat/conf/server.xml中定義defaultsessiontimeout=時間長度(分鐘)

三種方式中當值為

-1時,

session

永不失效。三種方式的優先順序為:第一種方式

>

第二種方式

>

第三種方式

會話管理(二) HttpSession

httpsession會話管理 伺服器為每個會話建立乙個httpsession物件 每個會話物件都有乙個唯一的id 把使用者的資料相應的儲存到httpsession物件中 舉例 實驗 記錄不同使用者 瀏覽器 的訪問次數。不停的重新整理頁面,頁面上的數次在增加。這是你第 count 次訪問 out.c...

httpsession詳解(會話追蹤原理)

httpsession物件 1 原理 客戶端瀏覽器第一次訪問,伺服器端建立乙個會話物件。並且具有id的唯一值。依賴cookie將sessionid的值傳送給客戶端。第二次請求的時候,客戶端瀏覽器攜帶sessionid到伺服器。伺服器端獲得sessionid,從而實現了會話跟蹤 2 特點 建立在伺服器...

配置會話HttpSession的超時時間

1 現象 問題描述 客戶端請求與servlet建立連線之後,將為每乙個客戶端指派乙個httpsession物件,並且在該使用者會話期間一直存在,假如有5000個使用者,那麼將會產生5000個httpsession物件,每個httpsession都需要分配一定的記憶體,如部分使用者長時間不活動但還是繼...