Простой пример 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» в качестве аргумента, поэтому вы можете получить имя и значение атрибута, вызвавшего это событие.