java - Tomcat中session修改的SessionListener

标签 java tomcat

我正在寻找一种方法来监控 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/

相关文章:

jsp - HTTP 状态 500 - java.lang.ClassNotFoundException : org. apache.jsp.index_jsp 由于 taglib

java - Grails 2.3.0 产品 war 错误

android 基本认证 okhttpclient

java - 需要围绕纬度和经度位置的半径

java - 我怎样才能让firebase短链接脱离任务

java - java项目转maven后找不到主类

java - 配置上下文特定的 Tomcat 安全领域

JSP 不能 'see' 本地资源文件(css,img,js)

java - 如何禁用 JTable 中的特定列

java - 如何在字符串中输出 double 到两位小数?