2.session(会话)
(1)什么是session
浏览器访问服务器时,服务器会创建一个
session对象(有一个唯一的id,一般称之为
sessionId),服务器会将这个sessionId以
cookie的方式发送给浏览器;
当浏览器再次访问服务器时,会将这个sessionId
发送过来,服务器会依据这个sessionId找到对应
的session对象。
(2)如何获得一个session对象?
1)HttpSession session =
request.getSession(boolean flag);
a.当flag=true时
先查看请求当中是否有sessionId,如果
没有sessionId,则创建一个session对象;
如果有sessionId,则依据该sessionId查找
对应的session对象,如果找到了,则返回,
找不到,则创建一个新的session对象。
b.当flag=false时
先查看请求当中是否有sessionId,如果
没有sessionId,返回null;
如果有sessionId,则依据该sessionId查找
对应的session对象,如果找到了,则返回,
找不到,返回null。
2)HttpSession session =
request.getSession();
等价于 request.getSession(true)。
(3)常用方法
String getId()
setAttribute(String name,Object obj)
Object getAttribute(String name)
removeAttribute(String name)
(4)session超时
1)什么是session超时?
服务器会将空闲时间过长的session对象删除掉。
服务器都会有一个缺省的超时时间限制(大约30分钟)
2)修改缺省的超时时间限制
<session-config>
<session-timeout>30</session-timeout>
</session-config>
3)setMaxInactiveInterval(int seconds)
(5)删除session
invalidate()