Session

1.Session创建和获取id

request.getSession() 第一次调用此方法时,创建Session会话,之后调用都是获取前面创建好的Session会话对象
isNew() 可以判断到底是不是创建出来的(新的),true表示刚创建,false表示获取之前创建
getId() 每个会话都有一个ID值,且该ID唯一
setAttribute(name,value) 存储数据
getAttribute(name) 取数据
setMaxInactiveInterval(int interval) 设置session的超时时间(客户端两次请求的最大间隔时长),超过指定时长,Session就会被销毁,默认超时时长为30分钟,设置为负数表示永不超时
在tomcat的conf目录下的web.xml中有所配置: ![](https://img2020.cnblogs.com/blog/1697946/202108/1697946-20210816145413525-289437838.png) 可以在工程下的web.xml文件中进行修改默认超时时间 invalidate()使当前session立刻销毁getMaxInactiveInterval()` 获取session的超时时间(以秒为单位)

2.浏览器与Session之间的关联

Session技术底层是依据Cookie实现的
(1)服务器每次创建Session会话的时候,都会创建一个Cookie对象,这个Cookie对象的key永远是JSESSIONID,值为新创建的sessionId值,并通过响应将新创建的Session的id返回给客户端
(2)浏览器解析收到的数据,就马上创建出一个Cookie对象
(3)浏览器存在Cookie之后,每次请求,都会将Session的id以Cookie的形式发送给服务器
(4)request.getSession(),服务器可通过Cookie中的id值找到之前创建的Session对象并返回
(5)在浏览器中删除Session的Cookie,由于服务器获取不到sessionId,无法找到对应的Session,因此会创建新的Session返回

posted @ 2021-08-16 14:55  kanaliya  阅读(72)  评论(0)    收藏  举报