您的位置:首页 > 其它

会话跟踪技术:Session

2018-03-18 22:24 357 查看
Session在网络中被称为会话。
javax.servlet.http.HttpSession接口表示一个会话,我们可以把一个会话内需要共享的数据保存到HttpSession对象中!(是一个容器,作用域对象)
Session对象---内置对象,不需要构建

 Session的运行机制

当一个Session开始时,Servlet容器将创建一个HttpSession对象,在HttpSession对象中可以存放客户状态的信息(例如购物车)。
Servlet容器为HttpSession分配一个唯一标识符,称为Session ID。
Servlet容器把Session ID作为Cookie保存在客户的浏览器中。
每次客户发出HTTP请求时,Servlet容器可以从HttpServletRequest对象中读取Session ID,然后根据Session ID找到相应的HttpSession对象,从而获取客户的状态信息。

 Session对象的生命周期

 Session对象的生命周期:创建 --> 使用 --> 消亡

创建

      当客户端浏览器第一次访问服务器时,服务器为这个浏览器创建一个Session对象。
      在服务器端使用request.getSession()或request.getSession(true)方法来获得Session对象。
request.getSession() --获得Session对象
session.getId() --获得session对象的ID
例:HttpSession sess=request.getSession(); //获取Session对象

使用

session.setAttribute(String name, Object obj) --将信息保存在session范围内
session.getAttribute(String name) --获取保存在session范围内的信息
session.getAttributeNames(); --返回Session对象中存储的每一个属性对象,枚举型
 session.isNew() --判断session对象是不是新的

消亡

以下3种方法可以结束session对象:
a. 关闭浏览器;
b. 请用HttpSession的invalidate()方法;
c. session超时。

session对象:------HttpSession类  会话管理类

HttpSession session=request.getSession();  --获得session
session.setAttribute("key",value);  --设置session的属性值  key:String   value:Object
同一个session 中, KEY不能重名,重名覆盖
session.getAttribute("key");     --获得session的属性值
session.getAttributeNames();        --返回Session对象中存储的每一个属性对象,
session.setMaxInactiveInterval(n);  --设置会话时长,单位秒
session.setMaxInactiveInterval(24*60*60);
session.invalidate();               --设置session无效    一般用在[安全退出]
session.getId();                    --获取session对象ID
session.isNew();                    --判断是否是新用户
session.removeAttribute("key");     --删除属性
session.getCreationTime();          --返回Session被创建的时间.最小单位为毫秒

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: