Struts 2基礎知識,struts2基礎知識
Struts 2概述
Struts架構四流行廣泛的一個MVC開源實現,而Struts 2是Struts架構的新一代產品,是將Struts 1和WebWork兩種技術進行相容、合并的全新的MVC架構。
Struts 2架構結構
Struts 2的架構結構與Struts 1差別巨大,Struts 2是以WebWork為核心,採用攔截器的機制對使用者的請求進行處理。Struts 2的攔截器機制使得使用者的商務邏輯控制器與Servlet API完全分離,商務邏輯控制器更像一個POJO(實體層)。
根據Struts 2架構圖可以大致瞭解其處理流程及步驟:
1、用戶端初始化一個指向Servlet容器(例如Tomcat)的請求;
2、這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對於Struts2和其他架構的整合很有協助,例如:SiteMesh Plugin);
3、接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action;
4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy;
5、ActionProxy通過Configuration Manager詢問架構的設定檔,找到需要調用的Action類;
6、ActionProxy建立一個ActionInvocation的執行個體。
7、ActionInvocation執行個體使用命名模式來調用,在調用Action的過程前後,涉及到相關攔截器(Intercepter)的調用。
8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 架構中繼承的標籤。在這個過程中需要涉及到ActionMapper。
Struts 2控制器
Struts 2控制器組件是其整個架構的核心,實際上,所有MVC架構都是以控制器組件為核心的,
核心控制器StrutsPrepareAndExecuteFilter是Struts 2架構的核心組件,實際上是一個servlet過濾器,作用於整個web應用程式,需要在web.xml中進行配置,如:
所在的檔案地址:
任何的MVC架構需要與web應用整合時都需要藉助web.xml設定檔。通常MVC架構只需要在web應用中載入一個核心控制器即可,對於Struts 2架構而言,就是載入器核心控制器。一個web應用只要載入核心控制器後就具有了Struts 2的準系統。
因為核心控制器是一個過濾器,所以在web.xml設定檔中使用<filter>及<filter-mapping>元素來配置核心控制器。核心控制器配置好後,當web應用啟動時就會載入該過濾器,並在運行過程中所有的請求都需要經過該過濾器過濾後才能進一步得到處理。
Action
Action是由使用者定義的業務控制器,代碼如下:
Action類中有一個execute()方法,該方法用於業務處理。實際上,Struts 2中起作用的業務控制器並不是使用者定義的Action,而是由Struts 2架構產生的ActionProxy代理,但是該ActionProxy代理是以使用者定義的Action為目標的。在配置一個Action時,必須指定該Action的實作類別,並定義該Action的處理結果與視圖資源之間的映射關係。
設定檔
當Struts 2架構產生ActionProxy代理時,需要訪問Struts 2的設定檔,該檔案中有使用者定義的Action相關的配置資訊。Struts 2的設定檔有以下兩種:
1、Struts.xml設定檔,用於配置Action相關資訊;
2、Struts.properties屬性檔案,用於配置Struts 2的全域屬性。
Struts.xml設定檔代碼:
建立一個Struts 2項目:
http://www.cnblogs.com/fengxiongZz/p/6498216.html