(1)Struts2是一個基於MVC設計模式的Web應用框架,在MVC設計模式中Struts2作為控制器(Controller)來建立模型與視圖的數據交互。 Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,使業務邏輯控制器與Servlet API完全脫離開。
(2)struts2運行原理如下:
<1>當WEB容器收到一個請求時,它將請求傳遞給一個標准的過濾器鏈(如ActionContentCleanUp)。
<2>FilterDispatcher被調用,它調用ActionMapper確定請求調用哪個Action,ActionMapper返回一個收集了Action信息的ActionMapping對象
<3>FilterDispatcher將控制權委派給ActionProxy,ActionProxy調用配置管理器(ConfigurationManager)從配置文件中讀取配置信息,然后創建ActionInvocation對象,ActionInvocation被創建的同時,填充了需要的所有的對象和信息,它在調用Acton之前會依次調用所用配置的攔截器(Intercepter)。
<4>一旦Action執行返回結果字符串,ActionInvocation負責根據struts.xml中的配置查找結果字符串對應的Result,然后執行這個Result,一般Resul會調用一些模板(JSP)來呈現頁面。
<5>之后攔截器會被再次執行(順序和Action執行之前相反),最后響應被返回給在web.xml中配置的哪些過濾器(FilterDispatcher等)。