Servlet (六 Session)

来源:互联网 发布:德拉蒙德格林2016数据 编辑:程序博客网 时间:2024/06/08 16:24

Session


session技术

Session技术是将数据存储在服务器端的技术,会为每个客户端都创建一块内存空间 存储客户的数据,但客户端需要每次都携带一个标识ID去服务器中寻找属于自己的内 存空间。所以说Session的实现是基于Cookie,Session需要借助于Cookie存储客 户的唯一性标识JSESSIONID


获取的客户端在服务器占有的session对象

此方法会获得专属于当前会话的Session对象,如果服务器端没有该会话的Session 对象会创建一个新的Session返回,如果已经有了属于该会话的Session直接将已有 的Session返回(实质就是根据JSESSIONID判断该客户端是否在服务器上已经存在 session了)

HttpSession session = request.getSession();

向session中存储数据

session是域对象 : 具有如下三个方法

session.setAttribute(String name,Object obj);session.getAttribute(String name);session.removeAttribute(String name);

session 生命周期

  • 创建 : 第一次遇见request.getSession();时创建
  • 销毁 : 服务器关闭,session过期 ,手动销毁
  • 作用范围 : 默认范围是在一次会话当中(是根据JSESSIONID来决定)
  • 默认JSESSIONID的持久时间是30分钟,可以根据如下配置文件进行修改
<session-config>        <session-timeout>30</session-timeout></session-config>

Session持久化iad操作

代码如下 :

  HttpSession session = request.getSession();  String id = session.getId();  Cookie cookie = new Cookie("JSESSIONID",id);  cookie.serMaxAge(60*60*24*365);//设置cookie的有效时间为1年  resposne.addCookie(cookie);
原创粉丝点击