Session使用
Session是实现会话管理的一种方式。
Session概念:
- WEB服务器端程序想要识别出来自同一个浏览器的访问请求,需要浏览器对其发送的每个请求进行标识。而这个标识就是SessionID,由Session创建。
- Session机制采用的是在服务器端保存HTTP状态信息的方案。
Session运行流程理解:
- 当服务器程序想要为某个客户端的请求创建一个session标识,则首先会检测该客户端请求里是否包含了一个session标识。
- 如果请求已经包含了一个sessionID,则说明以前已经为该客户端创建过session,服务器会根据该sessionID检索出session。
- 如果请求不包含sessionID,则服务器端需要为客户端创建一个session并生成一个sessionID,该ID会在本次响应中返回给客户端保存。
Session流程图解:
Session的使用流程:
1、创建Session对象,获取一个与请求相关联的会话。
HttpSession hs = request.getSession();
2、从Session中设置/获取一个属性。
hs.setAttribute("userName",Value);
hs.getAttribute("userName");
3、根据需要关闭会话。
session.invalidate();
使Session失效的方法:
- 通过setMaxInactiveInterval()方法,设置会话的超时期。
- 通过web.xml的<session-timeout>标签设置。
- 使用session对象的invalidate()方法。
Session常用方法:
- getAttribute() 从Session对象中提取一个之前存储的属性值;
- setAttribute() 设置Session对象的属性名称和属性值;
- removeAttribute() 移除Session对象;
- getAttributeNames() 返回所以Session对象的名称;
- getId() 返回Session对象的唯一标识符;
- isNew() 确定会话对于客户来说是否为新创建;
- getCreationTime() 返回会话创建的时间;
- getLastAccessedTime() 返回客户端最近一次发送请求的时间;
- getMaxInactiveInterval() 取得会话的超时期;
- setMaxInactiveInterval() 设置会话的超时期;
- Invalidate() 结束当前Session会话;