session监听器

1. 实现HttpSessionListener接口

监听HttpSession的操作,主要是实现HttpSessionListener。功能是:

  • 监听HttpSession的操作。
  • 创建一个Session时,激发sessionCreateed方法;
  • 销毁一个Session时,激发sessionDestroyed方法。

2. 实现HTTPSessionAttributeListener接口

  • 监听HttpSession中的属性操作。包括:
    • 属性的增加(attributedAdded方法);
    • 属性的删除(attributedRemoved方法);
    • 属性的修改(attributedReplaced方法)。

实现方法

  1. 新建一个类,实现HttpSessionListener或者HTTPSessionAttributeListener接口。

这两个接口在http包中。

  1. 重写接口里面的方法,当这些事件被调用的时候,执行自定义的操作。
  2. web.xml中进行监听器的注册。

3. 实现HttpSessionBindingListener

该事件不需要配置xml文件,对HttpSessionBingdingListener对象所对应的session进行监听。
包含的两个函数:

  • valueUnbound方法将被以下任意条件下触发:
    • 执行session.setAttribute(uocl",非uocl对象)时;
    • 执行session.removeAttribute("uocl")时;
    • 执行session.invalidate()时;
    • 执行session超时后。

和其他监听器的区别

  • HttpSessionListener只需要设置到了web.xml中就可有监听整个应用中的所有session。
    +HttpSessionBindingListener必须实例化后放入某一个session中,才可以进行监听,因此和session是一对一的。

实现方法

  1. 新建一个类,实现HttpSessionBindingListener。
  2. 实现接口内valueBound等方法,实现自定义的操作。
  3. 在要监听的Session的Servlet的定义中,导入该监听类,并实例化一个对象。此时发布后的应用就可以实现一对一的绑定监听了。
// 在session的servlet定义中实例化一个监听器
MyListener myListener = new MyListener();  

你可能感兴趣的:(session监听器)