Java Server Page. Архитектура JSP-страницы

Базовая архитектура Java Server Pages в самом общем виде представлена на рисунке. Платформа J2EE обеспечивает базу, на которой функционирует все приложение в целом и страницы JSP, в частности, в то время, как сеть Интернет предоставляет механизм транспортировки данных.

Страница JSP располагается на Web-сервере в среде виртуальной Java-машины. Доступ к страниц JSP, как и в случае сервлета, осуществляется через Web с использованием протокола HTTP.

Страница JSP функционирует под управлением JSP Engine (среды исполнения JSP). Страница JSP может взаимодействовать с программным окружением с помощью компонентов JavaBeans, получая и устанавливая его параметры, используя теги: <jsp:useBean>, <jsp:getProperty>, <jsp:setProperty>. Компонент JavaBean сам может участвовать в других процессах, предоставляя результаты в виде своих параметров, доступных страницам JSP, участвующим в сеасе, а через них - всем пользователям, запрашивающим эти страницы JSP.

Использование межплатформенных компонентов JavaBeans и библиотек тегов значительно расширяет возможности JSP. Программный Java-код в странице JSP, в идеале, должен использоваться только для управления представлением информации.

Основные модели архитектуры JSP

Возможны различные подходы к использованию технологии JSP. Два основных архитектурных подхода, нашедшие применение при реализации приложений уровня предприятия, имеют специальные названия:
  • JSP Model 1 (Первая модель архитектуры JSP);
  • JSP Model 2 (Вторая модель архитектуры JSP);

Первая модель архитектуры JSP

JSP Model 1 (Первая модель архитектуры JSP) практически реализует базовую архитектуру JSP. В архитектурном решении JSP Model 1 полностью отвечает за получение запроса от клиента, его обработку, подготовку ответа и доставку ответа пользователю. Разделение представления и динамического содержания обеспечивается тем, что доступ к данным осуществляется через компоненты JavaBeans. В сценарии JSP Model 1 предполагается следующая последовательность действий:
  1. Запрос пользователя посылается через Web-браузер странице JSP.
  2. Страница JSP компилируется в сервлет (при первом обращении).
  3. Скомпилированный сервлет обращается к некоторому компоненту JavaBean, запрашивая у него информацию.
  4. Компонент JavaBean, в свою очередь, осуществляет доступ к информационным ресурсам (непосредственно или через компонент Enterprise JavaBeans).
  5. Полученная информация отображается в свойствах компонента JavaBeans, доступных странице JSP.
  6. Формируется ответ в виде страницы HTML с комбинированным содержанием (статическое, динамическое).

Архитектура JSP Model 1 может с успехом применяться для небольших приложений. Однако использование данной модели для более сложных задач вызывает определенные трудности и не является технологичным из-за большого объема встроенных в страницу программных фрагментов. Для сложных корпоративных приложений рекомендуется применение второй модели архитектуры JSP.

Вторая модель архитектуры JSP

JSP Model 2 (Вторая модель архитектуры JSP) реализует гибридный подход к обслуживанию динамического содержания Web-страницы, при котором совместно используется сервлет и страница JSP. Эта модель позволяет эффективно использовать преимущества обеих технологий: сервлет поддерживает задачи, связанные с обработкой запроса и созданием объектов JavaBeans, используемых JSP, а страница JSP отвечает за визуальное представление информации. Сервлет используется как управляющее устройство (контроллер). Схематично вторая модель представлена на рисунке. Сценарии JSP Model 2, как правило реализует следующую типовую последовательность действий:
  1. Запрос пользователя посылается через Web-браузер сервлету.
  2. Сервлет обрабатывает запрос, создает и инициализирует объект JavaBean или другие объекты, используемые страницей JSP, и запрашивает динамическое содержание у компонента JavaBean.
  3. Компонент JavaBean осуществляет доступ к информации непосредственно или через компонент Enterprise JavaBeans.
  4. Сервлет, направляющий запрос, вызывает сервлет, скомпилированный из страницы JSP.
  5. Сервлет, скомпилированный из страницы JSP, встраивает динамическое содержание в статический контекст HTML-страницы и отправляет ответ пользователю.

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

Архитектуры JSP Model 2 в большей степени, чем архитектура JSP Model 1, соответствует идее отделения представления от содержания. Эта модель позволяет четко выделить отдельные части приложения и связанные с ними роли и обязанности персонала, занятого в разработке:
  • Дизайнер - разработка дизайна Web-страницы;
  • Разработчик - реализация функций управления и обработки.

Чем сложнее разрабатываемая система, тем заметнее становятся преимущества архитектуры JSP Model 2.

Функционирование JSP

Работа со страницей JSP становится возможной только после ее преобразования в сервлет. В процессе трансляции как статическая, так и динамическая части JSP преобразуются в Java-код сервлета, который передает преобразованное содержимое браузеру через выходной поток Web-сервера.

Технология JSP является технологией серверной стороны, поэтому все процессы обработки JSP протекают на стороне сервера. Страница JSP - текстовый документ, который в соответствии со спецификацией JSP, проходит две фазы:
  • фазу трансляции;
  • фазу выполнения.

При трансляции, которая выполняется один раз для каждой страницы JSP, создается или локализуется класс типа Servlet, реализующий JSP. Трансляция JSP может производиться как отдельно, до ее использования, так и в процессе размещения JSP на Web-сервере или сервере приложений.
Во второй фазе осуществляется обработка запросов и подготовка ответов.




Copyright © 2009-2015