【摘要】J2EE(Java 2 Platform Enterprise Edition)平臺(tái),被設(shè)計(jì)來支持多層結(jié)構(gòu),降低了多層設(shè)計(jì)的復(fù)雜性和開發(fā)應(yīng)用的費(fèi)用,縮短了產(chǎn)品投放市場(chǎng)的時(shí)間。本文主要分析了J2EE平臺(tái)及MVC設(shè)計(jì)模式,供同類開發(fā)研究參考。
【關(guān)鍵詞】J2EE;Web應(yīng)用;MVC
引言
Java語言的簡(jiǎn)單性和Internet/Intranet爆炸式的增長(zhǎng),使Java被廣泛應(yīng)用以實(shí)現(xiàn)多種類型的Web系統(tǒng),實(shí)際上,一個(gè)Web應(yīng)用系統(tǒng)由采用不同的技術(shù)的人員協(xié)同開發(fā),沒有統(tǒng)一的Java技術(shù)標(biāo)準(zhǔn),他們各自設(shè)計(jì)出的信息產(chǎn)品難以相互兼容,為此Sun公司在1999年推出J2EE平臺(tái),該平臺(tái)針對(duì)各種組件和服務(wù)架構(gòu)等設(shè)有統(tǒng)一的標(biāo)準(zhǔn),能滿足當(dāng)前Web應(yīng)用系統(tǒng)開發(fā)的需求。
1.J2EE平臺(tái)架構(gòu)
J2EE平臺(tái)屬于現(xiàn)在主流架構(gòu)中的一種,其主要是可以提供中間層的集成框架以便滿足沒有很多費(fèi)用但是需要較高的擴(kuò)展性、可靠性和可用性的應(yīng)用要求。J2EE平臺(tái)主要是以組件——容器模型為基礎(chǔ),針對(duì)應(yīng)用系統(tǒng)的部署與開發(fā)進(jìn)行了規(guī)范與簡(jiǎn)化,進(jìn)而提高了可移植性、安全性及再用價(jià)值。J2EE平臺(tái)的核心價(jià)值是可以為某些特定組件創(chuàng)造一個(gè)具備統(tǒng)一標(biāo)準(zhǔn)的運(yùn)行環(huán)境。這些組件是一個(gè)能夠部署的程序模塊,它們?cè)贘2EE平臺(tái)中以某種方式進(jìn)行運(yùn)行。在J2EE平臺(tái)之中,各個(gè)組件都是不能夠直接進(jìn)行訪問的,它們是通過平臺(tái)中的某些方法與協(xié)議來進(jìn)行相互的調(diào)用。一個(gè)以J2EE為基礎(chǔ)的服務(wù)器,能夠支持一種或者多種容器,一般有兩種:Web容器:一種服務(wù)程序,為應(yīng)用服務(wù)器(Jsp,Servlet)。提供一個(gè)運(yùn)行環(huán)境,簡(jiǎn)化JSP網(wǎng)頁,調(diào)用及管理Java Servlet和JavaServer Pag的存活期。EJB容器:加載EJB組件并管理其運(yùn)行,只需要將符合J2EE標(biāo)準(zhǔn)的EJB放進(jìn)這個(gè)容器,這個(gè)容器就會(huì)立刻對(duì)其進(jìn)行管理,而且能夠通過現(xiàn)有的接口取得系統(tǒng)級(jí)別的服務(wù),例如事務(wù)管理,目錄服務(wù),容錯(cuò)性,資源緩沖池以及安全性。它們之間的關(guān)系如圖1所示:
2.J2EE的優(yōu)點(diǎn)
①產(chǎn)品開發(fā)的高效性: J2EE允許開發(fā)人員把那些很繁瑣但是比較通用的服務(wù)端任務(wù)交給相應(yīng)的供應(yīng)商去完成。以便技術(shù)人員能夠更快的創(chuàng)建新的應(yīng)用和系統(tǒng),縮短產(chǎn)品投入市場(chǎng)的時(shí)間,降低開發(fā)費(fèi)用。②支持異構(gòu)環(huán)境:基于J2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。J2EE平臺(tái)也支持客戶從其他公司訂購的和J2EE兼容的組件,將其部署在異構(gòu)環(huán)境當(dāng)中,這樣可以有效降低自己定制整體方案的成本。③高度伸縮性:J2EE平臺(tái)提供了各種各樣的負(fù)載平衡策略??梢酝黄葡到y(tǒng)中的各種瓶頸,從而達(dá)到多臺(tái)服務(wù)器共同部署的效果。并且能夠聯(lián)合數(shù)千處理器共同部署,使系統(tǒng)能夠達(dá)到高度伸縮的性能,以便適應(yīng)以后商業(yè)應(yīng)用的要求。
3.J2EE組件
組件(component)被裝配在一個(gè)J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對(duì)其進(jìn)行管理。J2EE平臺(tái)支持的組件種類分別是:Web組件、EJB組件、JavaBeans組件、Applet及客戶組件。其中客戶組件和Applet、JavaBeans運(yùn)行在客戶端,而Web組件和EJB運(yùn)行在服務(wù)器端??蛻艚M件:是一種獨(dú)立的Java程序,既可以基于Web方式,也可以基于傳統(tǒng)方式。Applet、JavaBeans組件:由Java語言寫成的可重用組件,提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,不用擔(dān)心任何改變。EJB組件:術(shù)語為企業(yè)Bean,是可伸縮的,事務(wù)性的,多用戶安全的。Web組件:動(dòng)態(tài)地處理請(qǐng)求并作了響應(yīng),為基于Web的應(yīng)用程序生成用戶界面。
4.MVC設(shè)計(jì)模式
MVC的核心價(jià)值是能夠做到三層或者多層的松散耦合,它是把一個(gè)應(yīng)用系統(tǒng)分成三個(gè)組件:①M(fèi):是應(yīng)用程序中處理數(shù)據(jù)邏輯的部分,通常是用于在數(shù)據(jù)庫當(dāng)中存取數(shù)據(jù)。②V:是應(yīng)用程序中處理數(shù)據(jù)顯示的部分,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。③C:是應(yīng)用程序中處理用戶交互的部分,通常控制器是用于從視圖中讀取數(shù)據(jù),控制用戶的輸入,并且向模型傳遞數(shù)據(jù)。M—V—C之間的關(guān)系如圖2所示:我們?cè)趫D2中可以看出,MVC模式的工作程序是,首先用戶的請(qǐng)求交由控制器來接收,并且判斷應(yīng)當(dāng)選擇哪個(gè)模型來對(duì)其進(jìn)行處理,之后模型調(diào)用業(yè)務(wù)邏輯開始處理用戶請(qǐng)求,處理好之后返回?cái)?shù)據(jù),最后控制器用對(duì)應(yīng)的視圖來返回?cái)?shù)據(jù),并且利用表示層來呈現(xiàn)給用戶。
5.J2EE網(wǎng)絡(luò)平臺(tái)中MVC設(shè)計(jì)模式的應(yīng)用
MVC設(shè)計(jì)模式是一種可以進(jìn)行分離數(shù)據(jù)維護(hù)以及數(shù)據(jù)表現(xiàn)的方式,在J2EE中加入MVC設(shè)計(jì)模式,有利于將應(yīng)用細(xì)分成為合理的組件,以便于開展系統(tǒng)的擴(kuò)充、維護(hù)以及系統(tǒng)的開發(fā)?;贘2EE與MVC設(shè)計(jì)模式的系統(tǒng)模型如圖3所示,這個(gè)模型參考了模型2的設(shè)計(jì)思路,它的技術(shù)原理為:將Microsoft SQL Server,Oracle,Sybase等企業(yè)級(jí)數(shù)據(jù)庫系統(tǒng)作為后臺(tái)的數(shù)據(jù)庫,將Servlet等高性能服務(wù)端程序作為后臺(tái)總的控程序,前臺(tái)運(yùn)行JSP頁面,Servlet主要是用來接受用戶輸入,分別調(diào)用不同的JSP頁面向?yàn)g覽器返回信息,JSP/Servlet通過HTTP連接于服務(wù)器端與瀏覽器端傳輸信息;JSP/Servlet并不是利用JDBC技術(shù)來直接訪問數(shù)據(jù)庫系統(tǒng),而是將數(shù)據(jù)傳送給EJB組件,然后讓EJB組件對(duì)數(shù)據(jù)庫再進(jìn)行操作,這樣就能夠封裝系統(tǒng)內(nèi)部的數(shù)據(jù)。EJB與JavaBean組件還能夠?qū)⑹聞?wù)進(jìn)行細(xì)分至其他組件之中進(jìn)行處理,最后將數(shù)據(jù)庫返回來的結(jié)果,由JSP/Servlet傳遞到前端進(jìn)行顯示。
參考文獻(xiàn)
[1]陸榮幸等著.J2EE平臺(tái)上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn).計(jì)算機(jī)應(yīng)用研究,2003.3.
[2]王向東.基于J2EE分布式系統(tǒng)的持久性框架設(shè)計(jì)策略的研究.廣西大學(xué)碩士論文,2003.
作者簡(jiǎn)介
皮燦軍,女,本科,講師,研究方向?yàn)橛?jì)算機(jī)軟件.