Какова цель класса слушателя в большом проекте - PullRequest
8 голосов
/ 22 сентября 2011

Я не совсем понимаю, что делают классы слушателей. Например, в этом проекте есть класс слушателя, на который ссылаются так:

<listener>
    <listener-class>com.sun.javaee.blueprints.petstore.model.CatalogFacade</listener-class> 
</listener>

Как следует из названия, просто прислушиваться к действиям?

Ответы [ 4 ]

6 голосов
/ 22 сентября 2011

Классы прослушивателей получают уведомления о выбранных событиях, таких как запуск приложения или создание нового сеанса.

Классы прослушивателей:

Это простые классы Java, которые реализуют один издва следующих интерфейса:

  • javax.servlet.ServletContextListener
  • javax.servlet.http.HttpSessionListener

Если вы хотите, чтобы ваш класс прослушивал события запуска и завершения работы приложения, то реализуйтеServletContextListener интерфейс.Если вы хотите, чтобы ваш класс прослушивал события создания и аннулирования сеанса, то реализуйте интерфейс HttpSessionListener.

Источник

4 голосов
/ 22 сентября 2011

Я бы предложил пересмотреть главу «События жизненного цикла приложения» из спецификации сервлета.

В зависимости от используемой версии, здесь приведены соответствующие главы и ссылки на документы:

Прослушиватели используются для уведомления о событиях в веб-приложениях, включая изменения состояния объектов ServletContext, HttpSession и ServletRequest.Благодаря реализации предопределенных интерфейсов прослушивателя (javax.servlet.ServletContextListener, javax.servlet.http.HttpSessionListener, javax.servlet.ServletRequestListener и т. Д.) Контейнер сервлетов будет уведомлять вас о некоторых событиях, которыепроисходит в вашем приложении.У них много потенциальных применений, таких как выполнение одноразовых задач по настройке и завершению работы приложений, перехват запросов на ведение журнала, отслеживание использования сеанса HTTP и т. Д.

2 голосов
/ 22 сентября 2011

В более общем случае слушатель - это сторона наблюдателя / подписчика в схеме наблюдателя .Сторона сервера / фреймворка предоставляет вам средства для уведомления о каком-либо событии и, следовательно, дает вам возможность выполнить ваши действия.

И это не обязательно должен быть «большой проект».Слушатели пригодятся даже в небольших:).

2 голосов
/ 22 сентября 2011

Да, именно они слушают какое-то действие, например, если его contextloaderlistener, то он будет прослушивать событие загрузки контекста, и есть много вещей, которые мы можем сделать на таком событии, поэтому они сделаны для этого

...