Un exemple simple HttpSessionAttributeListener

Un exemple simple de HttpSessionAttributeListener

Voici un exemple simple «HttpSessionAttributeListener» pour garder la trace de l'attribut de session dans une application Web. Si vous souhaitez continuer à surveiller le comportement d'ajout, de mise à jour et de suppression d'attributs de votre session, pensez à cet écouteur.

Source Java

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
    

Comment ça marche?

- Si un nouvel attribut de session est ajouté, l'attribut de l'auditeurAdded () sera exécuté.
- Si l'attribut d'une nouvelle session est mis à jour, l'attribut de l'auditeurReplaced () sera exécuté.
- Si un nouveau l'attribut de session est supprimé, l'attribut de l'auditeurRemoved () sera exécuté.

  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

Toutes les méthodes acceptent un argument «HttpSessionBindingEvent» comme argument, afin que vous puissiez obtenir le nom et la valeur de l'attribut qui a déclenché cet événement.