Session详解
# 什么是Session会话
- Session就是一个接口(HttpSession)
- Session就是回话。它是用来维护一个客户端和服务器之间关联的一种技术
- 每个客户端都有自己的一个Session会话
- Session会话中,我们经常用来保存用户登录之后的信息
# 如何创建Session和获取
创建和获取Session的API是一致的,都是request.getSession()
第一次调用:创建Session会话
之后调用都是:获取前面创建好的Session会话对象
isNew()
:判断到底是不是刚创建出来的,返回true和false
每个Session会话都有一个身份证号,即id值,且这个id是唯一的
getId()
方法能得到Session的会话id值
# Session域中数据的存取
setAttribute(key,value)
:存数据getAttribute(key)
:取数据
# Session生命周期控制
setMaxInactiveInterval(int interval)
:设置Session的超时时间(以秒为单位),超过指定的时长,Session就会被销毁getMaxInactiveInterval
:获取Session的超时时间invalidate()
:使当前Session会话马上超时失效
Session默认的超时时长为30分钟
Session的超时指的是,客户端两次请求的最大间隔时长
# 浏览器和Session之间关联的技术内幕
每次浏览器给服务器发请求的时候,如果服务器没有这次会话的Session对象,就会创建一个,并会创建一个带Session id信息的Cookie发回给浏览器,之后每次浏览器发请求的时候,都会把这个Cookie发回,服务器使用request.getSession()
方法时就会根据这个信息自己去查找之前创建好的Session
编辑 (opens new window)
上次更新: 2024/05/30, 07:49:34