You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.6 KiB
Java

Servlet session event notifications
package com.ack.web.servlet;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
/**
* Get application events for when a servlet session
* is activated and destroyed. Also, get events when
* attributes are added, removed and replaced within
* the servlet session.
<web-app>
<listener>
<listener-class>com.ack.web.servlet.ServletSessionEventNotifications</listener-class>
</listener>
</web-app>
*/
public class ServletSessionEventNotifications
implements HttpSessionAttributeListener, HttpSessionActivationListener {
public void sessionDidActivate( HttpSessionEvent evt ) {
System.out.println( "session activated: " + evt );
}
public void sessionWillPassivate( HttpSessionEvent evt ) {
System.out.println( "session passivated: " + evt );
}
public void attributeAdded( HttpSessionBindingEvent evt ) {
System.out.println( "attribute added to session: " + dump( evt ) );
}
public void attributeRemoved( HttpSessionBindingEvent evt ) {
System.out.println( "attribute removed from session: " + dump( evt ) );
}
public void attributeReplaced( HttpSessionBindingEvent evt ) {
System.out.println( "attribute replaced in session: " + dump( evt ) );
}
private String dump( HttpSessionBindingEvent evt ) {
return "\n attribute name: " + evt.getName() + "\n session: " +
evt.getSession() + "\n attribute value: " + evt.getValue();
}
}