1. 程式人生 > >Struts2工作原理和執行流程圖

Struts2工作原理和執行流程圖

過濾器 map filters play servle 同時 cati 通過 spa

在struts2的應用中,從用戶請求到服務器返回相應響應給用戶端的過程中,包含了許多組件如:Controller、ActionProxy、ActionMapping、Configuration Manager、ActionInvocation、Inerceptor、Action、Result等。下面根據 struts2.0體系架構圖來解析這些組件之間的聯系。

技術分享

    1. 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求 (客戶端提交一個HttpServletRequest請求。)
    2. 請求被提交到一系列的過濾器(Filter)。如(ActionContextCleanUp、其他過濾器(SiteMesh等)、 FilterDispatcher。註意:這裏是有順序的,先ActionContext CleanUp,再其他過濾器(Othter Filters、SiteMesh等),最後到FilterDispatcher。FilterDispatcher是控制器的核心,就是MVC的Struts 2實現中控制層(Controller)的核心。
    3. FilterDispatcher詢問ActionMapper是否需要調用某個Action來處理這個(HttpServlet Request)請求,如果ActionMapper決定需要調用某個Action,FilterDispatcher則把請求的處理交給ActionProxy。
    4. ActionProxy通過Configuration Manager(struts.xml)詢問框架的配置文件,找到需要調用的Action類。
    5. ActionProxy創建一個ActionInvocation實例,同時ActionInvocation通過代理模式調用Action。但在調用之前,ActionInvocation會根據配置加載Action相關的所有Interceptor(攔截器)。
    6. Action執行完畢後,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果result。

技術分享

Struts2工作原理和執行流程圖