ActionServlet и RequestDispatcher являются основными игроками в структуре Struts.ActionServlet обрабатывает все запросы, сделанные к вашему приложению Struts, и делегирует «тяжелую работу» по обработке запроса объекту RequestProcessor.
В приложении Struts ваши операции обычно выполняются путем создания классов Action, при этом каждое действие выполняетсязаботиться о своем собственном другом материале.Иногда, хотя вы хотите выполнять общие операции для всех действий, таких как регистрация или безопасность , и не хотите, чтобы они выполнялись внутри каждого класса действий, не так ли?Это будет означать многократное дублирование кода, поэтому вы должны поместить это общее поведение где-то выше отдельных действий.
ActionServlet и RequestProcessors являются хорошими кандидатами для такого рода вещей.Конечно, вы могли бы написать фильтр, но ActionServlet и RequestProcessors уже содержат код, связанный с вашей платформой, поэтому нет смысла начинать с нуля с чего-то, когда вы можете повторно использовать то, что уже существует, и расширять его.
ТемаРасширением обычно является RequestProcessor (больше, чем ActionServlet), поэтому прочитайте JavaDoc RequestProcessor , и вы увидите, что есть много полезных методов для расширения и добавления хуков на важных этапах выполнения.
Чтобы дать вам конкретный пример: плагин Tiles использует расширение RequestProcessor .