首頁 >Java >java教程 >session的生命週期是什麼

session的生命週期是什麼

(*-*)浩
(*-*)浩原創
2019-05-06 13:59:5724603瀏覽

Session直接翻譯成中文比較困難,一般都譯成時域。在電腦專業術語中,Session是指一個終端使用者與互動系統進行通訊的時間間隔,

通常指從註冊進入系統到註銷退出系統之間所經過的時間。以及如果需要的話,可能還有一定的操作空間。

推薦課程:Java教學

session的生命週期是什麼

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn