Struts2的工作流程
Struts2工作原理及流程
Struts2框架的基本思想是采用MVC設計模式,即將應用設計成模型(Model)、視圖(View)和控制器(Control)三個部分;
那么Struts2框架中是如何實現MVC模式的呢?控制部分由DispatchFilter承擔,模型部分是由一系列的攔截器(Interceptors)、Action組件和ActionContext組件組成,視圖組件則是由Result組件組成;
那么Struts2框架是怎么工作的呢?
如當我們在瀏覽器的地址欄中輸入:http://localhost:8080/Struts/TestMvc/add.action,瀏覽器就會把這個請求發送給tomcat,tomcat接收到這個請求后,會檢查一下應該交給哪個web程序處理,現在是交給Struts去處理,然后Struts會去參考此程序下的配置文件web.xml,在web.xml中找到過濾器(Filter),如(ActionContextCleanUp、其他過濾器(SiteMesh等)、 FilterDispatcher),注意這里是有順序的,先ActionContextCleanUp,再其他過濾器(SiteMesh等)、最后到FilterDispatcher;
FilterDispatcher是控制器的核心,就是mvc中c控制層的核心,FilterDispatcher進行初始化并啟用核心 doFilter。FilterDispatcher詢問ActionMapper來決定這個請是否需要調用某個Action, 如果 ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給 ActionProxy ,ActionProxy通過struts.xml詢問框架的配置文件,找到需要調用的Action類和方法來處理這請求;
Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,并跳轉到相應頁面,最后返回HTTP響應到客戶端瀏覽器;
其實用最簡單的七個步驟:
1:客戶端在瀏覽器中輸入一個url地址;
2:這個url請求通過http協議發送給tomcat;
3:tomcat根據url找到對應項目里面的web.xml文件;
4:在web.xml里面會發現有struts2的配置;
5:然后會找到struts2對應的struts.xml配置文件;
6:根據url解析struts.xml配置文件就會找到對應的class;
7:調用完class返回一個結果result,根據struts.xml返回到對應的jsp;