2012-06-29 4 views

Antwort

7

Lassen Sie die Klasse des Objekts implementieren HttpSessionBindingListener.

public class YourObject implements HttpSessionBindingListener { 

    @Override 
    public void valueBound(HttpSessionBindingEvent event) { 
     // The current instance has been bound to the HttpSession. 
    } 

    @Override 
    public void valueUnbound(HttpSessionBindingEvent event) { 
     // The current instance has been unbound from the HttpSession. 
    } 

} 

Wenn Sie keine Kontrolle über den Klassencode des Objekts haben und daher kann man nicht seinen Code ändern, dann ist eine Alternative HttpSessionAttributeListener zu implementieren.

@WebListener 
public class YourObjectSessionAttributeListener implements HttpSessionAttributeListener { 

    @Override 
    public void attributeAdded(HttpSessionBindingEvent event) { 
     if (event.getValue() instanceof YourObject) { 
      // An instance of YourObject has been bound to the session. 
     } 
    } 

    @Override 
    public void attributeRemoved(HttpSessionBindingEvent event) { 
     if (event.getValue() instanceof YourObject) { 
      // An instance of YourObject has been unbound from the session. 
     } 
    } 

    @Override 
    public void attributeReplaced(HttpSessionBindingEvent event) { 
     if (event.getValue() instanceof YourObject) { 
      // An instance of YourObject has been replaced in the session. 
     } 
    } 

} 

Hinweis: Wenn Sie noch auf Servlet 2.5 oder älter sind, ersetzen @WebListener durch eine <listener> Eintrag Konfiguration in web.xml.

+0

danke für die Hilfe.Das ist, was ich gesucht habe :) – ramoh

Verwandte Themen