logo search
Ответы к экзамену по ПИИ

Слушатели (JavaEventListener). Назначение. Принципы применения.

Слушатель событий– это класс Java, реализующий один или более интерфейсов слушателей событий интерфейсов.

Перечень интерфейсов слушателей и их назначение приведен в табл. 5.1

Идентификатор интерфейса

Обрабатываемые события

ServletContextListener

Создание и разрушение контекста

ServletContextAttributeListener

Добавление, удаление, модификация атрибута

контекста

HttpSessionListener

Создание и уничтожение сеанса

HttpSessionAttributeListener

Добавление, удаление, модификация атрибута сессии

Как и фильтры, слушатели создаются и инициализируются web-контейнером при загрузке web-сервера.

Слушатель может реализовывать интерфейс HttpSessionListenerи обрабатывать события двух типов: создание ( методsessionCreated ) и уничтожение сеанса (sessionDestroyed).

HttpSessionAttributeListener обрабатывает события добавления (attributeAdded), удаления (attributeRemoved), модификации(attributeReplaced) атрибута сессии. Слушатель может реализовывать интерфейсServletContextListenerи обрабатывать события двух типов: создание (методcontextCreated) и уничтожение контектса (contextDestroyed).

ServletContextAttributeListener обрабатывает события добавления (attributeAdded), удаления (attributeRemoved), модификации(attributeReplaced) атрибута сессии.

package lst;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class Lst1 implements HttpSessionListener {

public void sessionCreated(HttpSessionEvent se) {

HttpSession ss = se.getSession();

System.out.println("Lst1:sessionCreated:Id="

+ ss.getMaxInactiveInterval());

ss.setMaxInactiveInterval(10);

System.out.println("Lst1:sessionCreated:Id=" + ss.getId());

}

public void sessionDestroyed(HttpSessionEvent se) {

System.out.println("Lst1:sessionDestroyed:Id="

}

}

<listener>

<listener-class>lst.Lst1</listener-class>

</listener>

<listener>

<listener-class>lst.Lst2</listener-class>

</listener>