0

I am looking for a way to monitor what kind of data is stored in sessions. I know there is session listener which has methods called when session is created or destroyed but what about session modification? Is there any listener to run when data in sessions in modified, ex. when adding new value or modifying old one?

4

2 に答える 2

1

HttpSessionAttributeListener を実装し、そのエントリを web.xml に追加する必要があります。これには、attributeAdded、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>

于 2013-08-08T12:56:56.877 に答える