zoukankan      html  css  js  c++  java
  • HttpSession的关键属性和方法

    1.当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号;
    2.这个用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于哪个session。
    这种机制不使用IP作为标识,是因为很多机器是通过代理服务器方式上网,没法区分每一台机器。
    对于session标识号(sessionID),有两种方式实现:cookies和URL重写。

    HttpSession的使用
    我们来看看在API中对session是如何定义和操作的。
    当需要为用户端建立一个session时,servlet容器就创建了一个HttpSession对象。其中存储了和本session相关的信息。所以,在一个servlet中有多少个不同用户连接,就会有多少个HttpSession对象。
    使用的机理是:
    1.从请求中提取HttpSession对象;
    2.增加或删除HttpSession中的属性;
    3.根据需要关闭HttpSession或使其失效。

    在请求中有两个重载的方法用来获取HttpSession对象。
    HttpSession getSession(boolean create)/getSession();作用是提取HttpSession对象,如果没有自动创建。

    获取到HttpSession对象后,我们就需要使用HttpSession的某些方法去设置和更改某些参数了。如:
    void setAttribute(String name, Object value);
    Object getAttribute(String name);
    void removeAttribute(String name);

    在javax.servlet.http包里一共定义了四个session监听器接口和与之关联的两个session事件。分别是:
    HttpSessionAttributeListener and HttpSessionBindingEvent;
    HttpSessionBindingListener and HttpSessionBindingEvent;
    HttpSessionListener and HttpSessionEvent;
    HttpSessionActivationListener and HttpSessionEvent.


    HttpSessionAttributeListener
    当session中的属性被添加,更改,删除时得到通知。这个接口上节讲过,主要看其它三个。

    HttpSessionBindingListener
    当一个实现了HttpSessionBindingListener的类被加入到HttpSession中(或从中移出)时,会产生HttpBindingEvent事件,而这些事件会被它本身接收到。
    本接口定义了两个方法:
    void valueBound(HttpSessionBindingEvent e);
    void valueUnbound(HttpSessionBindingEvent e);
    当多个实现了HttpSessionBindingListener的类被加入到HttpSession中时,各类的方法只对本类感兴趣,不会去理会其它类的加入。

  • 相关阅读:
    ASP.NET 学习日志
    igoogle 小工具
    nios ann 语音识别
    ASP 3.5 读书笔记
    C# delegate and event 续
    paper
    网站白痴的 ASP.NET website 学习日志
    盒子模型
    将对象序列化成json
    不错的Oracle 存储过程例子
  • 原文地址:https://www.cnblogs.com/TangGe520/p/8728610.html
Copyright © 2011-2022 走看看