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響應給客戶端


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



Struts1的工作流程 struts1的工作流程 struts2的工作流程 struts2的工作流程 Struts2的工作流程 struts2的工作流程 Struts2的工作流程 【struts2】struts2工作流程 Struts2 -工作流程圖 Struts1.X整個工作流程
 
粤ICP备14056181号  © 2014-2021 ITdaan.com