一.session
1.session的過時時間是從何時開始計算的?是從一登陸就開始計算仍是說從中止活動開始計算?
從session不活動的時候開始計算,若是session一直活動,session就總不會過時。
從該Session未被訪問,開始計時; 一旦Session被訪問,計時清0;sessionid有效期內不會變。
session 是藉助 cookie 實現的。另外,清空客戶端cookie,session就會丟失。java
2.設置session的失效時間,若是session還在有效期就不會從新生成。
web.xml中web
<session-config> <session-timeout>30</session-timeout> </session-config>
//單位爲分鐘cookie
3.http請求時,不管http頭指定了多少個 sessionid, 最終都只能操做一個會話,
若是指定的 sessionid 不合法,會自動建立新的 sessionsession
二.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的判斷,再進行下一步操做spa
4.怎麼判斷session是否過時。
session不存在就是session過時了,可進行以下判斷,方法以下:code
if(request.getSession(false)==null){
System.out.println("Session has been invalidated!");
}
else{
System.out.println("Session is active!");
}