Компоненты Java Server Pages. Введение в JSP. Типичные области использования JSP. Архитектуры модели 1 и модели 2, страница 2

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

Архитектура модели 2 базируется на парадигме "модель-вид-контроллер" (MVC). Она более благоприятна для программистов, так как подразумевает использование одного или нескольких сервлетов-контроллеров. Запросы принимаются внешним сервлетом или сервлетами и передаются компонентам JSP. Для успешной реализации модели 2 надо правильно определить количество сервлетов, которое требуется для выполнения задачи (предельные случаи — один сервлет на все обязанности или по отдельному сервлету для каждого прецедента или возможного действия). Другой ключевой элемент этой стратегии — использование в качестве модели технологии JavaBeans. Компонент JavaBeans играет роль "почты" между сервлетом или сервлетами-контроллерами и компонентами JSP. Руководствуясь запросом, контроллер заполняет компонент JavaBeans данными, а компонент JSP забирает их и строит из этих данных страницу вывода. В этом случае для доступа к JavaBeans в JSP обычно используется тег jspcuseBean. Модель 2 дает более аккуратное разделение представления и логики. Хотя архитектура модели 2 труднее в реализации, код, разработанный на ее основе, легче обслуживать.

Некоторые разработчики неправильно полагают, что модель 1 устарела и заменена моделью 2. На самом деле можно использовать любую из этих моделей в зависимости от того, какая задача поставлена. Для выбора одной из двух архитектур могут пригодиться следующие рекомендации.

·  Модель 1. Эту модель рекомендуется применять, когда надо создать простое Web-приложение, к которому не предъявляются значительные требования по обработке.

·  Модель 2. Эту модель рекомендуется применять, когда запросы типично вызывают большой объем обработки, которая может дать в результате существенно различные ответы.

В конце концов, лучше всего использовать ту модель, с которой вам удобно работать и которая соответствует опыту и стилю работы вашей группы. *

Сравнение JSP и сервлетов

Все компоненты JSP компилируются в сервлеты и выполняются в окружении контейнера сервлета. Поэтому с технической точки зрения JSP и сервлеты очень похожи по возможностям и решаемым задачам.

Ниже перечислены некоторые важные преимущества компонентов JSP по сравнению с сервлетами.

·  Компоненты JSP ориентированы на представление и дают разработчикам Web-представления более естественный путь разработки.

·  Компоненты JSP позволяют отделить представление от содержимого (этот подход будет показан ниже в контексте тегов JSP и библиотек тегов в разделе "Библиотеки тегов"). Это означает, что в проекте разработка представления может протекать параллельно с разработкой логики.

·  Компоненты JSP помогают лучше организовать физический аспект Web-приложения.

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

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