我正在寻找一种方法来监控 session 中存储的数据类型。 我知道有 session 监听器,它有在创建或销毁 session 时调用的方法,但是 session 修改呢? 当 session 中的数据被修改时,是否有任何监听器要运行,例如。何时添加新值或修改旧值?
最佳答案
您需要实现 HttpSessionAttributeListener 并将其条目添加到 web.xml 中。它具有 attrubuteAdded、attrubuteRemoved 和 attrubuteReplaced 等方法。
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.myapp.MyAttributeListener</listener-class>
</listener>
关于java - Tomcat中session修改的SessionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126411/