Учебники

JSP — Архитектура

Веб-серверу нужен механизм JSP, т. Е. Контейнер для обработки страниц JSP. Контейнер JSP отвечает за перехват запросов для страниц JSP. В этом руководстве используется Apache со встроенным контейнером JSP для поддержки разработки страниц JSP.

Контейнер JSP работает с веб-сервером для предоставления среды выполнения и других служб, необходимых JSP. Он знает, как понимать специальные элементы, которые являются частью JSP.

На следующем рисунке показано расположение контейнера JSP и файлов JSP в веб-приложении.

Архитектура JSP

Обработка JSP

Следующие шаги объясняют, как веб-сервер создает веб-страницу с использованием JSP —

  • Как и на обычной странице, ваш браузер отправляет HTTP-запрос на веб-сервер.

  • Веб-сервер распознает, что HTTP-запрос предназначен для страницы JSP, и перенаправляет его в механизм JSP. Это делается с помощью страницы URL или JSP, которая заканчивается на .jsp вместо .html .

  • Механизм JSP загружает страницу JSP с диска и преобразует ее в содержимое сервлета. Это преобразование очень простое, в котором весь текст шаблона преобразуется в операторы println (), а все элементы JSP преобразуются в код Java. Этот код реализует соответствующее динамическое поведение страницы.

  • Механизм JSP компилирует сервлет в исполняемый класс и перенаправляет исходный запрос в механизм сервлета.

  • Часть веб-сервера, называемая механизмом сервлетов, загружает класс Servlet и выполняет его. Во время выполнения сервлет производит вывод в формате HTML. Выходные данные далее передаются на веб-сервер механизмом сервлетов в ответе HTTP.

  • Веб-сервер перенаправляет HTTP-ответ вашему браузеру с точки зрения статического HTML-содержимого.

  • Наконец, веб-браузер обрабатывает динамически генерируемую HTML-страницу внутри HTTP-ответа точно так же, как если бы это была статическая страница.

Как и на обычной странице, ваш браузер отправляет HTTP-запрос на веб-сервер.

Веб-сервер распознает, что HTTP-запрос предназначен для страницы JSP, и перенаправляет его в механизм JSP. Это делается с помощью страницы URL или JSP, которая заканчивается на .jsp вместо .html .

Механизм JSP загружает страницу JSP с диска и преобразует ее в содержимое сервлета. Это преобразование очень простое, в котором весь текст шаблона преобразуется в операторы println (), а все элементы JSP преобразуются в код Java. Этот код реализует соответствующее динамическое поведение страницы.

Механизм JSP компилирует сервлет в исполняемый класс и перенаправляет исходный запрос в механизм сервлета.

Часть веб-сервера, называемая механизмом сервлетов, загружает класс Servlet и выполняет его. Во время выполнения сервлет производит вывод в формате HTML. Выходные данные далее передаются на веб-сервер механизмом сервлетов в ответе HTTP.

Веб-сервер перенаправляет HTTP-ответ вашему браузеру с точки зрения статического HTML-содержимого.

Наконец, веб-браузер обрабатывает динамически генерируемую HTML-страницу внутри HTTP-ответа точно так же, как если бы это была статическая страница.

Все вышеупомянутые шаги можно увидеть на следующей диаграмме —

Обработка JSP

Как правило, механизм JSP проверяет, существует ли сервлет для файла JSP и существует ли дата модификации в JSP старше, чем сервлет. Если JSP старше своего сгенерированного сервлета, контейнер JSP предполагает, что JSP не изменился и что сгенерированный сервлет по-прежнему соответствует содержимому JSP. Это делает процесс более эффективным, чем с другими языками сценариев (например, PHP), и, следовательно, быстрее.

Таким образом, страница JSP — это просто еще один способ написания сервлета без необходимости быть мастером программирования на Java. За исключением фазы перевода, страница JSP обрабатывается точно так же, как обычный сервлет.