Как действие Struts2 сравнивается с сервлетом? - PullRequest
4 голосов
/ 20 июля 2010

Как действия Struts2 сравниваются с сервлетами?Может ли действие выступать в роли сервлета?

Ответы [ 3 ]

10 голосов
/ 21 июля 2010

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

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

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

1 голос
/ 20 июля 2010
  1. Struts - это слой абстракции поверх ванильного Java-сервлета. Сами действия определяются программистом и вызываются структурами Struts при обращении к URL-адресу (вы настраиваете, какой URL-адрес соответствует какому действию). Таким образом, они на самом деле не «сравнивают» с сервлетом, они являются абстракцией функциональности, которую предоставляет сервлет. Типичная вещь, которую вы делаете с действием, это вывод jsp, который эквивалентен сервлету. так что происходит а) запрос приходит, привязывается к действию б) действие загружает некоторые данные c) action рендерит jsp, передавая загруженные данные в jsp.

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

0 голосов
/ 20 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...