Session直接翻譯成中文比較困難,一般都譯成時域。在電腦專業術語中,Session是指一個終端使用者與互動系統進行通訊的時間間隔,
通常指從註冊進入系統到註銷退出系統之間所經過的時間。以及如果需要的話,可能還有一定的操作空間。
推薦課程:Java教學。
Session的生命週期
#Session儲存在伺服器的記憶體中(為了高速存取)。
Session何時生效
Sessinon在使用者存取第一次存取伺服器時創建,需要注意只有存取JSP、Servlet等程式時才會建立Session,只訪問HTML、IMAGE等靜 態資源並不會建立Session,可呼叫request.getSession(true)強制產生Session。
Session何時失效
1.伺服器會把長時間沒有活動的Session從伺服器記憶體中清除,此時Session便失效。 Tomcat中Session的預設失效時間為20分鐘。
2.呼叫Session的invalidate方法。
HttpSession session = request.getSession(); session.invalidate();//注销该request的所有session
3.session的過期時間是從什麼時候開始計算的?是從一登入就開始計算還是說從停止活動開始計算?
答:從session不活動的時候開始計算,如果session一直活動,session總是不會過期。
從該Session未被存取,開始計時; 一旦Session被存取,計時清除0;
4.設定session的失效時間
a)web.xml中
<session-config> <session-timeout>30</session-timeout> </session-config>
b)在程式中手動設定
session.setMaxInactiveInterval(30 * 60);//设置单位为秒,设置为-1永不过期
c)tomcat也可以修改session過期時間,在server.xml中定義context時採用如下定義:
<Context path="/livsorder" docBase="/home/httpd/html/livsorder" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/>
[註]:若要移除Session中特定的值,可以呼叫removeAttribute方法,但request中的SessionID仍不變,只是其中的值發生了改變, Session還是原來的Session。 ↓↓↓↓↓↓↓↓
request.getSession().removeAttribute("xxx");
以上是session的生命週期是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!