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()。
注:本人是初學者,這是我從書中總結得到,不知道對大家有沒有幫助,望大神吐槽
轉載請注明出處,謝謝