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返回客户端一个响应。
相关文章