junior
Зачем нужен JSP
JSP решает проблему создания динамических HTML-страниц без написания громоздкого Java-кода в сервлетах. В чистом сервлете генерация HTML выполняется через response.getWriter().println("<html>..."), что делает код нечитаемым и подверженным ошибкам.
Преимущества JSP
- Разделение ответственности — HTML-разметка отделена от Java-логики (в идеале через EL и JSTL)
- Горячее развёртывание — изменённую JSP-страницу можно заменить без перекомпиляции проекта и перезапуска сервера
- Удобство для верстальщиков — JSP выглядит как HTML с вставками, что проще для фронтенд-разработчиков
Ограничения JSP
- Бизнес-логика должна быть в сервлетах/сервисах, а не в JSP
- JSP не поддерживается в executable JAR (Spring Boot)
- Смешивание Java-кода и HTML приводит к трудноподдерживаемому коду
- Нет поддержки современных frontend-паттернов (SPA, компонентный подход)
В паттерне MVC JSP играет роль View (представления): контроллер-сервлет обрабатывает запрос, формирует данные модели и передаёт их в JSP для отображения.
На собеседовании: покажите, что понимаете роль JSP в MVC и почему в 2026 году Thymeleaf или React предпочтительнее. JSP — это серверный рендеринг без возможности SPA.