有谁可以告诉我应该扩展ActionServlet
和RequestProcessor
类的场景?我已经在Struts文档中读到它可以完成,但我不明白在哪种情况下。
答案 0 :(得分:1)
ActionServlet和RequestDispatcher是Struts框架中的主要参与者。 ActionServlet处理对Struts应用程序发出的所有请求,并将处理请求的“繁重工作”委托给RequestProcessor对象。
在Struts应用程序中,您通常通过创建Action类来执行操作,每个Action都会处理自己的不同内容。有时虽然您希望对所有操作执行常规操作,例如日志记录或安全性,但您不希望它们在每个Action类中执行吗?这将意味着大量代码重复,因此您必须将此常见行为置于单个操作之上的某个位置。
ActionServlet和RequestProcessors很适合这类东西。当然,您可以编写一个过滤器,但ActionServlet和RequestProcessors已经包含与您的框架相关的代码,因此当您可以重用已存在并扩展它时,没有必要从头开始。
扩展的主题通常是RequestProcessor(不仅仅是ActionServlet),因此阅读the JavaDoc of the RequestProcessor,您将看到有许多有用的方法可以扩展和添加钩子到执行的重要阶段。
为您举一个具体示例:Tiles Plugin使用了extension of the RequestProcessor。