Struts. Введение

Итак, начнем. Наверняка, многие из Вас знают или хотя бы представляют, что за зверь такой Struts. Тем не менее, приведу краткое его описание из википедии:
Apache Struts — веб-приложение с открытым кодом, фреймворк для разработки Java EE веб-приложений. Он использует и расширяет Java Servlet API, чтобы содействовать принятию среди разработчиков MVC (Модель-Представление-Контроллер) архитектуры. Этот фреймворк создан Крейгом МакКланаханом и спонсирован в мае 2000 года Apache Foundation. Ранее находился в составе Apache Jakarta Project и был известен как Jakarta Struts. В 2005 году он стал проектом Apache высшего уровня.
Более детальное описание можно без проблем найти на просторах Интернета. С теорией на этом все.

Для начала надо настроить необходимое для работы окружение.

Прежде всего, понадобится сам 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.

    Приступим к настройке рабочего места:
  1. Установка Java.
    Запускаем исполняемый файл для Java SDK. Особых сложностей этот процесс установки Java не должен вызвать – просто соглашаемся со всем, что предлагает инсталлятор по умолчанию. По желанию, можно изменить директорию, в которой будет находиться Java. На моем компьютере Java установлена в c:\Java\jdk1.5.
  2. Установка Tomcat.
    Содержимое архивного файла с дистрибутивом Tomcat’а распаковываем в директорию, в которой будет находиться Tomcat. (В моем случае, это D:\apache-tomcat)
  3. Переменные среды Настройка переменных JAVA_HOME и TOMCAT_HOME.
    Выполняем следующие действия:
    Пуск -> Настройка -> Панель управления -> Система -> Дополнительно -> Переменные среды.
    В результате, на экране должно быть следующее:

Новая системная переменнаяНажимаем кнопку “Создать”. В появившемся окне в поле “Имя переменной” вводим JAVA_HOME, а в поле “Значение переменной” - c:\Java\jdk1.5.

Новая системная переменнаяАналогично поступаем с переменной TOMCAT_HOME.

На этом с настройкой заканчиваем.

Теперь надо протестировать работу Tomcat’a. Запускаем файл \bin\startup.bat. В браузере идем по адресу http://localhost:8080. Если все правильно сделано, то браузер покажет страницу: Apache TomCat Screen

Вот мы и настроили необходимое окружение для работы со 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. Обработка запросов в Struts

Когда юзер нажимает кнопку на странице, вводит какие-то данные или производит другие действия, браузер формирует HTTP-запрос и отправляет его веб-серверу. Далее Контроллер получает этот запрос и решает, куда дальше его передать. Он вызывает соответствующий экшен, который, используя JavaBeans или EJB, применяет бизнес логику и обновляет состояние Модели. Для упрощения разработки и поддержки приложения Контролер сам не обрабатывает данные и не влияет на Модель (т.е. на состояние приложения), а только решает, какой из экшенов и в каком случае будет выполнять эти действия. Модель реализуется с помощью JavaBeans, которые являются потомками стандартного для Struts’a класса ActionForm.

ActionForm Beans представляют Модель на уровне сессии (иногда на уровне реквеста или запроса), но не на персистентном (persistent) уровне. Уровень сессии или реквеста означает, что в случае краха приложения или веб-сервера информация, содержащаяся в сессии или реквесте, не восстановится. Когда идет речь о персистентном уровне относительно Модели, то это означает, что состояние приложения может быть восстановлено после неправильного завершения приложения. Представление - это обычно просто JSP-страницы, отображают данные для юзера. Они получают информацию из ActionForm Beans, используя JSP-теги или Struts-тэги. В хорошо спроектированной JSP-странице не должно быть ни логики, ни работы с Моделью, а только теги.

Денис Я.



Copyright Все права на публикацию принадлежат RichLife.ru
При перепечатке публикации ссылка на RichLife.ru обязательна.

Комментарии

КонстантинДобавлено: 09.08.2009 18.19.52
Очнь пазнавательно!!!


прослушать Музыкальный обзор №28 , №29 , №30
Рейтинг@Mail.ru Rambler's Top100