學習模型-視圖-控制器MVC模式

來源:互聯網
上載者:User

標籤:知識庫   應用伺服器   關注   win   自己   struts架構   容器   web服務   使用者輸入   

MVC簡介

MVC開始是存在於傳統型程式中的,M是指業務模型,V是指使用者介面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式。MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程式的模式:

Model(模型)表示應用程式核心(比如資料庫記錄列表)。

View(視圖)顯示資料(資料庫記錄)。

Controller(控制器)處理輸入(寫入資料庫記錄)。

MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。

Model(模型)是應用程式中用於處理應用程式資料邏輯的部分。
  通常模型對象負責在資料庫中存取資料。

View(視圖)是應用程式中處理資料顯示的部分。
  通常視圖是依據模型資料建立的。

Controller(控制器)是應用程式中處理使用者互動的部分。
  通常控制器負責從視圖讀取資料,控制使用者輸入,並向模型發送資料。

 

 

 

Java Web應用程式的主要組件

 

1.Servlet組件

Servlet運行於Web容器中,如Tomcat,它可以被Web容器動態載入,接收瀏覽器請求,調用其他組件處理請求,然後把處理結果返回。

當瀏覽器訪問某個Servlet時,Web容器將會建立一個ServletRequest對象和ServletResponse對象,並且把使用者的請求資訊封裝在ServletRequest對象中。然後把這兩個對象作為參數傳輸給Servlet的特定方法中。在該方法中處理請求,把處理結果封裝在ServletResponse對象中,返回給Web容器。最後Web容器把結果返回到瀏覽器去解析、顯示。

2.JSP組件

JSP是一種動態網頁技術。它把HTML頁面中加入Java指令碼,以及JSP標籤構成JSP檔案。當瀏覽器請求某個JSP頁面時,Tomcat會把JSP頁面翻譯為Java檔案。然後將它編譯為class檔案,接著執行它,把產生的HTML頁面返回到用戶端顯示。

3.JavaBean組件

JavaBean組件是一種符合特定規範的Java對象。在JavaBean組件中定義一系列的屬性,並且每個屬性都提供setter和getter方法,這樣就可以使用該組件儲存一些中間資料。例如ServletRequest的請求資訊、從資料庫中查詢出來的資訊等。

4.EJB組件

Enterprise Java?Bean(EJB)組件是伺服器端的Java組件。該組件基於標準分布式對象技術、CORBA和RMI等技術,用於實現企業級應用的額商務邏輯。

5.XML語言

XML(Extensible Markup Language)是一種用來建立自訂標籤的標記語言。

6.Web伺服器和應用伺服器

Web伺服器用來處理HTTP請求,並返回HTTP資料。它主要用來和瀏覽器進行互動,給使用者提供服務。應用伺服器可以被Web伺服器調用,進行商務邏輯的處理。它返回的資料被Web伺服器組織為HTML格式,然後返回到瀏覽器去解析。

 

 

Java Web解決方案(開發方法)



JSP+JAVABEAN開發模式:
    特點:該模式將商務邏輯與頁面表現進行分離,在一定程度上增加了程式的可調試性和維護性。
    缺點:頁面將控制與顯示集於一身。
    結論:簡單,適合小型項目的快速構建與運行。

JSP+Servlet+JavaBean開發模式:
    特點:JSP作為視圖,來表現頁面;Servlet作為控制器,控製程序的流程並調用業務進行處理;JavaBean封裝了商務邏輯。遵循了MVC設計模式。
    缺點:沒有統一的開發架構導致開發週期長。

Struts開發方案:
    特點:成熟的MVC開發架構。
    構成:控制器:ActionServlet 組件:Struts架構的中央控制器。

RequestProcessor 組件:每個子模組都具有的要求處理常式。
  Action 組件:業務代理,它將調用模型進行一項具體的商務邏輯處理。
  視圖:主要由JSP頁面構成還包括HTML文檔;標準標籤庫(JSTL)和Struts標籤庫;JavaScript指令碼和CSS樣式;多媒體檔案;訊息資源檔;ActionForm類。
模式:通常在Structs中使用其他模型組建來實現商務邏輯。如:JavaBean技術、EJB技術、Hibernates設計模式。
結論:對於一些大型的項目,Struts架構會提高開發效率,並對後期的維護有很大好處。

Spring開發方案:
  特點:擁有IOC和AOP兩種先進的技術為基礎,完美的簡化了企業級開發的複雜度,是一個理想的Web程式架構。
  構成:核心模組:實現了IOC模式,包含BeanFactory類負責對JavaBean的配置與管理。
  上下文模組:繼承BeanFactory類,添加了事件處理、國際化、資源裝載、透明裝載以及資料校正等功能,提供了架構式的Bean訪問方式和很多企業級功能。如:JNDI訪問、支援EJB、遠程調用、繼承模板架構、E-mail和定時任務調度等。
   AOP模組:提供了用標準Java語言編寫的AOP架構,使應用程式拋開EJB的複雜性,但擁有傳統EJB的關鍵功能。
  DAO模組:提供了JDBC的抽象層,並且提供了對聲明式事物和編程式事務的支援。
  Web模組:建立在上下文模組基礎之上,提供了Servlet監聽器的Context和Web應用的上下文。
  對現有的Web架構如:JSF、Tapestry、Struts等提供了整合。
  O/R映射模組:提供了對現有ORM架構的支援如Hibernate。
  Spring MVC架構:建立在核心模組之上,嫩夠適應於多種多視圖、模板技術、國際化和驗證服務,實現控制邏輯和商務邏輯清晰的分離。

Struts+HIbernate開發方案:
    特點:利用Struts的MVC設計模式,與Hibernate持久化對象組成的開發方案。

Struts+Spring+Hibernate開發方案:
    特點:Struts負責展示層,Spring負責邏輯層的業務,Hibernate持久層中資料庫的操作,組成的開發方案。

 

 

 

常用的Java Web的MVC架構

 

Struts是一個基於Sun J2EE平台的MVC架構,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自訂標籤和資訊資源(message resources)整合到一個統一的架構中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間。

      Spring MVC應該最常用的。 Spring Web MVC架構( 簡稱Spring MVC)是一個豐富的模型視圖控制Web架構。使用 Dispatcher Servlet發布請求處理,他使用可配置的處理常式映射,視圖解析和主題解決方案。

      Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。

Swing

圖形使用者介面(GUI)庫最初的設計目的是讓程式員構建一個通用的GUI,使其在所有的平台上都能夠正常的顯示。但是比較遺憾的是AWT產生的是在各系統看來都同樣欠佳的圖形使用者介面,JAVA1.2為老的java1.0 AWT添加了Java基礎類(JFC),這是一個被稱為“Swing”的GUI的一部分。Swing是第二代GUI開發工具集,AWT採用了與特定平台相關的實現,而絕大部分Swing組件卻不是。Swing是構築在AWT上層的一組GUI組件的集合,為了保證可移植性,它完全用Java語言編寫,與AWT相比,Swing提供了更完整的組件,引入了許多新的特性和能力。Swing提供了更多的組件庫,如:JTable,JTree,Jcombox。Swing也增強了AWT中組件的功能。正是因為Swing具備了如此多的優勢所以我們以後在開發中都使用Swing。JComponent類是Swing組件的基類,而JComponent繼承自Container類,因此,所有的Swing組件都是AWT的容器。Swing採用了MVC設計模式。 

學習模型-視圖-控制器MVC模式

聯繫我們

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