一.session
1.session的過期時間是從什么時候開始計算的?是從一登錄就開始計算還是說從停止活動開始計算?
從session不活動的時候開始計算,如果session一直活動,session就總不會過期。
從該Session未被訪問,開始計時; 一旦Session被訪問,計時清0;sessionid有效期內不會變。
session 是借助 cookie 實現的。另外,清空客戶端cookie,session就會丟失。
2.設置session的失效時間,如果session還在有效期就不會重新生成。
web.xml中
<session-config> <session-timeout>30</session-timeout> </session-config>
//單位為分鍾
3.http請求時,無論http頭指定了多少個 sessionid, 最終都只能操作一個會話,
如果指定的 sessionid 不合法,會自動創建新的 session
二.request.getSession()的用法進行總結:
在javaweb項目中,用到request.getSession()一般是存儲信息到session中或者從session中獲取信息。
一般有三種參數設置方式:
1.request.getSession()
這是常用的方式,從當前request中獲取session,如果獲取不到session,則會自動創建一個session,默認為true,並返回新創建的session;如果獲取到,則返回獲取到的session;
2.request.getSession(true)
這種方法和第一種一樣,只是增家了一個true參數,告訴它在獲取不到的時候自動創建session;
3.request.getSession(false)
這種方法與上兩種的區別,就是在獲取不到session的時候,不會自動創建session,而是會返回null。
在使用過程中,一般想要存儲到session中時,使用request.getSession(),
想要獲取session中的信息時,使用request.getsession(false),並在獲取后對session變量進行是否為null的判斷,再進行下一步操作
4.怎么判斷session是否過期。
session不存在就是session過期了,可進行如下判斷,方法如下:
if(request.getSession(false)==null){
System.out.println("Session has been invalidated!");
}
else{
System.out.println("Session is active!");
}