- 客戶端第一次訪問jsp文件,jsp被翻譯成Servlet時會自動創建Session,此后客戶端再次訪問就會帶着JSESSIONID過來。
- 當客戶端重啟瀏覽器時,客戶端的JSESSIONID被銷毀(此時服務端的Session沒有受影響),客戶端再次訪問瀏覽器沒有帶着JSESSIONID,服務端將再次為客戶創建Session。
- 在jsp文件page指令里設置session="false",客戶端訪問此jsp將不會創建Session。
- 客戶端訪問Servlet時不會創建Session,只有在通過request.getSession()或是跳轉到jsp文件時才創建Session。
tomcat默認session超時時間為30分鍾,可以根據需要修改,負數或0為不限制session失效時間。這里要注意這個session設置的時間是根據服務器來計算的,而不是客戶端。所以如果在調試程序,應該是修改服務器端時間來測試,而不是客戶端。
<session-config> <session-timeout>30</session-timeout> </session-config>
通過Java代碼設置
session.setMaxInactiveInterval(30*60); // 以秒為單位,即在沒有活動30分鍾后,session將失效
服務器端調用了HttpSession的invalidate()方法。
退出銷毀session的Action方法 /** * 用戶退出的方法 */ public String quit(){ // 銷毀session ServletActionContext.getRequest().getSession().invalidate(); return "quit"; }
注意!如果服務器正常關閉不會銷毀
private static final long serialVersionUID = 1L;