Servlet Filter:
Фильтр, как следует из названия, представляет собой класс Java, выполняемый контейнером сервлетов для каждого входящего HTTP-запроса и для каждого HTTP-ответа. Таким образом, можно управлять входящими HTTP-запросами до того, как они достигнут ресурса, такого как страница JSP, сервлет или простая статическая страница; таким же образом можно управлять исходящим HTTP-ответом после выполнения ресурса.
Такое поведение позволяет реализовать общие функции, повторно используемые во многих различных контекстах.
Как показано на рисунке выше, фильтр работает в веб-контейнере, поэтому его определение также будет содержаться в файле web.xml.
Фильтр включает три основных метода:
- init: выполняется для инициализации фильтра с использованием элемента init-param в определении фильтра.
- doFilter: выполняется для всех входящих HTTP-запросов, удовлетворяющих "шаблону URL".
- destroy: освободить ресурсы, используемые фильтром.
Interceptor:
Перехватчики Spring похожи на фильтры сервлетов, но они действуют в контексте Spring, поэтому они очень эффективны для управления HTTP-запросами и ответами, но они могут реализовать более сложное поведение, поскольку могут получить доступ ко всему контексту Spring.
Перехватчик Spring выполняется в контексте SpringMVC, поэтому они были определены в файле rest-servlet.xml:
Перехватчик включает три основных метода:
- preHandle: выполняется перед выполнением целевого ресурса.
- afterCompletion: выполняется после выполнения целевого ресурса (после рендеринга представления).
- postHandle: перехватить выполнение обработчика.
person
Noman Akhtar
schedule
23.03.2020