关于Session的4点:
第一点:Session的含义
通话,会话,对话期间,对谈时间的意思,其本来的含义一个终端用户与交
互系统进行通信的时间间隔,通常是指从进入系统到退出系统之间所经
过的时间.
第二点:Session的原理
服务器可以为客户端创建并维护一个Session对象,用于存放数据.在创
建Session对象的同时,服务器会将为该Session对象产生一个唯一的编
号,这个编号称之为SessionID,服务器以Cookie的方式将SessionID存放
在客户端.当浏览器再次访问该服务器时,会将SessionID作为Cookie信
息带到服务器,服务器可以通过SessionID检索到以前的Session对象,进
行访问.需要注意的是,此时的Cookie中仅仅保存了一个SessionID,而相
对较多的会话数据保存在服务器端对应的Session对象中,由服务器来统
一维护,这样一定保证了会话数据的安全性,但增加了服务器端的内存开
销.存放在客户端的用于保存SessionID的Cookie会在浏览器关闭时清除
.
第三点:实例化Session
HttpSession session = request.getSession(boolean); //获得
HttpSession对象;boolean=true===Session查找是否存在一个
SessionID,如果存在使用,如果没有新建;false===Session查找是否存
在一个SessionID,如果存在使用,如果不存在不管.
session.setMaxInactiveInterval(30);//设置Session对象的最长不活
动间隔;
session.setAttribute("key","value");
session.isNew();//判断当前会话是不是一个新的会话;
第四点:HttpSession接口
setAttribute("name","value");在Session对象中用一个名字绑定一个
对象
getAttribute("name");通过名字得到属性值
removeAttribute("name");通过名字删除
getCreationTime();返回第一次创建会话的时间
getLastAccessedTime();返回容器最后一次得到该会话ID的请求时间
setMaxInactiveInterval(int interval);设置客户请求的最大间隔时
间
getMaxInactiveInterval(int interval);返回客户请求的最大间隔时
间
invalidate();会话结束,当前存在在会话中的所有会话属性也会解除绑
定
getId();返回每一个Session唯一的标识;
第五点:会话超时管理
销毁有三种方法:
设置会话超时
在Session对象上调用invalidate();
应用结束(崩溃或取消部署)