Session 简单的使用

Seesion介绍

  1. Session是一个接口(HttpSession)
  2. Session就是会话。它是用来维护客户端和服务器之间关联的一种技术
  3. 每个客户端都会有一个Session会话
    • 每个用户申请都会得到一个不一样的session范围
    • 服务器通过session的ID来判断用户的Session范围
  4. Session会话中,我们经常用来保存用户登录后的信息
  5. session的默认存活时间为30分,可以通过配置xml文件修改session的存活时间
    • request请求申请的数据调用结束就自动销毁,点击一次等于一次请求
    • session存活时间长,不适合存储大量数据,能不使用session尽量不使用,否则堆栈容易溢出,一般放在请求范围request内
  6. 在客户端完全关闭后,session自动销毁

如何创建和获取Session

  1. 创建Session对象

    //获取session范围,如果没有则创建一个session范围
    HttpSession session = request.getSession();
    
  2. 设置Session值

    //设置session值
    session.setAttribute("key1",value1);
    session.setAttribute("key2",value2);
    
  3. 关于Session本身的信息

    // session是否存在
    System.out.println("add session is new? " + session.isNew());
    // session的ID
    System.out.println("add session id:" + session.getId());
    // session的创建时间
    System.out.println("add session createtime:" + new Date(session.getCreationTime()).toLocaleString());
    
  4. 获取Session信息

    //从session域中通过key获取对应value,类型为Object,可能需要根据需求做类型强转
    session.getAttribute("key1");
    

修改Session默认存活时间

  • 在xml文件中配置session的默认存活时间
  • 以下代码放在代码块中根据需求使用
<session-config>
    <!-- 存活分钟,这里的 1 表示session存活1分钟 -->
    <session-timeout>1</session-timeout>
</session-config>