structs2 工作原理

2021-08-20 06:52:38 字數 1202 閱讀 2294

乙個請求在struts2框架中的處理大概分為以下幾個步驟 

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來建立的。

actionproxy和actioninvocation

actionproxy是在xwork和真正的action之間充當**角色,在通過框架執行action的過程中,因為使用的是**而不是直接操縱物件,所以在**中封裝***、result等二外的**。actionproxy持有actioninvocation物件。actioninvocation代表了action執行的當前狀態。它持有***(按順序排列),action例項,結果對映和actioncontext.

actioncontext

objectfactory

它是負責構建核心框架物件的。使用者可以自己註冊自己的objectfactory實現來控制這些物件的例項化。使用方法:定製的objectfactory必須直接或者間接的繼承自com.opensymphony.xwork2.objectfactory類,並要求提供乙個預設的無引數的構造方法。註冊自己的objectfactory可以在classpath的根路徑下建立structs.properties,然後輸入下面的內容:::structs.obejctfactory=myobjectfactory

這樣就會把轉化成功了。

result

每乙個action執行都會返回乙個string型別的結果碼,用於從配置的result元素列表中選擇對應的result。result在structs.xml中配置。

structs2 的工作原理

actionproxy和actioninvocation actionproxy是在xwork和真正的action之間充當 角色,在通過框架執行action的過程中,因為使用的是 而不是直接操縱物件,所以在 中封裝 result等二外的 actionproxy持有actioninvocation物件...

Structs2工作流程

1 客戶端 client 向action髮用乙個請求 request 2 container通過web.xml對映請求,並獲得控制器 controller 的名字 3 容器 container 呼叫控制器 strutsprepareandexecutefilter或filterdispatcher ...

Structs2 命名空間

在學習structs2的過程中,遇到了namsapce,雖然比較好理解,但是在使用的過程中還是遇到些問題,便將其記錄下來。作用 為了解決包含同乙個action的問題,在相同的命名空間裡不能存在相同的action,但是不同的命名空間裡,可以存在相同的action。須知 structs2不支援單獨為ac...