Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID。在服务器存储数据的区域叫域对象,servletcontext request session 都是域对象,可以用三个同用的方法增 删 获取。
过程理解图如下
获取session的方法,request.getsession(),一访问就会产生session对象所对应的唯一标识,session.getid()方法获取,访问一下获得此id,关闭浏览器之后再次访问,这个id会发生变化,因为我们jsessionid存在cookie里,所有我们关闭浏览器之后,cookie就销毁了,再次访问的时候就不携带jsessionid了,但是存储在服务器的响应区域仍然存在。我们想下一次访问也找到这块区域,我们可以参考cookie持久化时间的方法,设置一个同名同路径 设置一个持久化时间,先创建cookie对象 设置持久化时间和路径,发送cookie即可。
session的生命周期,当第一次执行request.getsession()方法时创建,服务器关闭时销毁,或者session过期失效 默认30分钟,在服务器不访问任何资源的情况下30分钟后自动清除,可以在web.xml的session config标签下更改,手动销毁方法为session.invalidate()方法进行销毁。
原文:https://www.cnblogs.com/cactus1/p/14528288.html