- 客户端第一次访问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;