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