struts2並不是乙個陌生的web框架,它是以webwork的設計思想為核心,吸收struts1的優點,可以說
struts2是struts1和webwork結合的產物。
struts2 的工作原理圖:
乙個請求在struts2框架中的處理分為以下幾個步驟:
1.客戶端發出乙個指向servlet容器的請求(tomcat);
2.這個請求會經過圖中的幾個過濾器,最後會到達filterdispatcher過濾器。
3.過濾器filterdispatcher是struts2框架的心臟,在處理使用者請求時,它和請求一起相互配合訪問struts2
的底層框架結構。在web容器啟動時,struts2框架會自動載入配置檔案裡相關引數,並轉換成相應的類。
需要用到的action。
4.如果找到需要呼叫的action,過濾器會把請求的處理交給actionproxy。actionproxy為action的**物件
。actionproxy通過configurationmanager詢問框架的配置檔案,找到需要呼叫的action類。
5.actionproxy建立乙個actioninvocation的例項。actioninvocation在actionproxy層之下,它表示了
action的執行狀態,或者說它控制的action的執行步驟。它持有action例項和所有的interceptor。
6.actioninvocation例項使用命名模式來呼叫,1. actioninvocation初始化時,根據配置,載入action相
關的所有interceptor。2. 通過actioninvocation.invoke方法呼叫action實現時,執行interceptor。在
呼叫action的過程前後,涉及到相關***(intercepetor)的呼叫。
7. 一旦action執行完畢,actioninvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果
通常是(但不總是,也可能是另外的乙個action鏈)乙個需要被表示的jsp或者freemarker的模版。在表
示的過程中可以使用struts2 框架中繼承的標籤。
struts2工作流程
1 客戶端傳送請求 2 請求先通過actioncontextcleanup filterdispatcher 6 actionproxy建立乙個actioninvocation的例項 7 actioninvocation呼叫真正的action,當然這涉及到相關 的呼叫 8 action執行完畢,ac...
struts2工作流程
圖2.1 struts2.0體系架構圖 針對上節體系架構圖,下面分步說明執行流程 客戶端初始化乙個指向 servlet 容器 例如 tomcat 的請求 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做 actioncontextcleanup 的可選過濾器,這個過濾器對於 stru...
struts2工作流程
1.客戶端發出乙個httpservletrequest請求,這個請求經過一系列的過濾器filter 如actioncontextcleanup等 這些過濾器最終會呼叫filterdispatcher類 現在是strutsprepareexcutefilter 的serviceaction方法,fil...