[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-kakie-klassy-obertki-dlya-servletov-vy-znaete":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},541,"kakie-klassy-obertki-dlya-servletov-vy-znaete",13,"servlety","Сервлеты","🖧","Какие классы-обертки для сервлетов вы знаете","Servlet API предоставляет четыре класса-обёртки (Wrapper\u002FDecorator pattern), которые позволяют модифицировать поведение запроса или ответа без изменения оригинальных объектов:\n\n| Класс-обёртка | Оборачивает |\n|--------------|-------------|\n| `ServletRequestWrapper` | `ServletRequest` |\n| `HttpServletRequestWrapper` | `HttpServletRequest` |\n| `ServletResponseWrapper` | `ServletResponse` |\n| `HttpServletResponseWrapper` | `HttpServletResponse` |\n\nОбёртки чаще всего используются в фильтрах для модификации запроса или ответа перед передачей следующему звену в цепочке. Например, `HttpServletRequestWrapper` можно использовать для добавления заголовков, модификации параметров или кэширования тела запроса для повторного чтения.\n\nВ Spring Security активно используются обёртки для добавления информации об аутентифицированном пользователе в запрос. `SecurityContextHolderAwareRequestWrapper` оборачивает запрос, добавляя методы `getUserPrincipal()` и `isUserInRole()`.\n\n> **На собеседовании:** упомяните паттерн Decorator — это показывает понимание Design Patterns. Практический пример: обёртка для кэширования `InputStream` запроса, чтобы тело можно было прочитать несколько раз (по умолчанию поток читается один раз).","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Какие классы-обертки для сервлетов вы знаете — Gymterview","Servlet API предоставляет четыре класса-обёртки (Wrapper\u002FDecorator pattern), которые позволяют модифицировать поведение запроса или ответа без изменения оригина","Servlet API предоставляет четыре класса-обёртки (Wrapper\u002FDecorator pattern), которые позволяют модифицировать поведение ",[15,13],"Servlet API предоставляет четыре класса-обёртки (Wrapper\u002FDecorator pattern), которые позволяют модифицировать поведение запроса или ответа без изменения оригинальных объектов:",true]