[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-vzaimodeystvie-jsp-servlet-jsp":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},576,"vzaimodeystvie-jsp-servlet-jsp",13,"servlety","Сервлеты","🖧","Взаимодействие JSP - сервлет - JSP","Архитектура «JSP - сервлет - JSP» реализует паттерн MVC (Model-View-Controller), где каждый компонент имеет чётко определённую роль.\n\n| Компонент MVC | Реализация | Ответственность |\n|--------------|-----------|----------------|\n| Model | Java-классы (POJO, сервисы) | Бизнес-логика и данные |\n| View | JSP-страницы | Отображение данных пользователю |\n| Controller | Сервлеты | Обработка запросов, координация Model и View |\n\n### Типичный поток\n\n1. Клиент отправляет запрос на сервлет-контроллер\n2. Сервлет обрабатывает запрос, вызывает бизнес-логику (Model)\n3. Сервлет помещает результат в атрибуты запроса: `request.setAttribute(\"data\", result)`\n4. Сервлет перенаправляет на JSP: `request.getRequestDispatcher(\"\u002FWEB-INF\u002Fview.jsp\").forward(req, resp)`\n5. JSP отображает данные из атрибутов: `${data}`\n\nЭтот паттерн является основой Spring MVC, где роль контроллера выполняют классы с `@Controller`, а роль View — шаблоны Thymeleaf или (реже) JSP.\n\n> **На собеседовании:** важно связать с Spring MVC. `DispatcherServlet` — это единый контроллер, `@Controller` — обработчик конкретного URL, а ViewResolver определяет, какой шаблон использовать для отображения.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":20,"featuredSnippetReady":23},"Взаимодействие JSP - сервлет - JSP — Gymterview","Архитектура «JSP - сервлет - JSP» реализует паттерн MVC (Model-View-Controller), где каждый компонент имеет чётко определённую роль.","Архитектура «JSP - сервлет - JSP» реализует паттерн MVC (Model-View-Controller), где каждый компонент имеет чётко опреде",[15,13],true]