這個圖幾乎每本書裏面都有,我們應該能夠做到能夠自己把這張圖畫出來,然後根據自己的畫圖的過程敘述其工作的流程。
struts2的工作流程如下:
1、客戶端向web容器(如tomcat)發送一個請求。
2、請求經過一系列的過濾器過濾並傳遞給FilterDispatcher(控制器的核心,是一個servlet過濾器)。
3、FilterDispathcher詢問ActionMapper是否需要調用某個Action來處理這個請求,如果需要調用,FilterDispatcher則會把請求的處理交給ActionProxy。
4、ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調用的Action類。
5、ActionProxy創建一個ActionInvocation的實例,同時ActionInvocation通過代理模式調用action。但是在調用之前或之後,ActionInvocation會根據配置加載相關的攔截器。
6、Action執行完畢後,ActionInvocation負責根據struts.xml的配置找到邏輯視圖,由邏輯視圖得到物理視圖,並把物理視圖返還給客戶端。