struts2的工作原理

2021-06-14 03:43:42 字數 1359 閱讀 5966

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 框架中繼承的標籤。

簡單地說:客戶端發出乙個請求,伺服器端 strutspreparedandexceutefilter接收請求,如果該請求是乙個以 .action 結尾請求,則struts2將請求**至相應的action,進行資料型別轉換,如果資料型別轉換出錯,則返回到 input 指定的結果頁面,如果資料型別轉換沒有出錯,則呼叫setxx 方法進行設值,如果使用了validate()驗證方法(或者是使用了驗證框架),則進行相應的驗證,如果驗證出錯,回到 input 指定的結果頁面,如果沒有使用驗證,或者驗證沒有出錯,則執行 execute() 方法,返回到相應的頁面

Struts2 工作原理

1 客戶端初始化乙個指向servlet容器 例如tomcat 的請求 2 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助,例如 sitemesh plugin 5 action...

struts2 工作原理

struts2並不是乙個陌生的web框架,它是以webwork的設計思想為核心,吸收struts1的優點,可以說 struts2是struts1和webwork結合的產物。struts2 的工作原理圖 乙個請求在struts2框架中的處理分為以下幾個步驟 1.客戶端發出乙個指向servlet容器的請...

struts2工作原理

struts2工作原理 程式設計原理 使用者傳送http請求 web伺服器 tomcat 載入web.xml web部署描述檔案 檔案 執行struts核心控制器 strutsprepareandexecutefilter或者filterdispatcher 載入struts.xml檔案,通過請求a...