MVC模式在Java Web應用程序中的實現

 1、MVC簡介:前端

  MVC架構是一個複雜的架構,其實現也顯得很是複雜。。Views能夠看做一棵樹,能夠用Composite Pattern來實現。Views和Models之間的關係能夠Observer Pattern體現。Controller控制Views的顯示,能夠用Strategy Pattern實現。Model一般是一個調停者可採用Mediator Pattern來實現。java

 MVC的產生:mysql

  MVC架構最先是smalltalk語言研究團提出的,應用於用戶交互應用程序中。smalltalk語言和java語言有不少類似性,都是面嚮對象語言,很天然的SUN在petstore(寵物店)事例應用程序中就推薦MVC架構做爲開發Web應用的架構模式。MVC架構是一種架構,其實須要其餘模式協做完成。在J2EE模式目錄中,一般採用service to worker模式實現,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式組成。而Struts只實現了MVC的View和Controller兩個部分,Model部分須要開發者本身來實現,Struts提供了抽象類Action使開發者能將Model應用於Struts框架中。web

 

2、Java Web應用程序的主要組件:sql

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格式,而後返回到瀏覽器去解析。

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

  1.JSP+JavaBean該模式將業務邏輯與頁面表現進行分離,在必定程度上增長了程序的可調試性和維護性。簡單,適合小型項目的快速構建與運行。

  2.JSP+javaBean+Serverlet:JSP做爲視圖,來表現頁面;Servlet做爲控制器,控制程序的流程並調用業務進行處理;JavaBean封裝了業務邏輯。遵循了MVC設計模式。

  3.JSP+Struts:成熟的MVC開發框架。

  4.Spring:創建在覈心模塊之上,嫩夠適應於多種多視圖、模板技術、國際化和驗證服務,實現控制邏輯和業務邏輯清晰的分離。                                                          

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

  6.JSP+Struts+Spring+Hibernate:Struts負責表示層,Spring負責邏輯層的業務, Hibernate持久層中數據庫的操做,組成的開發方案。

4、經常使用的java web的MVC框架

  1.Struts2:Struts 是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是Jakarta項目中的一個子項目,並在2004年3月成爲ASF的頂級項目。它經過採用JavaServlet/JSP技術,實現了基於Java EEWeb應用的MVC設計模式的應用框架,是MVC經典設計模式中的一個經典產品.

  2.Spring MVC:Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,能夠選擇使用Spring的SpringMVC框架或集成其餘MVC開發框架,如Struts1,Struts2等.

  3.Grails:Grails是一套用於快速Web應用開發的開源框架,它基於Groovy編程語言,並構建於Spring、Hibernate等開源框架之上,是一個高生產力一站式框架。

  4.JSF:JavaServer Faces (JSF) 是一種用於構建Java Web 應用程序的標準框架(是Java Community Process 規定的JSR-127標準)。它提供了一種以組件爲中心的用戶界面(UI)構建方法,從而簡化了Java服務器端應用程序的開發。因爲由Java Community Process (JCP) 推進,屬於Java EE 5中的技術規範,而受到了廠商的普遍支持。

  5.Tapestry:Tapestry並非一種單純的MVC框架,它更像MVC框架和模板技術的結合,它不只包含了前端的MVC框架,還包含了一種視圖層的模板技術,使用Tapestry徹底能夠與Servlet/JSP API分離,是一種很是優秀的設計。 經過使用Tapestry,開發者徹底不須要使用JSP技術,用戶只須要使用Tapestry提供的模板技術便可,Tapestry實現了視圖邏輯和業務邏輯的完全分離。

相關文章
相關標籤/搜索