Struts2架構分析和執行機制

2021-07-04 05:44:05 字數 1988 閱讀 8581

1.在瀏覽器中輸入url位址後,會通過http協議傳送給tomcat,tomacat收到請求後檢視訪問的是哪個

2.之後會參考struts2_0100_introduction下的對應的web.xml檔案,將請求交給struts2filter去處理

(「/*」為這個專案中的所有檔案,所有的專案請求都會**捉)

3.filter會呼叫dofilter,參考struts.xml

(1)在參考struts.xml時首先會參考namespace

(2)之後找對應的action

(3)找對應的result

(4)找到對應的result後會將對應的請求給jsp檔案

(5)jsp檔案將內容反饋給客戶端

從圖中可以看出乙個請求在struts2中的處理過程如下:

1、客戶端初始化乙個指向servlet容器(例如tomcat)的請求;

2、這個請求經過一系列的過濾器(filter)(這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器, 這個

過濾器對於struts2和其他框架的整合很有幫助,例如:sitemesh plugin);

action;

5、actionproxy通過configuration manager詢問框架的配置檔案,找到需要呼叫的action類;

6、actionproxy建立乙個actioninvocation的例項。

7、actioninvocation例項使用命名模式來呼叫,在呼叫action的過程前後,涉及到相關***(intercepter) 的調

用。8、一旦action執行完畢,actioninvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常

是(但不總是,也可能是另外的乙個action鏈)乙個需要被表示的jsp或者freemarker的模版。在表示的過程中可以 使用

filterdispatcher是早期struts2的過濾器,後期的都用strutsprepareandexecutefilter了,如 2.1.6、

2.1.8。

strutsprepareandexecutefilter名字已經很能說明問題了,prepare與execute,前者表示準備,可以說是指

filter中

的init方法,即配製的匯入;後者表示進行過濾,指dofilter方法,即將request請求,**給對應的

action去處理。

可以把他拆分成strutspreparefilter和strut***ecutefilter,可以在這兩個過濾器之間加上我們自

己的過濾

器.!strutsprepareandexecutefilter是控制器的核心,就是mvc的struts 2實現中控制層(controller)的

核心。三個初始化引數:    

1、config引數:指定要載入的配置檔案。逗號分割。   

2、actionpackages引數:指定action類所在的包空間。逗號分割。   

3、configproviders引數:自定義配置檔案提供者,需要實現configurationprovider介面類。逗號分割。 

想想為什麼這麼麻煩,中間要經過一次中轉?

將請求和拿到的結果(檢視)分開,要想換成別的檢視直接配一下result就可以了,更靈活。和我mvc很像。

struts2 架構剖析

一 xwork2 struts2的基礎 struts2框架有兩部分組成,xwork和struts2。xwork是乙個命令模式框架,他是struts2的基礎。xwork提供很多核心功能ioc 控制反轉 容器,強大的表示式語言 資料型別轉換,驗證和可插入的配置。xwork框架的核心包括action re...

Struts2的執行原理和執行與原理

struts2 struts2的流程圖 執行機制 1 客戶端傳送請求 通過actioncontextloader呼叫filterdispatcher struts 5 action執行完畢,actioninvocation負責根據struts.xml的配置返回結果,並呈現給瀏覽器。執行原理 把請求交...

Linux的V4L2架構分析

一 linux的v4l2架構介紹 v4l2 的初衷是想為 linux video v4l2 的整體架構如下圖所示 video裝置 video裝置介面 l 攝像頭介面一般有 mipi csi 移動行業處理器介面聯盟定義的攝像頭數字序列介面,是當今主流的手機攝像頭介面。usb usb攝像頭一般常見在台式...