这是一个简单的“ HttpSessionAttributeListener”示例,用于在Web应用程序中跟踪会话的属性。 如果要监视会话的属性add,update和remove行为,请考虑使用此侦听器。
Java源码
package com.mkyong;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class MyAttributeListener implements HttpSessionAttributeListener {
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute added : " + attributeName + " : " + attributeValue);
}
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute removed : " + attributeName + " : " + attributeValue);
}
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
String attributeName = event.getName();
Object attributeValue = event.getValue();
System.out.println("Attribute replaced : " + attributeName + " : " + attributeValue);
}
}
web.xml
<web-app ...>
<listener>
<listener-class>com.mkyong.MyAttributeListener</listener-class>
</listener>
</web-app>
它是如何工作的?
–如果添加了新会话的属性,则将执行侦听器的attributeAdded()。
–如果更新了新会话的属性,则将执行侦听器的attributeReplaced()。
–如果删除了新会话的属性,则将执行侦听器的attributeRemoved()。
HttpSession session = request.getSession();
session.setAttribute("url", "mkyong.com"); //attributeAdded() is executed
session.setAttribute("url", "mkyong2.com"); //attributeReplaced() is executed
session.removeAttribute("url"); //attributeRemoved() is executed
所有方法都接受“ HttpSessionBindingEvent”作为参数,因此您可以获得触发此事件的属性的名称和值。
标签: servlet
翻译自: https://mkyong.com/servlet/a-simple-httpsessionattributelistener-example/