Session 服务器会话技术

Cookie的局限:

 1.Cookie只能存字符串类型。不能保存对象。

 2.一个cookie的容量不超过4KB。

Session概念

 1.概念

  服务器端会话技术,在一次会话多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession

 2.常用方法

  1.创建或者得到Session对象

   HttpSession getSession()

   HttpSession getSession(boolean create)

  2.设置Session对象

   void setMaxInactiveInterval(int interval):设置Session的有效时间

   void invalidate():销毁Session对象

   java.lang.String getId():得到Session编号

  3.保存会话数据到Session对象

   void setAttribute(java.lang.String name, java.lang.Object value):保存数据

   java.lang.Object getAttribute(java.lang.String name):获取数据

   void removeAttribute(java.lang.String name):清除数据

 3.原理

   Session的实现是依赖于Cookie的。
   现象:服务器能够识别不同的浏览者!!!

 浏览器1:(给s1分配一个唯一的标记:s001,把s001发送给浏览器)
  1)创建session对象,保存会话数据
  HttpSession session = request.getSession(); --保存会话数据 s1
 浏览器1:新窗口(带着s001的标记到服务器查询,s001->s1,返回s1)
  1)得到session对象的会话数据
  HttpSession session = request.getSession(false); --可以取出 s1
 新的浏览器1:(没有带s001,不能返回s1)
  1)得到session对象的会话数据
  HttpSession session = request.getSession(false); --不可以取出 s2
 浏览器2:(没有带s001,不能返回s1)
  1)得到session对象的会话数据
  HttpSession session = request.getSession(false); --不可以取出 s3

 

上一篇:分布式下session共享问题以及spring session的使用


下一篇:JAVAEE_Servlet_25_HttpSession接口的常用方法