[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-kakie-osnovnye-osobennosti-poyavilis-v-spetsifikatsii-servlet-3":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},563,"kakie-osnovnye-osobennosti-poyavilis-v-spetsifikatsii-servlet-3",13,"servlety","Сервлеты","🖧","Какие основные особенности появились в спецификации Servlet 3","Servlet 3.0 (JSR 315, 2009) — значительное обновление спецификации, которое устранило необходимость в `web.xml` для типовых сценариев и добавило поддержку асинхронной обработки.\n\n### Ключевые нововведения\n\n| Особенность | Описание |\n|------------|----------|\n| Аннотации | `@WebServlet`, `@WebFilter`, `@WebListener`, `@WebInitParam` — конфигурация без `web.xml` |\n| Web Fragments | Модульность: каждый JAR может содержать `META-INF\u002Fweb-fragment.xml` со своими сервлетами и фильтрами |\n| Динамическая регистрация | `ServletContext.addServlet()`, `addFilter()`, `addListener()` — программное добавление компонентов |\n| Асинхронная обработка | `AsyncContext` позволяет передать обработку в другой поток, освободив поток контейнера |\n\n### Асинхронная обработка (пример)\n\n```java\n@WebServlet(urlPatterns = \"\u002Fasync\", asyncSupported = true)\npublic class AsyncServlet extends HttpServlet {\n    @Override\n    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {\n        AsyncContext ctx = req.startAsync();\n        ctx.start(() -> {\n            \u002F\u002F долгая операция в отдельном потоке\n            ctx.complete();\n        });\n    }\n}\n```\n\nАсинхронность критически важна для высоконагруженных приложений: вместо блокировки потока контейнера на время I\u002FO-операции, поток освобождается для обработки других запросов. В Spring MVC аналог — `DeferredResult` и `CompletableFuture`.\n\n> **На собеседовании:** важно упомянуть все четыре нововведения. Частая ошибка — назвать только аннотации и забыть про асинхронность, которая является архитектурно значимым изменением.","","middle",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Какие основные особенности появились в спецификации Servlet  — Gymterview","Servlet 3.0 (JSR 315, 2009) — значительное обновление спецификации, которое устранило необходимость в `web.xml` для типовых сценариев и добавило поддержку асинх","Servlet 3.0 (JSR 315, 2009) — значительное обновление спецификации, которое устранило необходимость в `web.xml` для типо",[15,13],"Servlet 3.0 (JSR 315, 2009) — значительное обновление спецификации, которое устранило необходимость в `web.xml` для типовых сценариев и добавило поддержку асинхронной обработки.",true]