2012-06-29 50 views
1

爲什麼支柱1.3我們必須處理的請求兩地分居類:爲什麼有兩個班在Struts的1.3處理請求,ActionServlet的和的RequestProcessor

- 其中的ActionServlet攔截請求並調用RequestProcessors過程作進一步處理
方法--RequestProcessor讀取XML文件,找到相應的處理程序和把手請求

我的問題是,爲什麼這是兩個不同的類? 我試圖在網絡和書籍上搜索,但沒有得到任何答案。

任何人都可以有任何想法嗎?請讓我知道

回答

2

ActionServlet基本上讀取您的struts-config.xml並創建一個ModuleConfig。此ModuleConfig是您的struts-config.xml的對象表示形式。 ActionServlet只是將您的HttpServletRequestHttpSerlvetResponse傳遞給RequestProcessor

RequestProcessor基本上從請求(通過ModuleConfig助手)標識Action創建ActionMapping(基於呼叫一種製成),並執行執行必要的行動來檢索ActionForward。從ActionForward開始,它將您的請求和響應委託給它,這就是整個Struts工作流程。

基本上,Struts的核心是通過RequestProcessorActionServlet只是初始化Struts,並將請求和響應傳遞給RequestProcessor

+0

嗨,精英,感謝您的回覆,但我想知道他們爲什麼不(他們(Struts開發人員)將這兩個任務合併到一個類中,爲什麼需要單獨的類? –

+0

因爲他們希望它是模塊化的。 RequestProcessor不僅處理Servlet,還包括插件,攔截器等。 –

+0

ok.t​​hanks精英紳士 –

0

RequestProcessor類是請求處理在Struts控制器環境中發生的實際位置。

當請求對象首先到達的ActionServlet類然後它調用底層的RequestProcessor類的過程方法。

那麼這個過程方法查找到的struts-config.xml文件,並試圖找到已經用它識別XML文件中的動作request.Once動作的名稱繼續的休息請求處理所需的步驟。

相關問題