Struts2 工作原理

2021-06-03 17:57:26 字數 1325 閱讀 8669

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

2 這個請求經過一系列的過濾器(filter)(這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助,例如:sitemesh plugin) 

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

6 actionproxy建立乙個actioninvocation的例項。 

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

在上述過程中所有的物件(action,results,interceptors,等)都是通過objectfactory來建立的

struts2優缺點(即為什麼要用struts2)

struts2就會自動的進行驗證。還有很多,比如國際化資源檔案等。 

struts2的開發中來,如果你重來沒有用過任何框架,你也可以通過快速的學習,加入到struts2的應用開發中來,因為它足夠的簡單。 

大量的***:

struts2本身提供了大量的可重用的***,比如型別轉換***,很多時候我們從頁面取得引數,這個時候它是string型別的,我們需要手動。

基於外掛程式的框架:

struts2是乙個基於外掛程式的框架,社群中提供了很多實用的外掛程式,比如jfreechat/json等等,使用這些外掛程式可以簡化我們的開發,加快開發進度。

struts2最大的缺點莫過於在好多web伺服器上支援不好,例如在websphere5.5,weblogic8.1及以前版本支援非常查,需要用最新的。

多種檢視的支援:

多種檢視的支援:jsp,freemarker,veloctiy,只要你願意,你甚至可以通過輕鬆的改造讓它支援pdf,同乙個專案中你可以支援多種檢視。

更加的模組化:

與struts1.x 相比,struts2更加的模組化,可以輕鬆將配置資訊按功能界限拆分成多個檔案,便於管理和團隊協作開發。

與spring的整合:

與struts1.x相比,struts2不必再自己編寫singleton,進一步的降低了程式間的耦合性,就struts2內部本身而言,降低了框架本身的偶合性。

基於pojo易於測試:

在struts1.x中我需要mock出這兩個http物件,使我們很難編寫action的單元測試,與struts1.x相比,struts2的action 不再依賴於

httpservletrequest和httpservletresponse物件,使我們能夠更方便的針對action編寫單元測試。

struts2 工作原理

struts2並不是乙個陌生的web框架,它是以webwork的設計思想為核心,吸收struts1的優點,可以說 struts2是struts1和webwork結合的產物。struts2 的工作原理圖 乙個請求在struts2框架中的處理分為以下幾個步驟 1.客戶端發出乙個指向servlet容器的請...

struts2工作原理

struts2工作原理 程式設計原理 使用者傳送http請求 web伺服器 tomcat 載入web.xml web部署描述檔案 檔案 執行struts核心控制器 strutsprepareandexecutefilter或者filterdispatcher 載入struts.xml檔案,通過請求a...

struts2工作原理

闡述struts2的執行流程。struts 2框架本身大致可以分為3個部分 核心控制器filterdispatcher 業務控制器action和使用者實現的企業業務邏輯元件。核心控制器filterdispatcher是struts 2框架的基礎,包含了框架內部的控制流程和處理機制。業務控制器acti...