Struts2的工作流程和容易忽略的問題

2021-06-18 11:00:06 字數 990 閱讀 9358

工作流程:

1,客戶端提交乙個httpservletrequest請求

2,請求經過一系列的filter的處理(actioncleapup,filterdispatcher);

3, filterdispatcher是struts2的核心控制器,通常這是最後乙個過濾器;

6 actionproxy通過configuration manager訪問struts.xml;

7 actionproxy 建立乙個actioninvocation例項,而actioninvocation通過**模式呼叫action,(注意呼叫前會載入相關的所有interceptor)

8,action執行完畢,返回給result字串,此時再按相反的方向通過interceptor***

9,最後actioninvacation負責根據struts.xml配置的result元素,找到返回值相應的result,決定返回的檢視;

設計模式的角度:mvc的思想相似與觀察者模式;在觀察模式中,觀察者和被觀察者是兩個對等的物件;在mvc思想中,被觀察者往往只是資料體,而觀察者是檢視;

注意;經典的mvc與web應用中的mvc也有差別,主要原因是web應用時一種基於htpp請求/響應模式的,對於http的請求響應,如果使用者不對應用發出請求,檢視無法自動更新。

mvc架構的底層機制是:核心servlet或filter接受到使用者請求後,通常會對使用者進行簡單的預處理(解析,封裝引數)然後通過反射建立action例項,並呼叫action指定的方法來處理使用者的請求,但是如果servlet或者filter攔截了使用者的請求,就會通過下面的兩種方式建立action例項;

a: 通過配置檔案,可以配置login.action對應使用loginaction類《這樣mvc架構就能建立物件;

b:利用約定:例如:核心控制器收到regist.action請求後,將呼叫action類來處理請求。

struts2工作流程

1 客戶端傳送請求 2 請求先通過actioncontextcleanup filterdispatcher 6 actionproxy建立乙個actioninvocation的例項 7 actioninvocation呼叫真正的action,當然這涉及到相關 的呼叫 8 action執行完畢,ac...

struts2工作流程

圖2.1 struts2.0體系架構圖 針對上節體系架構圖,下面分步說明執行流程 客戶端初始化乙個指向 servlet 容器 例如 tomcat 的請求 這個請求經過一系列的過濾器 filter 這些過濾器中有乙個叫做 actioncontextcleanup 的可選過濾器,這個過濾器對於 stru...

struts2工作流程

1.客戶端發出乙個httpservletrequest請求,這個請求經過一系列的過濾器filter 如actioncontextcleanup等 這些過濾器最終會呼叫filterdispatcher類 現在是strutsprepareexcutefilter 的serviceaction方法,fil...