[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-chto-vy-znaete-o-servletnykh-filtrakh":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},523,"chto-vy-znaete-o-servletnykh-filtrakh",13,"servlety","Сервлеты","🖧","Что вы знаете о сервлетных фильтрах","Сервлетный фильтр — это Java-класс, реализующий интерфейс `javax.servlet.Filter`, который перехватывает HTTP-запросы и ответы для выполнения кросс-cutting логики: аутентификации, логирования, компрессии, CORS, модификации заголовков. Фильтры образуют цепочку (FilterChain), через которую последовательно проходит каждый запрос.\n\n> **Аналогия из жизни:** фильтры — это контрольно-пропускные пункты на пути посетителя в здание. Первый проверяет паспорт (аутентификация), второй выдаёт пропуск (авторизация), третий записывает время входа (логирование). Посетитель проходит все КПП по порядку.\n\n### Методы интерфейса Filter\n\n| Метод | Назначение |\n|-------|-----------|\n| `init(FilterConfig config)` | Инициализация фильтра (вызывается один раз) |\n| `doFilter(request, response, chain)` | Основная логика фильтрации. Вызов `chain.doFilter()` передаёт управление следующему фильтру или сервлету |\n| `destroy()` | Освобождение ресурсов при выгрузке фильтра |\n\n### Регистрация фильтра\n\n\u003Cdetails>\n\u003Csummary>Через web.xml\u003C\u002Fsummary>\n\n```xml\n\u003Cfilter>\n    \u003Cfilter-name>LoggingFilter\u003C\u002Ffilter-name>\n    \u003Cfilter-class>xyz.company.LoggingFilter\u003C\u002Ffilter-class>\n    \u003Cinit-param>\n        \u003Cparam-name>active\u003C\u002Fparam-name>\n        \u003Cparam-value>true\u003C\u002Fparam-value>\n    \u003C\u002Finit-param>\n\u003C\u002Ffilter>\n\u003Cfilter-mapping>\n    \u003Cfilter-name>LoggingFilter\u003C\u002Ffilter-name>\n    \u003Curl-pattern>\u002F*\u003C\u002Furl-pattern>\n\u003C\u002Ffilter-mapping>\n```\n\n\u003C\u002Fdetails>\n\nЧерез аннотацию: `@WebFilter(\"\u002F*\")`.\n\nПорядок выполнения фильтров определяется порядком их объявления в `web.xml`. Фильтры, определённые через `\u003Curl-pattern>`, выполняются раньше фильтров, определённых через `\u003Cservlet-name>`.\n\nВ Spring Security вся модель безопасности построена на цепочке фильтров (`SecurityFilterChain`). Понимание `FilterChain` критически важно для отладки проблем аутентификации и авторизации в Spring-приложениях.\n\n> **На собеседовании:** обязательно упомяните, что Spring Security — это цепочка сервлетных фильтров. Это показывает, что вы понимаете связь между Servlet API и Spring.","","middle",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Что вы знаете о сервлетных фильтрах — Gymterview","Сервлетный фильтр — это Java-класс, реализующий интерфейс `javax.servlet.Filter`, который перехватывает HTTP-запросы и ответы для выполнения кросс-cutting логик","Сервлетный фильтр — это Java-класс, реализующий интерфейс `javax.servlet.Filter`, который перехватывает HTTP-запросы и о",[15,13],"Сервлетный фильтр — это Java-класс, реализующий интерфейс `javax.servlet.Filter`, который перехватывает HTTP-запросы и ответы для выполнения кросс-cutting логики: аутентификации, логирования, компрессии, CORS, модификации заголовков. Фильтры образуют цепочку (FilterChain), через которую последовател",true]