struts执行流程

Tomcat服务器启动
            1. 服务器启动,加载自身config/web.xml, 以及webapps下所有项目的web.xml
            2. 创建过滤器对象
                  创建struts核心过滤器实例
            3. 初始化
                  执行过滤器init()方法
                  ---> 加载默认Properties配置文件
                  ---> 加载xml
                    struts-default.xml,     【所有需要创建的bean、默认的包(结果类型、所有拦截器、默认的拦截器栈)】
                    struts-plugin.xml,      【插件配置】

                    struts.xml              【自定义配置】


用户访问
            用户每次访问,执行doFilter()方法:
                1. 每次访问struts,都会创建ActionContext对象    【 prepare.createActionContext(request, response);】
                    1.1 然后,创建ValuStack值栈对象
                       ValueStack 结构
                            |-- root   根元素数据
                            |-- context 非根元素(map)
                    1.2 给ValustStack封装数据, 所有的map数据都放入值栈
                        --> 把代表request/session/application的map、以及HttpServletRequest等对象都放入值栈中
                    1.3 把值栈的map数据,拷贝一份给ActionContext!
                        所以,我们可以通过ActionContext获取struts运行的数据!
               2. ActionMapping
                    struts把请求的参数(路径等信息), 封装为一个ActionMapping对象!
                    判断:
                        ---> 如果请求静态资源(jsp), 就放行
                        ---> 如果请求的是action,才执行Action(的过程)
               
               3. 如果访问的是struts的action,   执行:execute.executeAction(request, response, mapping);
                    (Action创建、拦截器的调用)

               4. ConfigurationManager  配置管理器类,管理各配置文件

               5. 根据配置管理器对象, 创建Action的代理 , 通过Action的代理,创建Action实例!

               6. 再依次默认的18个拦截器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值