天天看點

Struts2.1的運作流程的簡單分析(個人見解)

struts2.1的運作流程大緻分為以下幾個步驟:

1.使用者輸入url請求,該請求被strutsprepareandexecutefilter攔截,根據welcome-file屬性的設定跳轉到相應的jsp頁面。

2.使用者在jsp頁面發出的相應的處理請求。

3.該處理請求也會被strutsprepareandexecutefilter攔截,首先清理目前線程的actioncontext和dispatcher防止記憶體的洩露,接下來詢問actionmapper(action映射器)來決  定這個請求是否需要調用某個action,由于請求一般都是以structs2.1預設的擴充名“.action”結尾,是以strutsprepareandexecutefilter把請求的處理交給    actionproxy(action的代理)

4.actionproxy通過configuration

manager(配置管理器)詢問structs2.1的配置檔案structs.xml,找到需要調用的action類以及相應的命名視圖和實體映射視圖的映射關系

5.然後actionproxy會建立一個actioninvocation(action的執行環境)的執行個體,并建立相應action的執行個體來處理相應的請求

6.在action執行環境中首先調用的是structs2.1自帶的一系列内部攔截器或者使用者自定義的攔截器(如session過期驗證級通路權限驗證等),然後在調用validate()方法對表單字段進行有效性的驗證,驗證過程出錯可以調用addfielderror方法添加字段錯誤資訊,并跳轉到相應的錯誤處理頁面。如果驗證通過這調用指定action中的execute()。

注:本人是初學者,這是我從書中總結得到,不知道對大家有沒有幫助,望大神吐槽

轉載請注明出處,謝謝