session詳細解析 是否過期 失效時間

2021-08-31 20:22:01 字數 1088 閱讀 1041

session一直是我們做web專案經常使用的,以前沒太注意,這次又細緻的看了下!

1.session其實就是乙個map,鍵=值對,通過session.getattribute("name");獲得session中設定的引數

2.session的過期時間是從什麼時候開始計算的?是從一登入就開始計算還是說從停止活動開始計算?

答:從session不活動的時候開始計算,如果session一直活動,session就總不會過期。

從該session未被訪問,開始計時; 一旦session被訪問,計時清0;

3.設定session的失效時間

a)web.xml中

30  

b)在程式中手動設定

session.setmaxinactiveinterval(30 * 60);//設定單位為秒,設定為-1永不過期

c)tomcat也可以修改session過期時間,在server.xml中定義context時採用如下定義:

4.如何判斷session過沒過期

1.以前是根據 if(session.getattribute('user')==null)判斷是否為空

2.如下為看到的乙個帖子,判斷session不為空的好方法:

request.getseesion(boolean)方法,一下子讓我恍然大悟。這個方法裡面傳了乙個boolean值,這個值如果是true,那麼如果當前的request的session不可用,那麼就建立新的會話,如果存在就返回當前的會話。如果引數是false,那麼在request的當前會話不存在的時候就返回null。

這樣我們就可以很容易的聯想到這個所謂的request的當前會話是否存在和session過期的聯絡,所以我們就可以「近似地」認為session不存在就是session過期了,那麼我們就可以很容易地判斷session是否過期了。方法如下:

if(request.getsession(false)==null)

system.out.println("session has been invalidated!");

else

system.out.println("session is active!");

判斷session是否過期

request.getseesion boolean 這個裡面傳了乙個boolean值,這個值如果是true,那麼如果當前的request的session不可用,那麼就建立新的會話,如果存在就返回當前的會話。如果引數是false,那麼在request的當前會話不存在的時候就返回null。這樣就可以很...

判斷session是否過期

前一段時間有好幾個問題,提到怎麼判斷session是否過期。接觸jspo已經很久了,但是還真沒有想過這個問題,當時也就沒有找到乙個滿意的答案給人家。當時,我提到乙個方法,就是實現httpsessionlistener介面,然後在sessiondestroyed 方法中執行一些操作,表示session...

session過期時間

在一般系統登入後,都會設定乙個當前session失效的時間,以確保在使用者沒有使用系統一定時間後,自動退出登入,銷毀session。具體設定很簡單 在主頁面或者公共頁面中加入 session.setmaxinactiveinterval 900 引數900單位是秒,即在沒有活動15分鐘後,sessi...