【菜鸟学框架】——struts2结合框架分析执行流程

前提

    本文基于上篇博文《【菜鸟学框架】——Struts2快速上手》基础,利用文章中的demo分析struts2的执行流程,目的解决初学者开始认为的配置复杂。小编如果理解偏颇之处,欢迎各位尽情拍砖!!!

问题

    上篇文章讲到demo1.jsp跳转demo2.jsp之后的访问路径,本文就这个路径开始说起

http://localhost:8888/struts01day/StrutsDemo1.action

先解释上篇文章抛出的问题:

    为什么在web.xml中配置StrutsPrepareAndExecuteFilter过滤器?

    在前端框架中都一个前端控制器(PS:struts2核心过滤器便是SturtsPrepareAndExecuteFilter)在过滤器中执行一组拦截器会完成部分功能代码。

Struts2执行流程

    在struts2中定义很多拦截器,在其默认栈中的拦截器会得到执行,至于代码如何调用,还有各位自己动手亲自调试。我只能用截图的方式说一下如何调转

 

struts2的架构图


1、前端控制器拦截器StrutsPrepareAndExecuteFilter,调用ActionMapping

2、ActionMapping决定调用需要某个action,拦截器把请求处理交个ActionProxy

3、ActionProxy通过询问框架的配置文件,找到需要的action

4、ActionProxy创建action Invocation

5、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用

6、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果

整个过程分析下来struts2的执行顺序基本和struts2的框架吻合。

问题二

    此刻可能有疑问struts2的配置文件不是struts.xml吗?为什么要写在web.xml中?

StrutsPrepareAndExecuteFilter拦截器有两个作用,预处理和执行,而预处理的作用主要是加载配置文件这个涉及到struts2的配置文件的加载顺序。

配置文件的加载顺序


    前三个属于struts2封装好的,我们无法修改,而后三个都可以加载struts2中常量的值,而且后加载的可以覆盖前面的内容。所以关于过滤的内容最安全也就是放到了web.xml中。

总结

    根据struts2程序的执行顺序简单了解一下struts2框架,小编也仅仅是入门级别的,但是还是希望在框架这一方面能深入一下。在一套流程搞下来,再复杂的配置,思路也会稍微清晰些了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mandy_i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值