一,基本概念
cookie是在客户端存储客户信息。
二,session的生命周期
问题①:是否浏览器访问服务器的任何一个jsp都会立即创建一个HttpSession对象呢?
不一定
若当前的jsp或者servlet是客户端访问的当前web应用的第一个资源,而且jsp或者servlet的page指定的session属性值为false,则服务器不会为jsp创建session对象
若当前的jsp不是客户端访问的当前web应用的第一个资源,且其他页面已经创建了session对象,则当前jsp页面会返回一个session对象,不会新创建。
问题②:session=“false”当前jsp禁用session隐含变量,但可以使用其他显式的session对象。
问题③:对于servlet而言,什么时候创建session?若servlet是客户端访问的第一个web应用的资源在,则只有调用了request.getSession或者request.getSession(true)才会创建。
问题④:如何获得session对象?
----》getSession(boolean b) :若b为false,则没有和当前jsp关联的session对象,返回null,如果有,则返回true;
如果b为true,一定返回一个session对象,若没有和当前jsp关联的,则服务器新建一个session,如果有则返回关联的
----》getSession()等同于request.getSession(true)
问题⑤:什么时候session销毁?
----》直接调用HttpSession的invalidate方法,使当前的session对象失效。
---》服务器卸载了当前web应用。
---》session有一个过期时间,如果超过了过期时间,则会被销毁。
设置httpSession的过期时间,单位是秒:session.setMaxInactiveInterval();或者在web.xml文件中修改。
并不是关闭了浏览器就销毁了session对象。
三,常用的几个方法
四,使用URL重写跟踪Session