Фильтры сервлетов обрабатывают запросы и ответы между контейнером сервлетов и самим сервлетом. Они могут изменять запросы/ответы, прерывать цепочку обработки или добавлять логику до, после и вокруг выполнения сервлета. Используются для аутентификации, логирования, шифрования/дешифрования, сжатия данных.
Слушатели (Listeners) реагируют на события жизненного цикла различных объектов веб-приложения: контекста сервлета, сессии HTTP, запроса сервлета. Каждый тип слушателя предназначен для конкретного события. Используются для инициализации ресурсов, очистки, мониторинга сессий, обработки ошибок.
Применение:
Фильтры: Когда нужно воздействовать на поток запросов и ответов, модифицировать их или выполнить действия до/после выполнения сервлета для группы сервлетов.
java
Слушатели: Когда нужно выполнить действия в ответ на изменение состояния веб-приложения или его компонентов (создание/удаление сессии, инициализация/завершение контекста).
java
Ключевое различие: Фильтры работают вокруг выполнения сервлетов, обрабатывая потоки данных. Слушатели работают в ответ на изменения состояний объектов веб-приложения.