我們在開發web系統的時候,我們需要控制session自動失敗的時間,也要控制用戶的訪問超時,請跟錯新技術頻道小編一起看看JSP Session超時設置的實現方法。
JSP Session超時設置的實現方法
在Java Web開發中,Session為我們提供了很多方便,Session是由瀏覽器和服務器之間維護的。Session超時理解為:瀏覽器和服務器之間創建了一個Session,由于客戶端長時間(休眠時間)沒有與服務器交互,服務器將此Session銷毀,客戶端再一次與服務器交互時之前的Session就不存在了。?
設置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。?
以上就是錯新技術頻道小編分享的JSP Session超時設置的實現方法,大家都喜歡嗎?更多的專業知識盡在js.VeVb.com。
新聞熱點
疑難解答