#會話超時, 單位:毫秒, 20m=1200000ms, 30m=1800000ms, 60m=3600000ms session.sessionTimeout=1800000 #會話清理間隔時間, 單位:毫秒,2m=120000ms。 session.sessionTimeoutClean=120000
設置Session超時時間方式:
方式一:
在web.xml中設置session-config如下:
<session-config>
<session-timeout>2</session-timeout>
</session-config>
即客戶端連續兩次與服務器交互間隔時間最長為2分鍾,2分鍾后session.getAttribute()獲取的值為空
API信息:
session.getCreationTime() 獲取session的創建時間
session.getLastAccessedTime() 獲取上次與服務器交互時間
session.getMaxInactiveInterval() 獲取session最大的不活動的間隔時間,以秒為單位120秒。
方式二:
在Tomcat的/conf/web.xml中session-config,默認值為:30分鍾
<session-config>
<session-timeout>30</session-timeout>
</session-config>
方式三:
在Servlet中設置
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60);//單位為秒
說明:
1.優先級:Servlet中API設置 > 程序/web.xml設置 > Tomcat/conf/web.xml設置
2.若訪問服務器session超時(本次訪問與上次訪問時間間隔大於session最大的不活動的間隔時間)了,即上次會話結束,但服務器與客戶端會產生一個新的會話,之前的session里的屬性值全部丟失,產生新的sesssionId
3.客戶端與服務器一次有效會話(session沒有超時),每次訪問sessionId相同,若代碼中設置了session.setMaxInactiveInterval()值,那么這個session的最大不活動間隔時間將被修改,並被應用為新值。
4.Session的銷毀(代表會話周期的結束):在某個請求周期內調用了Session.invalidate()方法,此請求周期結束后,session被銷毀;或者是session超時后自動銷毀;或者客戶端關掉瀏覽器
5.對於JSP,如果指定了<%@ page session="false"%>,則在JSP中無法直接訪問內置的session變量,同時也不會主動創建session,因為此時JSP未自動執行request.getSession()操作獲取session。
————————————————
版權聲明:本文為CSDN博主「myflyingangel2016」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/myflyingangel2016/article/details/52512046