Struts 2 架构和流程

17 Mar 2025 | 阅读 2 分钟

Struts 2 应用程序的架构和流程结合了许多组件,例如控制器、ActionProxy、ActionMapper、配置管理器、ActionInvocation、拦截器、Action、Result 等。

在这里,我们将通过两种方式来理解 Struts 的流程

  1. Struts 2 基本流程
  2. Apache Struts 提供的 Struts 2 标准架构和流程

Struts 2 基本流程

让我们通过这个简单的图来理解 Struts 2 应用程序的基本流程

struts 2 basic flow
  1. 用户发送一个 action 请求
  2. 控制器调用 ActionInvocation
  3. ActionInvocation 调用每个拦截器和 action
  4. 生成一个结果
  5. 结果被发送回 ActionInvocation
  6. 生成一个 HttpServletResponse
  7. 响应被发送给用户

Struts 2 标准流程(Struts 2 架构)

让我们通过这个简单的图来理解 Struts 2 应用程序的标准架构

struts 2 architecture
  1. 用户发送一个 action 请求
  2. 容器在 web.xml 文件中映射请求,并获取控制器的类名。
  3. 容器调用控制器 (StrutsPrepareAndExecuteFilter 或 FilterDispatcher)。 从 struts2.1 开始,它是 StrutsPrepareAndExecuteFilter。 2.1 之前是 FilterDispatcher。
  4. 控制器从 ActionMapper 获取 action 的信息
  5. 控制器调用 ActionProxy
  6. ActionProxy 从配置管理器获取 action 和拦截器栈的信息,配置管理器从 struts.xml 文件获取信息。
  7. ActionProxy 将请求转发到 ActionInvocation
  8. ActionInvocation 调用每个拦截器和 action
  9. 生成一个结果
  10. 结果被发送回 ActionInvocation
  11. 生成一个 HttpServletResponse
  12. 响应被发送给用户