会话跟踪技术:Session

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. 请用HttpSessioninvalidate()方法;

c. session超时。

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

HttpSession session=request.getSession();  --获得session

session.setAttribute("key",value);  --设置session的属性值  keyString   valueObject

同一个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被创建的时间.最小单位为毫秒










猜你喜欢

转载自blog.csdn.net/qq_40369944/article/details/79605468