Ein einfaches HttpSessionAttributeListener-Beispiel

Ein einfaches Beispiel für HttpSessionAttributeListener

Im Folgenden finden Sie ein einfaches Beispiel für "HttpSessionAttributeListener", mit dem Sie das Sitzungsattribut in einer Webanwendung nachverfolgen können. Wenn Sie das Hinzufügen, Aktualisieren und Entfernen von Sitzungsattributen weiterhin überwachen möchten, sollten Sie diesen Listener in Betracht ziehen.

Java Source

package com.example;

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

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


        
        com.example.MyAttributeListener
    

Wie es funktioniert?

- Wenn das Attribut einer neuen Sitzung hinzugefügt wird, wird das AttributAdded () des Listeners ausgeführt.
- Wenn das Attribut einer neuen Sitzung aktualisiert wird, wird das AttributReplaced () des Listeners ausgeführt.
- Wenn ein neues Attribut Wenn das Attribut der Sitzung entfernt wird, wird das AttributRemoved () des Listeners ausgeführt.

  HttpSession session = request.getSession();
  session.setAttribute("url", "example.com"); //attributeAdded() is executed
  session.setAttribute("url", "example2.com"); //attributeReplaced() is executed
  session.removeAttribute("url"); //attributeRemoved() is executed

Alle Methoden akzeptieren ein "HttpSessionBindingEvent" als Argument, sodass Sie den Namen und den Wert des Attributs abrufen können, das dieses Ereignis ausgelöst hat.