1、MVC簡介前端
MVC(Model-View-Controller)模型-視圖-控制器,最先由Trygve Reenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代爲程序語言Smalltalk發明的一種軟件架構。MVC模式的目的是實現一種動態的程序設計,使後續對程序的修改和擴展簡化,而且使程序某一部分的重複利用成爲可能。除此以外,此模式經過對複雜度的簡化,使程序結構更加直觀。軟件系統經過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。java
在Smalltalk-80中的應用程序編程中:如何使用模型 - 視圖 - 控制器(MVC) [Burbeck92],史蒂夫·伯貝克( Steve Burbeck)描述了MVC的兩個變體:一個被動模型和一個主動模型。web
2、Java web 應用程序的經常使用組件數據庫
1.Serverlet編程
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架構
JavaBeans是Java中一種特殊的類,能夠將多個對象封裝到一個對象(bean)中。 特色是可序列化,提供無參構造器,提供getter方法和setter方法訪問對象的屬性。框架
4.EJB
企業級JavaBean(Enterprise JavaBean, EJB)是一個用來構築企業級應用的服務器端可被管理組件。Java企業版API(Java Enterprise Edition)中提供了對EJB的 規範。EJB是一個封裝有某個應用程序之業務邏輯服務器端組件。
5.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實現了視圖邏輯和業務邏輯的完全分離。