junior
Взаимодействие JSP - сервлет - JSP
Архитектура «JSP - сервлет - JSP» реализует паттерн MVC (Model-View-Controller), где каждый компонент имеет чётко определённую роль.
| Компонент MVC | Реализация | Ответственность |
|---|---|---|
| Model | Java-классы (POJO, сервисы) | Бизнес-логика и данные |
| View | JSP-страницы | Отображение данных пользователю |
| Controller | Сервлеты | Обработка запросов, координация Model и View |
Типичный поток
- Клиент отправляет запрос на сервлет-контроллер
- Сервлет обрабатывает запрос, вызывает бизнес-логику (Model)
- Сервлет помещает результат в атрибуты запроса:
request.setAttribute("data", result) - Сервлет перенаправляет на JSP:
request.getRequestDispatcher("/WEB-INF/view.jsp").forward(req, resp) - JSP отображает данные из атрибутов:
${data}
Этот паттерн является основой Spring MVC, где роль контроллера выполняют классы с @Controller, а роль View — шаблоны Thymeleaf или (реже) JSP.
На собеседовании: важно связать с Spring MVC.
DispatcherServlet— это единый контроллер,@Controller— обработчик конкретного URL, а ViewResolver определяет, какой шаблон использовать для отображения.