Struts2工作流程

Struts2体系结构图:

Struts2工作流程描述:

1、客户端发送一个HttpServletRequest的请求;

2、这个请求依次经过过滤器ActionContextCleanUp、其他过滤器(SiteMesh等)最后到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心;

3、FilterDispatcher调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象,然后FilterDispatcher把请求的处理权交给ActionProxy;

4、ActionProxy调用配置管理器ConfigurationManager从配置文件struts.xml中读取配置信息,找到需要调用的Action类;

5、ActionProxy创建ActionInvocation对象,ActionInvocation对象通过代理模式调用Action,但在调用之前,ActionInvocation会根据配置加载Action相关的所有拦截器(Interceptor)。

6、 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果Result,然后执行这个Result,Result会调用一些模版(JSP)来呈现页面,拦截器(Interceptor)会再次被执行(顺序和Action执行之前相反);

7、最后通过HTTPServletResponse返回客户端一个响应。

原文地址:https://www.cnblogs.com/eunice-sun/p/11223802.html