一、Session的原理
Session是将会话中产生的数据保存在服务端,是服务端的技术.
浏览器第一次发送请求需要保存数据时,服务端获取到需要保存的数据,去服务器内部检查一下有没有为当前浏览器服务的session,如果有就直接拿过来用,如果没有session就创建一个新的session拿过来用。接着将数据保存在Session中,做出响应。
当浏览器再去访问服务器时,服务器可以从session中获取到之前为当前浏览器保存的数据,通过这种方式,也可以来保存会话中产生的数据。
Session是一个域对象
1、提供的操作域中属性的方法:
setAttribute(String name,Object value);//往session域中添加一个属性.
getAttribute(String name);//通过属性名称获取对应的属性值.
removeAttribute(String name);//通过属性名称删除对应的属性.
2、生命周期:
(1)创建session:当第一次调用request.getSession方法时,创建session对象
request.getSession();
(2)销毁session:
a) 超时销毁:如果session 30分钟没有被使用,则会超时销毁。
b) 自杀:当调用session.invalidate()方法时,将会立即销毁session。
c) 意外身亡:当服务器非正常关闭时,session会立即销毁。
如果服务器正常关闭,session将会以文件的形式保存在服务器的work目录下,这个过程称之为session的钝化。
当服务器再次启动时,钝化着的session还可以再恢复回来,这个过程称之为session的活化!
3、作用范围:整个会话范围内
4、主要功能:在整个会话范围内共享数据