MVC模式的特點和Struts各個組件同MVC的對應關係是什麼

來源:互聯網
上載者:User

MVC是Model-View-Controller的簡寫。Model 代表的是應用的商務邏輯(通過JavaBean,EJB組件實現), View 是應用的表示面(由JSP頁面產生),Controller 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行互動和重用

 

優點:

1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的複用。

概括來說,分層式設計可以達至如下目的:分散關注、鬆散耦合、邏輯複用、標準定義。

缺點:

“金無足赤,人無完人”,分層式結構也不可避免具有一些缺陷:
1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此擷取相應的資料,如今卻必須通過中介層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在展示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的商務邏輯層和資料訪問層中都增加相應的代碼。

關於第一個缺點,完全可以通過系統的緩衝機制來減小對效能的影響。第二個缺點,我想只能通過採用一些設計模式來得到改善吧。

Struts工作原理
MVC即Model-View-Controller的縮寫,是一種常用的設計模式。MVC   減弱了商務邏輯介面和資料介面之間的耦合,以及讓視圖層更富於變化。
Struts   是MVC的一種實現,它將   Servlet和   JSP   標記(屬於   J2EE   規範)用作實現的一部分。Struts繼承了MVC的各項特性,並根據J2EE的特點,做了相應的變化與擴充。
控制:有一個XML檔案Struts-config.xml,與之相關聯的是Controller,在Struts中,承擔MVC中Controller角色的是一個Servlet,叫ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts的HTTP請求的進入點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充   Action   From(通常稱之為FromBean),並傳給動作類(通常稱之為ActionBean)。動作類實現核心商業邏輯,它可以訪問java   bean   或調用EJB。最後動作類把控制權傳給後續的JSP   檔案,後者產生視圖。所有這些控制邏輯利用Struts-config.xml檔案來配置。
視圖:主要由JSP產生頁面完成視圖,Struts提供豐富的JSP   標籤庫:   Html,Bean,Logic,Template等,這有利於分開表現邏輯和程式邏輯。
模型:模型以一個或多個java   bean的形式存在。這些bean分為三類:Action   Form、Action、JavaBean   or   EJB。Action   Form通常稱之為FormBean,封裝了來自於Client的使用者請求資訊,如表單資訊。Action通常稱之為ActionBean,擷取從ActionSevlet傳來的FormBean,取出FormBean中的相關資訊,並做出相關的處理,一般是調用Java   Bean或EJB等。
流程:在Struts中,使用者的請求一般以*.do作為請求服務名,所有的*.do請求均被指向ActionSevlet,ActionSevlet根據Struts-config.xml中的配置資訊,將使用者請求封裝成一個指定名稱的FormBean,並將此FormBean傳至指定名稱的ActionBean,由ActionBean完成相應的業務操作,如檔案操作,資料庫操作等。每一個*.do均有對應的FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.