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中时,各类的方法只对本类感兴趣,不会去理会其它类的加入。

  • 相关阅读:
    那些离不开的 Chrome 扩展插件
    Spring Boot 实战 —— 入门
    Maven 学习笔记
    Linux lvm 分区知识笔记
    Linux 双向 SSH 免密登录
    CentOS Yum 源搭建
    Ubuntu 系统学习
    iOS 测试三方 KIF 的那些事
    Swift 网络请求数据与解析
    iOS Plist 文件的 增 删 改
  • 原文地址:https://www.cnblogs.com/TangGe520/p/8728610.html
Copyright © 2011-2022 走看看