A Filter
перехватывает HTTP-запросы, соответствующие его шаблону URL, и позволяет вам изменять их.См. Также javadoc :
Фильтр - это объект, который выполняет задачи фильтрации либо по запросу к ресурсу (сервлету, либо по статическому содержимому), либо по ответу отресурс или оба.
Фильтры выполняют фильтрацию по методу doFilter
.Каждый Filter
имеет доступ к FilterConfig
объекту, из которого он может получить свои параметры инициализации, и ссылку на ServletContext
, которую он может использовать, например, для загрузки ресурсов, необходимых для фильтрации задач.
Фильтры настраиваются в дескрипторе развертывания веб-приложения.
Для этого проекта определены следующие примеры:
- Фильтры проверки подлинности
- Фильтры ведения журнала и аудита
- Фильтры преобразования изображений
- Фильтры сжатия данных
- Фильтры шифрования
- Фильтры токенизации
- Фильтры, запускающие события доступа к ресурсам
- Цепной фильтр MIME-типа
A ServletContextListener
перехватывает при запуске и завершении работы веб-приложения и позволяет выполнитьнекоторый код при запуске и / или выключении.См. Также его javadoc :
Интерфейс для получения событий уведомлений об ServletContext
изменениях жизненного цикла.
Для получения этих событий уведомлений класс реализации долженбыть либо объявленным в дескрипторе развертывания веб-приложения, помеченном WebListener
, либо зарегистрированным с помощью одного из addListener
методов, определенных в ServletContext
.
Реализации этого интерфейса вызываются по их contextInitialized(javax.servlet.ServletContextEvent)
метод в том порядке, в котором они были объявлены, и метод их contextDestroyed(javax.servlet.ServletContextEvent)
в обратном порядке.
Когда использовать тот или иной, теперь должно быть очевидно.Используйте Filter
, если вы хотите перехватывать запросы HTTP, обрабатывая определенный шаблон URL, потому что вы хотите проверить / изменить запрос / ответ HTTP.Используйте ServletContextListener
, если вы хотите перехватывать при запуске и / или завершении работы веб-приложения.
Пожалуйста, знайте, где найти Javadocs и как их интерпретировать.Они содержат все ответы на такие тривиальные вопросы.