ВходРегистрация
Евгений Игумнов
 

Добро пожаловать на сайт Евгения Игумнова (Evgeny.Igumnov.com)! На нем представлены три важных для меня направления: Бизнес планирование, Менеджмент и Информационные технологии. На страницах сайта можно найти примеры моих бизнес планов, а также статей по информационным технологиям и менеджменту. Кроме того опубликованы описания проектов в которых я участвовал. Мой моб. тел.: +79133869143 ICQ: 145593056 [Е-майл]

Добавить в избранное Отправить мне e-mail
Комментируемые записи
Практика по манипуляции с...
Комментарии: 27
Вирусный маркетинг - за и...
Комментарии: 8
Технология EJB
Комментарии: 5
Процесс разработки
Комментарии: 4
PHP
Комментарии: 3

Servlet Framework

4.00 (1)

Спецификация каркаса для Servlet’ов на основе шаблона Model-View-Controller

Автор: Евгений Игумнов mailto:igumnovATgmail.com,

магистр технических наук, руководитель проекта в фирме ООО “Геокад плюс” (Новосибирск)

18.06.2002

1. UML-документации для каркаса Servlet’ов

1.1. Прецеденты использования каркаса Servlet’ов

Каркас Servlet’ов является прослойкой между web-сервером Tomcat и Servlet’ами что позволяет логику Servlet’ов разделить на две части: действие (Action) над чем-либо и формирование HTML кода (ActionForm). Также каркас позволяет хранить сценарий взаимодействия Servlet’ов не в коде самих Servlet’ов, а в конфигурационном файле (action.xml). Также каркас содержит стандартный механизм сообщений об ошибках происходящих в Servlet’ах.


1.2. Диаграмма пакетов каркаса Servlet’ов

Код каркаса Servlet’ов находится в пакете com.geocad.wc.sfw. В пакете com.geocad.wc.sfw.semantic например находится web-приложение редактора семантики построенном на основе каркаса и как видно из диаграммы реализация этого пакета зависит от реализации пакета с каркасом com.geocad.wc.sfw.

1.3. Концептуальная диаграмма каркаса Servlet’ов

Каркас построен на основе одного Servlet’а ActionServlet, который вызывает Web-сервер Tomcat. При первом обращении web-пользователя к ActionServlet происходи его инициализация, которая заключается в загрузке файла action.xml содержащий сценарий взаимодействия с Servlet’ами. При этой инициализации в сессии для пользователя создается для него контейнер UserContext на основе загруженного файла action.xml. Другими словами содержимое контейнера UserContext заполняется объектами классов ActionErrors, ActionForms и тд. на основе этого файла. Для вызова Servlet’ов, находящихся под каркасом необходимо в URL указать переменную action по содержанию которой будет вызван соответствующий Action и ActionForm. Например:

http://host:8080/wc_servlet/ActionServlet;jsession...

Каждый Action имеет свой ActionMapping, который описывает возможные переадресации ActionForward на другие Action после его выполнения. К ActionMapping прикреплено по Action и ActionForm и выражается не в связи классов а в двух его переменных actionClass и formClass. Также UserContext содержит контейнер с ошибками ActionErrors, которые могут быть помещены в него классом Action.

1.4. Диаграммы взаимодействия для прецедентов использования каркаса Servlet’ов

1.4.1. Вызов Servlet'ов

Tomcat передает запрос в каркас (ActionServlet). ActionServlet на основе параметра action в запросе производит считывание других параметров вызывая метод validate на servletView:ActionForm относящимся к текущему action находящегося в ActionMapping.formClass. Далее каркас инициирует Action вызывая perform на servletCommand:Action относящимся к текущему action находящегося в ActionMapping.actionClass. После выполнения Action каркас вызывает формирование HTML методом drow на viewServlet:ActionForm относящимся к текущему action находящегося в ActionMapping.formClass.

1.4.2. Перенаправление в другой Servlet

Tomcat передает запрос в каркас (ActionServlet). Далее каркас инициирует Action вызывая perform на servletCommand:Action относящимся к текущему action находящегося в ActionMapping.actionClass. Вовремя выполнения действия принимается решении о переадресации в другой Action с помощью ActionForward по имени этого Action’а. Каркас получив ActionForward в результате выполнения perform над commandServlet выполняет переадресацию на forwarededServletCommand вызывая на нем метод perform.


1.4.3. Считывание параметров http-запроса

Tomcat передает запрос в каркас (ActionServlet). ActionServlet на основе параметра action в запросе производит считывание других параметров вызывая метод validate на servletView:ActionForm относящимся к текущему action находящегося в ActionMapping.formClass. Далее каркас инициирует Action вызывая perform на servletCommand:Action относящимся к текущему action находящегося в ActionMapping.actionClass. Во время выполнения Action для него возникает необходимость извлечь параметры из http-запроса которые были уже считаны ActionForm и для этого он узнает через UserContext о ActionForm которая прикреплена к текущему actin. Далее он считывает нужные ему параметрами с помощью методов get***()


1.4.4. Сообщение о возникшей ошибке

Tomcat передает запрос в каркас (ActionServlet). ActionServlet на основе параметра action в запросе производит считывание других параметров вызывая метод validate на servletView:ActionForm относящимся к текущему action находящегося в ActionMapping.formClass. Далее каркас инициирует Action вызывая perform на servletCommand:Action относящимся к текущему action находящегося в ActionMapping.actionClass. Во время выполнения Action возникает ошибка ActionError которую он создает и помещает в контейнер ActonErrors. После выполнения Action каркас вызывает формирование HTML методом drow на viewServlet:ActionForm относящимся к текущему action находящегося в ActionMapping.formClass. Во время формирования HTML, ActionForm считывает ошибку ActionError для внедрения ее в HTML-код.

1.5. Детальная диаграмма классов каркаса Servlet’ов

1.6. Диаграмма компонентов каркаса Servlet’ов

Каркас представляет с собой всего один компонент завернутый в sfw.jar. Имеется всего два абстрактных класса Action и ActionForm выступающих в роли интерфейсов наследуя которые, можно использовать каркас для создания web-приложений.


1.7. Диаграмма структуры XML файл конфигурации каркаса Servlet’ов



Метки: servlet, проекты
Комментарии: 0 Просмотров: 6227 [История изменений] Размер:8981 байт
Последние изменения сделаны: evgeny Евгений Игумнов 1505 дней назад 27.07.2006 21:10:23
ДобавилТекст

Введите код на картинке 
Ваше имя 
E-mail 
(видим лишь владельцу сайта)
WWW 

Тема

В тексте можно использовать Wiki или HTML теги



Жалоба | © Kolobok smiles, Aiwan