Struts2平凡之路(三)Struts2架构和运行流程

下面来一起探究下struts2框架的运行流程

在struts2的说明文档下有一张struts2的全景图

橙色部分是Servlet Filters 也就是过滤器链

蓝色部分是struts2的为我们提供的核心组件

浅绿色部分是strtus2提供的一系列拦截器

浅黄色部分是我们平时工作中主要编写的东东


FilterDispatcher是struts2的核心控制器,是整个框架的司令官,会根据ActionMapper的结果来决定是否启动struts2框架来进行处理用户所发出的请求

ActionMapper会判断请求是否需要struts2来处理,如果需要则返回一个对象来描述请求对应的ActionInvocation信息

ActionProxy Action 的代理类,位于Action和框架之间

ConfigruationManager 配置管理中心,用于加载和管理struts.xml

ActionInvocation 真正调用并执行Action,它拥有一个Action实例和这个Action所依赖的拦截器,它会执行Action,拦截器,以及相应的result

Interceptor 拦截器,可以自动的拦截action

result 返回相对应的视图类型

templates 各种视图的模板

tag subsystem  struts2标签库


运行流程

1.请求通过一系统的过滤器,最后到达FilterDispatcher这个 核心过滤器

2.该过滤器会将请求转发给ActionMapper并询问该请求是否启动struts2框架来进行处理

3.如需要处理则创建ActionProxy,ActionProxy作为Action和框架的中间层,会代理Action的运行过程

4.ActionProxy被创建出来后并不知道运行哪个Action,这时它只是拿到了FilterDispatcher的请求的url,ActionProxy会去向ConfigurationManager询问要运行哪个Action

5.ConfigurationManager会去struts.xml中查找到底要运行哪个Action,ConfigurationManager会在服务启动时就将struts.xml全部加载到内存中,ConfigurationManager 可以看作是struts.xml在内存中的映像

6.ActionProxy这时会拿到运行哪个Action,相关的拦截器,以及所有的result信息,这时会创建ActionInvocation对象,ActionInvocation描述了Action运行的整个过程

7.ActionInvocation在执行真正的action类之间,会调用一系列的拦截器,这时拦截器是顺序执行的

8.在执行完action并根据action的result返回相应的结果并在struts.xml中进行匹配

9.ActionInvocation会再按照拦截器引用顺序的倒序再次执行各个拦截器的后置部分

10.ActionInvocation执行完毕后,生成响应的httpServletResponse对象,最后按与过虑器相反的顺序,向用户返回响应结果



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值