2010-07-20 3 views

ответ

9

A Struts (Struts1/Struts classic) действие было больше привязано к сервлету. В Struts2 все совсем по-другому. Действие Struts2 - это просто POJO (простой Java-класс), полностью отделенный от API Servlet. Эта развязка облегчает тестирование.

В типичном рабочем процессе веб-приложения Struts2 действие будет создано для каждого запроса и будет связано с сервлетом (он может реализовать интерфейс ServletAware, если он должен знать об этой ассоциации, обычно это не обязательно и не рекомендуется).

Важная концептуальная разница с сервлетами (и с действиями Struts) заключается в том, что действия Struts2 не используются повторно для разных запросов и, следовательно, являются потокобезопасными: скажем, может случиться так, что три HTTP-запроса (одновременно или нет) обслуживаются один экземпляр сервлета; но в этом случае мы по-прежнему будем иметь три разных экземпляра действия Struts2, по одному для каждого запроса.

1
  1. Struts - это слой абстракции поверх материала сервлета ванили java. Сами действия определяются программистом и вызывается ракурсами struts при попадании URL-адреса (вы настраиваете, какой URL-адрес сопоставляется с каким действием). Поэтому они не сравниваются с сервлетом, они представляют собой абстракцию вокруг функций, предоставляемых сервлетом. Одна типичная вещь, которую вы делаете с действием, выдает jsp, что эквивалентно сервлету. так что происходит a) запрос приходит, получает сопоставление с действием b) действие загружает некоторые данные c) action отображает jsp, передавая загруженные данные в jsp.

  2. Действие может выводиться непосредственно на запрос/ответ, если это то, что вы хотите, но в большинстве случаев, вероятно, не является хорошей практикой.

0

Struts2 - это реализация фреймворка MVC на основе технологии Java EE.

Смежные вопросы