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攝像頭一般常見在台式...