Struts快速入門(一)

Struts快速入門:它能做什麼?它如何做?<o:p></o:p>

<o:p> </o:p>

本文選自《Practical J2EE Application Architecture》的第四章,作者是Nadir Gulzar,並且由McGraw-Hill/Osborne Media(www.osborne.com)20033月出版<o:p></o:p>

<o:p> </o:p>

Published on TheServerSide.com<o:p></o:p>

<st1:date month="11" day="4" year="2002">November 4, 2002</st1:date><o:p></o:p>

發佈於 TheServerSide.com<o:p></o:p>

2002114<o:p></o:p>

<o:p> </o:p>

簡介<o:p></o:p>

本文的目標是爲預期的Struts用戶介紹使用Struts的最大好處,並同時舉例說明它的配置和使用方法。我們將定義一個完全表述的架構的需求並且同時討論如何在Struts架構中實現這些需求。我們同樣也探討了Struts中實現的設計模式即控制器的和相關的輔助組件的語義。這些知識將會在設計與架構相互影響的組件的時候發揮作用,並且這也是爲擴展該框架以適合某個項目特殊要求的必需。本文補足了http://jakarta.apache.org/struts提供的資料。<o:p></o:p>

<o:p> </o:p>

MVC 結構<o:p></o:p>

MVC結構是一種分解一個應用系統至三個部分(模型,視圖,控制器)的方法。原本應用於圖形用戶界面(GUI)的輸、處理和輸出模型<o:p></o:p>

<o:p> </o:p>

<o:p></o:p>略,見原書圖。

<o:p> </o:p>

模型<o:p></o:p>

模型表示一個應用系統的數據並且包含訪問和管理該數據的邏輯。所有屬於應用系統持久狀態的數據都應該保存於模型的對象裏。模型提供的服務必須足夠普適於不同的終端。通過粗覽模型的公共方法列表,應該易於瞭解如何控制模型的行爲。一個模型聚集了相關的數據和操作以提供一個詳細而精確的服務;這些包裝並抽象在操作中的事物功能被模型化。一個模型的接口提供了訪問和更新模型狀態的、執行封裝在模型中的複雜進程的方法。模型服務被控制器訪問,用於查詢或使模型的狀態發生變化。當狀態發生變化時,模型會通報給視圖。<o:p></o:p>

<o:p> </o:p>

視圖<o:p></o:p>

視圖的責任是表現模型的狀態。表述語句封裝於視圖中,因此模型數據可以適合多種不同的終端。當模型中的變化傳達到視圖的時候,視圖會修改自己。視圖將用戶輸入傳遞到控制器。<o:p></o:p>

<o:p> </o:p>

控制器 <o:p></o:p>

控制器的任務是獲取並翻譯用戶輸入到動作並由模型執行。控制器的任務還有根據用戶輸入和執行結果選擇下一個視圖。在基於J2EE的應用系統中,MVC結構被用於分離由JavaBeansEJB表示的事物層功能和由JSP表示的表現層,中間經由基於Servlet的控制器。然而,控制器設計必須適合各種不同類型終端的輸入,包括來自Web終端的HTTP請求,無線終端的WML,供應商與業務夥伴的基於XML的文檔等。對於HTTP請求和任務範例,提交的HTTP請求被髮送到一個控制中心,依次解釋並委派該請求到適當的請求處理器。這也被作爲第二類MVC結構。請求處理器與開發者提供的架構結合起來,以實現對與模型有關聯的特定邏輯的請求。依靠這個交互的結果,控制器可以決定下一個視圖以產生恰當的反應。

 

Struts MVC 語義 <o:p></o:p>

我們從關鍵的Struts抽象概念開始,這是它MVC架構的核心。Struts使用Service to Worker模式實現了MVC模式。[Core]<o:p></o:p>

 

<o:p>(待續..)</o:p>

<o:p></o:p> 

<o:p>

<o:p>冰雲翻譯,轉載請告知。</o:p>

<o:p>[email protected]</o:p>

<o:p></o:p>

</o:p> 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章