JSP

JSP (JavaServer Pages) — старый способ генерировать HTML-страницы прямо на сервере, смешивая HTML-разметку с Java-кодом в одном файле.

<html>
<body>
    <h1>Привет, <%= request.getParameter("name") %>!</h1>
    <% if (user.isAdmin()) { %>
        <p>У вас права администратора</p>
    <% } %>
</body>
</html>

<%= ... %> — вставить значение в HTML, <% ... %> — выполнить произвольный Java-код прямо внутри страницы.

Копнуть глубже

Под капотом JSP-файл компилируется в обычный сервлет при первом обращении — Tomcat генерирует Java-класс из .jsp-файла, компилирует его и дальше работает с ним как с обычным сервлетом (см. тему «Сервлеты»).

Почему JSP считается устаревшим подходом сегодня:

  • Смешение логики и разметки — Java-код прямо в HTML усложняет чтение и тестирование, нарушает разделение ответственности (см. тему «S — единственная ответственность»);
  • Серверная отрисовка целых страниц уступила место подходу, где сервер отдаёт только данные (JSON через REST API), а отрисовкой занимается отдельное фронтенд-приложение (React, Vue, Angular) — это и есть переход, который произошёл в Java-вебе за последнее десятилетие;
  • Spring сегодня в основном используют как backend для API, а не для генерации HTML-страниц напрямую.

Где JSP всё ещё встречается. В legacy-системах, написанных 10-15 лет назад и до сих пор поддерживаемых — знание JSP полезно именно для работы с таким унаследованным кодом, а не для новых проектов.

🎤 Закрыл тему, если можешь объяснить:
• что такое JSP и как смешивается Java-код с HTML;
• почему JSP считается устаревшим и где он ещё встречается (если дошёл до 2-го слоя).