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

На рис. 11.1 приведен пример класса обработчика для тега без тела.

Описатель библиотеки тегов

Теги сгруппированы в библиотеки тегов. Файл описателя библиотеки тегов (tag library descriptor — . t Id) содержит список имен тегов и имен соответствующих им классов обработчиков. Пример описателя библиотеки тегов приведен на рис. 11.2.

На рис. 11.3 показан пример использования специализированного тега bJSP.

Моделирование JSP и UML

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

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

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

Чтобы разрешить эту проблему, мы применим механизмы расширения UML и разделим компонент JSP на два воображаемых элемента .

·  Страница клиента (<<ClientPage>>). Этот элемент изображает поведение JSP на стороне клиента, т.е. внешне заметные аспекты представления. Страницы клиента имеют ассоциации с ресурсами на стороне клиента, такими как другие страницы клиента, аплеты, компоненты JavaBeans и пр.

·  Страница сервера (<<ServerPage>>). Этот элемент изображает поведение JSP на стороне сервера. Он касается прежде всего внутренней логики, связанной с обработкой запроса и выдачей ответа. Страницы сервера имеют отношения с другими ресурсами на стороне сервера, такими как внешние системы, базы данных и контроллеры в системе.

Отношение между страницей клиента и страницей сервера также имеет особый характер и обозначается стрелкой отношения «Build>>, направленной от сервера к клиенту (это отношение построения, т.е. страница сервера строит страницу клиента). В результате образуется поток HTML или XML, который передается в броузер, вызвавший запрос. Отношение между страницей сервера и страницей клиента показано на рис. 11.4.

Немного остановимся на значках, которые используются на этой диаграмме. Как мы уже рассказывали в главе 3, в UML допускается изображать модельные элементы с помощью как стереотипов, так и значков . Мы будем активно использовать эту возможность в этой и следующих главах.

Моделирование отношений на стороне клиента

Воображаемая страница клиента JSP может иметь отношения, кроме своей страницы сервера, с объектами нескольких типов.

·  С другими страницами клиента. Страница клиента может иметь входящие или исхо дящие отношения <<link>> с другими страницами клиента в составе модели.

·  С аплетами. Со страницей клиента могут быть связаны аплеты. Аплеты моделиру ются в виде классов со стереотипом «Java  Applet>>. Отношение между страни цей клиента и аплетом изображается как агрегация или простая ассоциация.

·  С формами. Формы — это обычное средство приема данных от пользователя через броузер. Форма моделируется в виде класса со стереотипом <<Form>>. Поля ввода формы отображаются на атрибуты класса. На самом деле формы являются частью страницы клиента, поэтому такое отношение моделируется как агрегация со стра ницей клиента. Формы не существуют независимо от нее.

На рис. 11.5 показаны некоторые отношения страницы клиента в JSP.

Моделирование отношений на стороне сервера

Отношения JSP на стороне сервера подразделяются на следующие категории.

·  С другими страницами сервера. Страница сервера может быть связана с другими подобными страницами. Такие отношения моделируются передачей <<forward>>или включением <<include>>.

·  С сервлетами, В этом контексте сервлеты сравнимы по поведению с компонентами JSP. Поэтому отношения с ними моделируются так же, как и с другими страницами сервера (см. предыдущий пункт).