Session使用

Session是实现会话管理的一种方式。

Session概念:

  • WEB服务器端程序想要识别出来自同一个浏览器的访问请求,需要浏览器对其发送的每个请求进行标识。而这个标识就是SessionID,由Session创建。
  • Session机制采用的是在服务器端保存HTTP状态信息的方案。

Session运行流程理解:

  1. 当服务器程序想要为某个客户端的请求创建一个session标识,则首先会检测该客户端请求里是否包含了一个session标识。
  2. 如果请求已经包含了一个sessionID,则说明以前已经为该客户端创建过session,服务器会根据该sessionID检索出session。
  3. 如果请求不包含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()方法,设置会话的超时期,单位为秒。例如:setMaxInactiveInterval(3600);为一个小时;
  • 通过web.xml的<session-timeout>标签设置。
  • 使用session对象的invalidate()方法。

Session常用方法:

  • getAttribute()   从Session对象中提取一个之前存储的属性值;
  • setAttribute()   设置Session对象的属性名称和属性值;
  • removeAttribute()   移除Session对象;
  • getAttributeNames()   返回所以Session对象的名称;
  • getId()   返回Session对象的唯一标识符;
  • isNew()   确定会话对于客户来说是否为新创建;
  • getCreationTime()   返回会话创建的时间;
  • getLastAccessedTime()   返回客户端最近一次发送请求的时间;
  • getMaxInactiveInterval()   取得会话的超时期;
  • setMaxInactiveInterval()   设置会话的超时期;
  • Invalidate()   结束当前Session会话;
发布了25 篇原创文章 · 获赞 7 · 访问量 2785

猜你喜欢

转载自blog.csdn.net/LagerSwan/article/details/102764459
今日推荐