Struts2介紹:
Struts2是基于mvc設計模式的web層框架,struts2作為控制器(Controller)來建立模型與視圖的數據交互,struts2以WebWork為核心,采用攔截器機制處理用戶的請求。
Struts2工作原理:
基于下圖來介紹:
?
當請求為:http://localhost:8080/Save.action,
(1)用戶發送Save請求經過一系列過濾器(ActionContextCleanUp是一種可選過濾器),到達Struts2的核心過濾器;
(2)Struts2的核心過濾器:struts2的2.1版本之前是FilterDispatcher,2.1版本之后是StrutsPrepareAndExecuteFilter,核心過濾器詢問ActionMapper是否調用Save這個Action
(3)ActionMapper決定調用名稱為Save的Action,核心過濾器將收到調用信息,將請求交給ActionProxy;
(4)ActionProxy通過ConfigurationManager去查找struts.xml文件,找到名稱為Save的Action;即:
struts2的執行流程,? ? ? ?
(5)找到之后,ActionProxy創建一個ActionInvocation的實列;
(6)ActionInvocation首先調用一系列攔截器,然后再調用Action的方法,并獲取到返回的結果,找到相應的jsp頁面,再反向調用攔截器;
(7)最后響應jsp頁面給用戶。
參考文章:https://www.jianshu.com/p/3f2f11cb7562
?