Struts 2基礎知識,struts2基礎知識

來源:互聯網
上載者:User

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.