1. Обзор
В этом руководстве мы узнаем об OncePerRequestFilter
, специальном типе фильтра в Spring. Мы увидим, какую проблему он решает, и поймем, как его использовать на быстром примере.
2. Что такое OncePerRequestFilter
?
Давайте сначала разберемся, как работают фильтры. Фильтр можно вызывать либо до, либо после выполнения сервлета .
Когда запрос отправляется сервлету, RequestDispatcher
может перенаправить его другому сервлету. Есть вероятность, что другой сервлет также имеет такой же фильтр. В таких сценариях один и тот же фильтр вызывается несколько раз.
Но мы можем захотеть, чтобы конкретный фильтр вызывался только один раз для каждого запроса. Обычный вариант использования — при работе с Spring Security. Когда запрос проходит через цепочку фильтров, мы можем захотеть, чтобы некоторые действия аутентификации выполнялись только один раз для запроса.