Простой пример HttpSessionAttributeListener
Вот простой пример «HttpSessionAttributeListener» для отслеживания атрибута сеанса в веб-приложении. Если вы хотите отслеживать поведение добавления, обновления и удаления атрибута сеанса, то рассмотрите этот слушатель.
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
Как это работает?
- Если добавлен новый атрибут сеанса, будет выполняться attributeAdded () слушателя.
- Если атрибут нового сеанса обновлен, будет выполнен attributeReplaced () слушателя.
- Если новый атрибут сеанса удаляется, будет выполнен attributeRemoved () слушателя.
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
Все методы принимают «HttpSessionBindingEvent» в качестве аргумента, поэтому вы можете получить имя и значение атрибута, вызвавшего это событие.