HttpSessionBindingListener

HttpSessionBindingListener

    1.BindingListener有2个方法,valueBound(HttpSessinBindingEvent)和valueUnbount(HttpSessionBindingEvent)。实现BindingListener接口的对象被绑 定到session时触发valueBound事件,解除绑定时触发valueUnbound事件。举例来说:

[c-sharp] view plain copy
  1. public class UserObject implements HttpSessionBindingListener{      
  2.         public void valueBound(HttpSessionBindingEvent event){          
  3.             System.out.println("触发绑定事件!");      
  4.             }      
  5.         public void valueUnbound(HttpSessionBindingEvent event){          
  6.             System.out.println("解除和session的绑定");      
  7.               
  8.         }  

 

UserObject user = new UserObject();

触发valueBound事件有:

1.当把该监听器保存到session中,session.setAttribute("user",user)

触发valueUnbound事件有:

1.执行session.setAttribute("onlineUserListener", "其他对象");或session.removeAttribute("onlineUserListener");将listener从session中删除时。

注意:只有当该监听器(UserObject)保存到session中或从session移除时才会触发事件,其他没有实现该listener对象保存到session时不会触发该事件。

    2.AttributeListener接口有3个方法,attributeAdded(HttpSessionBindingEvent),attributeRemoved(HttpSessionBindingEvent),

attributeReplaced(HttpSeesionEvent)。当在session中添加、移除或更改属性值时会触发相应的事件。

总结:

1.只有实现了HttpSessionBindingListener的类,在和session绑定、解除绑定时触发其事件。

2.要获取添加在session的值,用事件源的session去获取,而不要用事件源的getValue(), 会获取null。

3.HttpSessionBindingListener中如果session覆盖属性,不会触发valueBound方法。

4.若要获取销毁的session的属性应在HttpSessionListener接口中的sessionDestroyed方法中实现。

posted @ 2019-01-14 16:02  Whyat  阅读(451)  评论(0编辑  收藏