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

·  С неявными объектами, доступными для страницы сервера. Обращение страницы сервера к неявному объекту изображается как однонаправленная ассоциация между страницей и классом такого объекта.

·  С компонентами JavaBeans. Страница может обращаться к компоненту JavaBeans.В таких ситуациях отношение моделируется как ассоциация со стереотипом «Use Bean». Это отношение выражается присутствием JSP тега j sp: useBean, который позволяет обращаться к JavaBeans из JSP.

·  С другими классами. Для более полного обзора страницы сервера может быть важно показать ее отношения с другими классами. Эти отношения изображаются как ассоциации.

·  Зависимость от других классов или библиотек. Для обеспечения своих функциональных возможностей страница сервера может импортировать другие классы и библиотеки. Такие отношения моделированы как обычные отношения зависимости и изображаются пунктирными стрелками.

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

·  С компонентами Enterprise JavaBeans (EJB). Страница сервера может вызывать методы EJB. Это отношение моделируется как направленная ассоциация от страницы сервера к местному и удаленному интерфейсам в подсистеме, изображающей EJB.

На рис. 11.6 изображены некоторые отношения страницы сервера в JSP. В этом примере пользователь начинает взаимодействие в компоненте PayBills.

Рис. 11.6. Отношения страницы сервера

После ввода необходимых сведений по оплате счета форма передается сервлету BillServlet, который вместе с компонентом управления выполняет саму транзакцию оплаты счета. Заметьте, что компонент JSP PayBills включает компоненты Banner и Footer. В процессе RUP такая структура называется компонентом представления. Этот подход полезен тем, что позволяет строить интерфейс пользователя из шаблонов. С помощью элементов-директив bJSP включаются другие JSP и страницы HTML, что дает в результате согласованный и динамичный интерфейс для любой операции.

JSP в приложениях уровня предприятия

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

Рассмотрим, например, прецеденты HomeDirect, определяемые в главе 16. Каждый прецедент, взаимодействующий с исполнителем-клиентом, означает, что в системе должен присутствовать какой-то интерфейс пользователя. Также требуется интерфейс для прецедентов входа и выхода из системы, которые входят в состав остальных прецедентов.

Изучим применение компонентов JSPS в приложениях уровня предприятия на примере прецедента "Вход в систему". Когда пользователь начинает взаимодействие с банковской системой и инициирует прецедент "Вход в систему", ему должна быть представлена Web-страница для входа. В архитектуре системы эта страница представляет граничный объект входа в систему. Кроме этого, пользователь должен ввести через эту страницу имя и пароль, чтобы они были проверены системой.

Также для прецедента "Вход в систему" требуется объект управления. Поскольку мы хотим сохранить в приложении возможность легко менять представление, будем применять архитектуру модели 2, т.е. будем использовать JSP прежде всего для задач представления.

Исходя из этого решения, нам требуется создать сервлет, который обрабатывал бы форму для входа в систему. Хотя объекты управления прецедентов на этапе разработки часто сливаются воедино, этот прецедент все же имеет особую функцию "сторожа", которая выражается в том, что ни один из других прецедентов не может начать работу, пока этот не завершится. С учетом этого целесообразно оставить операцию входа в систему и проверки пользователя отдельной от остальной части приложения.