Расширение Struts ActionServlet и RequestProcessor - PullRequest
3 голосов
/ 07 октября 2010

Может кто-нибудь сказать мне сценарий, в котором я должен расширить классы ActionServlet и RequestProcessor?Я прочитал в документации Struts, что это можно сделать, но я не понимаю, в какой ситуации.

1 Ответ

1 голос
/ 07 октября 2010

ActionServlet и RequestDispatcher являются основными игроками в структуре Struts.ActionServlet обрабатывает все запросы, сделанные к вашему приложению Struts, и делегирует «тяжелую работу» по обработке запроса объекту RequestProcessor.

В приложении Struts ваши операции обычно выполняются путем создания классов Action, при этом каждое действие выполняетсязаботиться о своем собственном другом материале.Иногда, хотя вы хотите выполнять общие операции для всех действий, таких как регистрация или безопасность , и не хотите, чтобы они выполнялись внутри каждого класса действий, не так ли?Это будет означать многократное дублирование кода, поэтому вы должны поместить это общее поведение где-то выше отдельных действий.

ActionServlet и RequestProcessors являются хорошими кандидатами для такого рода вещей.Конечно, вы могли бы написать фильтр, но ActionServlet и RequestProcessors уже содержат код, связанный с вашей платформой, поэтому нет смысла начинать с нуля с чего-то, когда вы можете повторно использовать то, что уже существует, и расширять его.

ТемаРасширением обычно является RequestProcessor (больше, чем ActionServlet), поэтому прочитайте JavaDoc RequestProcessor , и вы увидите, что есть много полезных методов для расширения и добавления хуков на важных этапах выполнения.

Чтобы дать вам конкретный пример: плагин Tiles использует расширение RequestProcessor .

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