#struts2執(zhí)行過(guò)程
1. 客戶端初始化一個(gè)請(qǐng)求指向Servlet容器.
2. 容器讀web.xml,經(jīng)過(guò)一系列過(guò)濾器,最終到達(dá)StrutsPrepareAndExecuteFilter 核心控制器 (注意 : 原FilterDispatcher已經(jīng)被StrutsPrepareAndExecuteFilter替換).
3. StrutsPrepareAndExecuteFilter,init函數(shù)配置文件讀入
創(chuàng)建Dispacher對(duì)象
緊接著調(diào)用dispatcher.init() 函數(shù),按順序讀取default.properties, struts-default.xml, struts-plugin.xml, struts.xml, struts.properties
4. 執(zhí)行doFilte.
調(diào)用doFilter函數(shù)
5. 通過(guò)請(qǐng)求路徑查找相對(duì)應(yīng)的ActionMapping
查詢ActionMapping
比較URL與NameSpace與Action
6. 調(diào)用serviceAction函數(shù)
7. 動(dòng)態(tài)代理實(shí)例化ActionInvocation,ActionInvocation加載相對(duì)應(yīng)的所有攔截器
8.創(chuàng)建ActionProxy對(duì)象