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.