HttpSession的生命周期
1.创建Session对象
①对于Jsp:浏览器访问服务端的任何一个Jsp页面都会产生一个Session对象吗??
答案是不一定。
若当前的的Jsp是客户端访问的Web应用的第一个资源,且Jsp的page指定的session属性值为false,则服务器就不会为Jsp产生一个Session对象;
若当前的Jsp不是客户端访问的第一个资源,且其他页面已经创建了一个Session对象,则服务器也不会为当前Jsp页面创建一个Session 对象,而会把和当前页面会话关联的那个session对象返回给当前Jsp
②对于Servlet:若Servlet是客户端访问的第一个Web应用资源,则只有调用了request.getSession()或者request.getSession(ture)才会创建HttpSession对象
session="false"表示当前Jsp页面禁用session隐含变量!但是可以使用其他的显示Httpsession对象
③.在Servlet中获取HttpSession对象
request.getSession(boolean create):create为false,若没有和当前JSP页面关联的HttpSession对象,则返回null,若有则true,create为true,一定返回一个HttpSession对象,若没有和当前Jsp页面关联的HttpSession对象,则服务器会立刻创建一个新的HttpSession对象返回。若有,则返回关联的HttpSession对象。
④销毁HttpSesssion对象
直接调用HttpSession的invalidate()方法:该方法是HttpSession失效。
服务器卸载了当前WEB应用。
超出HttpSession的过期时间,设置Httpsession的过期时间:session.setMaxInactiveInterval(5) ;单位为秒;在web.xml文件中设置Httpsession的过期时间
并不是关闭了浏览器就销毁了HttpSession对象。