在Servlet中进行会话管理,可以使用HttpServletRequest()方法取得HTTPSession对象(简称为Session),通过设置、获取服务器端Session对象的属性,来保留请求之间的相关信息
Servlet容器提供Session接口来代表服务器端和客户端的会话:
当一个web服务器为客户端开始一个会话时,创建一个新的Session对象(含有特殊ID,称为Session ID,默认用Cookie存放在浏览器中。)
使用Session实现用户登录
登录时,创建Session对象并设置相关属性
再次访问时,获取Session对象和相关属性
注:默认在关闭浏览器前,所得Session都是相同实例
使用Session对象
1、获取一个与请求相关联的会话
HTTPSession session = request.getSession();
2、从Session中设置或获取一个属性
session.setAttribute("userName",userName);
session.getAttribute("username");
3、根据需要关闭会话
session.invalidate();
注:通常客户端不提供结束会话的通知,而是Servlet容器在用户处于一段非活动期后就会自动的使会话时效——这个时间段称为会话的超时期。
Session的方法
1、getAttribute()
从会话对象中提取一个之前存储的属性值(如果没有找到与名称相关联的值,则返回null)
2、setAttribute()
设置会话对象的属性名称和属性值
3、removeAttribute()
移除与名称关联的值
4、getAttributeNames()
返回会话中所有属性的名称
5、getId()
返回唯一的标识符
6、isNew()
确定会话对于客户来说是否为新创建
7、getCreationTime()
返回会话创建的时间
8、getLastAccessedTime()
返回客户端最近一次发送请求的时间
9、getMaxInacTiveInterva()、setMaxInactiveInterva()
取得或设置会话的超时期
10、invalidate()
废弃当前的会话