struts2 体系结构图:
运行流程:
>客户端初始化一个指向Servlet容器(例如Tomcat)的(HttpServletRequest)请求;
>请求通过一系列的过滤器,例如会依次通过ActionContext CleanUp,其他过滤器(Othter Filters、SiteMesh等),FilterDispatcher;
(注:从struts2.1.3后就不需要配置ActionContextCleanUp过滤器了,该过滤器的作用是清空值栈等,但struts会留下自己session和Attribute等)
>StrutsPrepareAndExecuteFilter是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。StrutsPrepareAndExecuteFilter询问ActionMapper是否需要调用某个Action来处理这个(HttpServletRequest)请求,如果ActionMapper决定需要调用某个Action,StrutsPrepareAndExecuteFilter则把请求的处理交给ActionProxy;
> ActionProxy 通过 ConfigurationManager 询问框架的配置文件,确 定需要调用的 Action 类及 Action 方法
>ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化;
>ActionInvocation 实例在调用 Action 的过程前后,涉及到相关拦截 器(Intercepter)的调用;
>Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配 置找到对应的返回结果。调用结果的 execute 方法,渲染结果。在渲染 的过程中可以使用 Struts2 框架中的标签;
>执行各个拦截器 invocation.invoke() 之后的代码;
>把结果发送到客户端 。
时序图:
struts2(十一)运行流程
最新推荐文章于 2022-03-29 16:13:39 发布