在Struts實現MVC/Model 2方式中,擔任控制器(Controller)角色的是org.apache.struts.action.ActionServlet,它繼承自javax.servlet.http.HttpServlet,通常會直接使用ActionServlet,在web.xml中配置相關的組態,就如同配置一般的Servlet一樣,您也可以配置一些相關的初始參數給ActionServlet使用。
在MVC/Model 2的架構中,理想上客戶端不會直接要求資源或指定請求的JSP頁面,所有客戶的請求都必須發送至控制器,由控制器決定該轉發給哪一個物件進行處理、決定該由哪一個視圖頁面進行顯示與回應。
在Struts中,擔任控制器的是ActionServlet,所有的請求都發送給ActionServlet,對於ActionServlet來說,doGet()會將調用doPost(),所以無論請求是GET或POST在行為上都是相同的,ActionServlet藉由組態檔struts-config.xml知道如何分配物件來處理請求,這包括了org.apache.struts.action.ActionMapping、org.apache.struts.action.ActionForm、org.apache.struts.action.Action等物件的分配,struts-config.xml是整個Struts運作的重心。
ActionServlet會將處理的控制權暫時交給Action物件,在Action中,您可以藉由一些資料傳輸物件(Data Transfer Object)、輔助類別(Helper Class)等來完成業務請求,Action應當傳回ActionForward物件給ActionServlet,之後ActionServlet根據ActionForward來進行forward給視圖或include視圖(Viewer)的動作,由視圖顯示處理的結果。
Struts的視圖部份可以是靜態網頁、JSP網頁、Struts自訂標籤,Struts自訂標籤可以與Struts的一些物件及資源檔案合作使用,但也可以使用其它自訂標籤,像是JSTL、JSF等。
在Struts 1.1中新增org.apache.struts.action.RequestProcessor類別,有關於使用者請求的物件分配等動作已經大部份交由RequestProcessor來處理,下圖是ActionServlet接收到請求之後的一些主要動作,在之後的各主題說明中,您可以藉由這張圖您將可以瞭解struts-config.xml的組態設定意義,以及Struts運作的方式:
在MVC/Model 2的架構中,理想上客戶端不會直接要求資源或指定請求的JSP頁面,所有客戶的請求都必須發送至控制器,由控制器決定該轉發給哪一個物件進行處理、決定該由哪一個視圖頁面進行顯示與回應。
在Struts中,擔任控制器的是ActionServlet,所有的請求都發送給ActionServlet,對於ActionServlet來說,doGet()會將調用doPost(),所以無論請求是GET或POST在行為上都是相同的,ActionServlet藉由組態檔struts-config.xml知道如何分配物件來處理請求,這包括了org.apache.struts.action.ActionMapping、org.apache.struts.action.ActionForm、org.apache.struts.action.Action等物件的分配,struts-config.xml是整個Struts運作的重心。
ActionServlet會將處理的控制權暫時交給Action物件,在Action中,您可以藉由一些資料傳輸物件(Data Transfer Object)、輔助類別(Helper Class)等來完成業務請求,Action應當傳回ActionForward物件給ActionServlet,之後ActionServlet根據ActionForward來進行forward給視圖或include視圖(Viewer)的動作,由視圖顯示處理的結果。
Struts的視圖部份可以是靜態網頁、JSP網頁、Struts自訂標籤,Struts自訂標籤可以與Struts的一些物件及資源檔案合作使用,但也可以使用其它自訂標籤,像是JSTL、JSF等。
在Struts 1.1中新增org.apache.struts.action.RequestProcessor類別,有關於使用者請求的物件分配等動作已經大部份交由RequestProcessor來處理,下圖是ActionServlet接收到請求之後的一些主要動作,在之後的各主題說明中,您可以藉由這張圖您將可以瞭解struts-config.xml的組態設定意義,以及Struts運作的方式:
浙公网安备 33010602011771号