zoukankan      html  css  js  c++  java
  • struts的工作流程

    -  一个请求过来,走前端控制器StrutsPrepareAndExecuteFilter
            -前端控制器是一个过滤器,过滤器中的核心方法是doFilter(),doFilter方法中首先处理了字符集,然后将request和response方法 放到ThreadLocal中
            ,表示线程安全
            -接下来,判断是否是一个action请求,如果是.action结尾的,那么继续走struts的流程;否则跳转视图
            -判断ActionMapping对象是否为空,如果为空,跳转视图;否则继续走流程
            -创建ActionProxy对象,在创建ActionProxy,创建了一个struts的核心对象ActionInvocation,ActionInvocation贯穿了struts的执行流程
            ,因为代理、目标、拦截器、结果都在ActionInvocation的实例变量位置上
            -代理对象调用ActionInvocation的初始化方法init方法,在这个方法中,创建真正的目标action。在创建目标对象的时候,使用的是struts2提供的
                对象工厂ObjectFactory,将创建好的action复制给ActionInvocation的成员变量
            -取得20的默认的拦截器,放到ActionInvocation对象的迭代器上
            -调用actionProxy对象的execute方法
            -ActionInvocation上的invoke会被调用
            -调用20个拦截器,拦截器执行完毕后,会调用目标对象的execute方法
            -目标对象的execute方法执行结束后,返回字符串,根据这个字符串,struts2的ObjectFactory对象会创建一个result对象,result对象指向具体视图
            -拦截器出栈,Response响应给客户端

  • 相关阅读:
    杨辉三角(hdu2032)——有待完善
    求平均成绩(hdu2023)
    绝对值排序(2020)——笔记待完善
    母牛的故事(hdu2018)——笔记待完善
    29.数据结构---栈,队列,数组,链表,哈希表
    16.PR将视频剪辑成任意形状
    28.集合1------List
    IDEA选中多行代码向左右移动缩进
    27.集合1------Collection
    IDEA显示单个文件结构
  • 原文地址:https://www.cnblogs.com/sharpest/p/7717757.html
Copyright © 2011-2022 走看看