工作流程:
1.客戶端提交一個HttpServletRequest請求(action或JSP頁面)。
2.請求被提交到一系列Filter過濾器,如ActionCleanUp和FilterDispatcher等。
3.FilterDispatcher是Struts2控制器的核心,它通常是過濾器鏈中的最後一個過濾器。
4.請求被髮送到FilterDispatcher後,FilterDispatcher詢問ActionMapper時候需要調用某個action來處理這個Request。
5.如果ActionMapper決定需要調用某個action,FilterDispatcher則把請求交給ActionProxy進行處理。
6.ActionProxy通過Configuration Manager詢問框架的配置文件struts.xml,找到調用的action類。
7.ActionProxy創建一個ActionInvocation實例,通過代理模式調用Action。
8.action執行完畢後,返回一個result字符串,此時再按相反的順序通過Intercepter攔截器。
9.最後ActionInvocation實例,負責根據struts.xml中配置result元素,找到與之相對應的result,決定進一步輸出。