会话技术
HttpSession
保存在服务器端,并且为每一个访问的用户创建一个Session。浏览器关闭时,会话结束。
Session的实现原理
1.Session的实现是依赖cookie实现的;
2.用户第一次访问网页时,系统会为这个用户创建一个独立的Session出来,并且会为Session分配一个id号;
3.请求完成,响应回浏览器时,系统会创建一个Cookie,Cookie中会保存着sessionid;
4.浏览器接到响应,会把响应中的Cookie储存到浏览器中;
5.当用户再次访问网页时,请求中会携带着这个Cookie(带着id请求);
6.网页接到这个请求后,会取出Cookie的id去找对应的session,如果找到就直接使用,如果未找到就创建一个新的Session。
HttpSession
是一个域对象,作用范围是一次会话,默认有效时间是30分钟。
session.setMaxInactiveInterval(300);
设置Session中的有效时间,秒为单位,设置0或者负数,这时Session将永不过期。
// 让Session失效
session.invalidate();
Session的钝化和活化
钝化:将Session写入到文件中
活化:将写到文件中的Session读回Session对象中。
服务器在运行的过程中,突然停止了,这时Session中的信息不会消失,会写入到文件中(钝化)。当服务器再次启动,系统会从这个文件夹下把Session读回来(活化)。活化后,之前钝化保存的文件读取完就消失了。
注意:保存在Session中的对象一定要实现序列化接口。