Java如何在更改会话属性时收到通知?
实现HttpSessionAttributeListener将会使servlet容器通知您有关会话属性的更改。通知采用HttpSessionBindingEvent对象的形式。该getName()对象上的on告诉属性的名称,而getValue()方法告诉该属性被添加,替换或删除的值。
package org.nhooo.example.servlet; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; public class SessionAttributeListener implements HttpSessionAttributeListener { public void attributeAdded(HttpSessionBindingEvent event) { //将属性添加到会话时,将调用此方法。 //下面的行显示会话属性名称及其值。 System.out.println("Session attribute added: [" + event.getName() + "] = [" + event.getValue() + "]"); } public void attributeRemoved(HttpSessionBindingEvent event) { //从会话中删除属性时,将调用此方法。 System.out.println("Session attribute removed: [" + event.getName() + "] = [" + event.getValue() + "]"); } public void attributeReplaced(HttpSessionBindingEvent event) { //在会话中替换礼节时调用此方法。 System.out.println("Session attribute replaced: [" + event.getName() + "] = [" + event.getValue() + "]"); } }
侦听器准备就绪后,请不要忘记在Web应用程序部署描述符web.xml文件中对其进行配置。