Поиск по сайту
Меню
ГлавнаяКосметика L'ambreТуризмВидео клуба "Самооборона 100%"СтатьиМузыкальный обзорЛитературная страничкаСвоими рукамиSearch4uМузыкальные поздравительные открыткиScreenSavers - хранители экрана (New)IT-статьи | Struts. ВведениеИтак, начнем. Наверняка, многие из Вас знают или хотя бы представляют, что за зверь такой Struts.
Тем не менее, приведу краткое его описание из википедии:
Для начала надо настроить необходимое для работы окружение. Прежде всего, понадобится сам Struts. Дистрибутив можно найти на сайте www.apache.org. Обращаю Ваше внимание на то, что нужен Struts версии 1.х.х. Версия 2.х.х – следующее поколение это фреймворка. Их различие можно посмотреть, например, здесь www.java-samples.com. Пока остановимся на Struts 1.х.х. Использовать фрейворк не получиться без веб-сервера, написанного на Java. Остановлюсь на Tomcat’е. Его дистрибутив можно скачать с сайта tomcat.apache.org. В моем случае файл был такой: apache-tomcat-5.5.26.zip. Кроме того, никак не обойтись без Java SDK версии 1.4 или более новой. java.sun.com/j2se - здесь можно найти дистрибутивы Java. Я выбрал Java SDK 1.5.
На этом с настройкой заканчиваем.
Теперь надо протестировать работу Tomcat’a.
Запускаем файл
Вот мы и настроили необходимое окружение для работы со struts’ом.
Прежде чем я начну разбирать конкретные примеры, стоит рассказать об архитектуре фреймворка. Без этого будет трудно дальше продвигаться.
Как ранее упоминалось, Struts реализует паттерн MVC (Model – View – Controller или по-русски Модель-Предстваление-Контроллер). Центральная часть этого пaттерна – контроллер (Сontroller). Контроллер передает запросы (в нашем случае это HTTP - запросы) соответствующему обработчику. Обработчик – это не что иное, как воплощенная в коде логика, основная цель которой – перерабатывать запросы. В struts`е такие обработчики называются actions. Далее для простоты буду называть экшенами. Экшены связаны с Моделью, и каждый из них действует как мост между запросом и Моделью. Экшен достает из запроса необходимую информацию для обработки данных, находящихся в Модели. Модель в свою очередь заключает в себе состояние приложения. После того, как экшен обработал данные, управление передается обратно контроллеру, который обращается к соответствующему Представлению. Эти передвижения данных определяются в конфигурационном файле в виде так называемого маппинга (mapping).
Контроллером является сервлет, которой входящие запросы перенаправляет соответствующим экшенам. Этот сервлет называется ActionServlet. Он настраивается в файле web.xml и использует файл struts-config.xml для определения маппингов для экшенов.
Классы экшенов реализуют бизнес логику приложения. Взаимодействие между экшенами и контроллером прописывается в конфигурационном файле strut-config.xml.
Представление обычно состоит из jsp-страниц. Представление не содержит ни бизнес-логики, ни логики выполнения, ни информации из Модели, но служит для отображения данных предоставляемых экшенами. В качестве Модели могут обычно выступают JavaBeans или EJB, связанные с базой данных или любым другим хранилищем данных.
Теперь пришло время разобраться, как происходит обработка запросов в Struts.
Когда юзер нажимает кнопку на странице, вводит какие-то данные или производит другие действия, браузер формирует HTTP-запрос и отправляет его веб-серверу. Далее Контроллер получает этот запрос и решает, куда дальше его передать. Он вызывает соответствующий экшен, который, используя JavaBeans или EJB, применяет бизнес логику и обновляет состояние Модели. Для упрощения разработки и поддержки приложения Контролер сам не обрабатывает данные и не влияет на Модель (т.е. на состояние приложения), а только решает, какой из экшенов и в каком случае будет выполнять эти действия. Модель реализуется с помощью JavaBeans, которые являются потомками стандартного для Struts’a класса ActionForm.
ActionForm Beans представляют Модель на уровне сессии (иногда на уровне реквеста или запроса), но не на персистентном (persistent) уровне. Уровень сессии или реквеста означает, что в случае краха приложения или веб-сервера информация, содержащаяся в сессии или реквесте, не восстановится. Когда идет речь о персистентном уровне относительно Модели, то это означает, что состояние приложения может быть восстановлено после неправильного завершения приложения. Представление - это обычно просто JSP-страницы, отображают данные для юзера. Они получают информацию из ActionForm Beans, используя JSP-теги или Struts-тэги. В хорошо спроектированной JSP-странице не должно быть ни логики, ни работы с Моделью, а только теги.
Денис Я.
|
Поиск WEB
![]() |