標籤:知識庫 應用伺服器 關注 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模式