Простой пример HttpSessionAttributeListener

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