j2ee核心技術(shù)論文
J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,學(xué)習(xí)啦小編整理了j2ee核心技術(shù)論文,有興趣的親可以來(lái)閱讀一下!
j2ee核心技術(shù)論文篇一
J2EE技術(shù)淺析
摘要:J2EE平臺(tái)提供了一個(gè)多層結(jié)構(gòu)的分布式應(yīng)用程序模型,該模型具有重要組件的能力,基于擴(kuò)展標(biāo)記語(yǔ)言(XML)的數(shù)據(jù)交換,最適合于其商業(yè)和所需技術(shù)的產(chǎn)品組件,因此,有必要把J2EE架構(gòu)和核心技術(shù)簡(jiǎn)要闡述,以提高學(xué)習(xí)者的編程能力與企業(yè)人員的業(yè)務(wù)水平。
關(guān)鍵詞:J2EE WEB服務(wù) EJB
一、J2EE介紹
J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過(guò)去企業(yè)后端使用的信息產(chǎn)品彼此之間無(wú)法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。
目前,Java 2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺(tái)Micro版(Java 2 P1atform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺(tái)標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。
1.J2EE的核心概述
J2EE是一種利用Java 2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫一次、隨處運(yùn)行”的特性、方便存取數(shù)據(jù)庫(kù)的JDBC API、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠僚企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。
2.J2EE中間件
J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開發(fā)平臺(tái),J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持Enterprse JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。
二、J2EE架構(gòu)概述
1.B/S多層體系結(jié)構(gòu)
長(zhǎng)久以來(lái),C/S(客戶端朋艮務(wù)器)兩層結(jié)構(gòu)在軟件開發(fā)中廣泛應(yīng)用,給人們帶來(lái)相當(dāng)?shù)撵`活性。近年來(lái)網(wǎng)絡(luò)應(yīng)用的快速普及,以及業(yè)務(wù)處理要求的不斷提高,C/S模式逐漸暴露出以下架構(gòu)上的缺陷。
(1)對(duì)客戶端軟件的維護(hù)問(wèn)題.
(2)網(wǎng)絡(luò)傳輸數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性問(wèn)題.
(3)高負(fù)荷處理和平衡負(fù)載問(wèn)題等。
2.J2EE三層架構(gòu)
隨著網(wǎng)絡(luò)應(yīng)用技術(shù)的成熟,針對(duì)這一系列的問(wèn)題,基于多層框架(三層或以上)的B/S(Browser/Server)結(jié)構(gòu)應(yīng)運(yùn)而生。典型情況下,由表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層各自獨(dú)立組成所謂的“三層架構(gòu)”。其中,數(shù)據(jù)層又叫企業(yè)信息系統(tǒng)層、集成層或者持久化層,本書從技術(shù)角度采用持久化層的稱謂。J2EE架構(gòu)設(shè)想的分布式多層體系結(jié)構(gòu)如圖1所示。
圖1多層體系結(jié)構(gòu)
該體系的核心是EJB組件,EJB是J2EE分布式應(yīng)用的核心,但是一般的Web應(yīng)用并不要求實(shí)現(xiàn)分布式應(yīng)用,因此可以使用其他途徑,如Hibernate、JDO等對(duì)象關(guān)系映射(ORM,Object―Relation Mapping)工具,或直接使用JDBCAPl實(shí)現(xiàn)數(shù)據(jù)持久化。
(1)客戶端只需符合要求的通用瀏覽器(比如某系統(tǒng)要求IE5.5以上版本),就可以使用所有服務(wù),節(jié)省了客戶端軟件安裝和維護(hù)成本,從而有效降低部署費(fèi)用。
(2)客戶端(其實(shí)是表示層組件,這里只為和C/S模式對(duì)比理解)不再直接訪問(wèn)數(shù)據(jù)庫(kù),而通過(guò)中間業(yè)務(wù)邏輯層實(shí)現(xiàn)代理服務(wù),從而可以方便地進(jìn)行數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯組件進(jìn)化,各層次組件之間可以獨(dú)立變化。
(3)多層結(jié)構(gòu)可以方便地管理外部資源,各組件之間通過(guò)服務(wù)接口互相協(xié)作,可以使用各種優(yōu)化技術(shù)提高資源和服務(wù)的利用率,典型的應(yīng)用是資源池優(yōu)化技術(shù);
(4)錯(cuò)誤和性能降低局部化,單獨(dú)組件模塊的錯(cuò)誤和超載被最大限度的限制在本模塊內(nèi)部,維持整體服務(wù)的可用性。
三、J2EE實(shí)現(xiàn)構(gòu)架
3目前,在Java Web應(yīng)用中的主流框架是Sun的J2EE架構(gòu),本章在業(yè)務(wù)邏輯層一節(jié)中探討了J2EE多層分布式應(yīng)用模型。J2EE對(duì)持久層框架的實(shí)現(xiàn)提供了基本的實(shí)現(xiàn)架構(gòu)如圖2基本架構(gòu)??梢钥吹?,持久性框架是一組軟件服務(wù),將應(yīng)用與其使用和操作的數(shù)據(jù)源分離,隱藏訪問(wèn)這些數(shù)據(jù)源的APl。這些APl組件包括JDBC、JDO以及實(shí)體Bean等??蚣芡ㄟ^(guò)統(tǒng)一的DAO組件封裝這些具體的訪問(wèn)邏輯。在各層次之間通過(guò)實(shí)現(xiàn)Serializable接口的可序列化對(duì)象(值對(duì)象或者數(shù)據(jù)傳輸對(duì)象等),傳遞對(duì)象化數(shù)據(jù).本書的主題Struts框架位于頂端的表示層,它接受用戶的輸入和操作,傳遞請(qǐng)求和數(shù)據(jù)給業(yè)務(wù)邏輯層,接收返回的結(jié)果呈現(xiàn)給用戶界面。
圖2 J2EE實(shí)現(xiàn)構(gòu)架
1.EJB概述
EJB(Enterprise JavaBean,企業(yè)級(jí)JavaBean)組件體系是J2EE框架的核心組件之一,最初被設(shè)計(jì)為支持分布式對(duì)象計(jì)算,因此在EJB2.0以前的版本中EJB組件只有遠(yuǎn)程接口,直到EJB2.0才因?yàn)閷?shí)際應(yīng)用的需求,加入了本地接口。業(yè)界對(duì)EJB的評(píng)價(jià)主要源于其復(fù)雜程度,EJB并不是一個(gè)好學(xué)好用的組件。
(1)使用EJB的正當(dāng)理由:
a提供應(yīng)用層組件的集群;
b提供與CORBA客戶端的互操作:
c消費(fèi)JMS異步消息。
(2)可以考慮使用EJB的理由
a提供多線程解決方案;
b基于角色的訪問(wèn)權(quán)限控制;
c熟悉EJB架構(gòu)。
2.EJB類型
(1)實(shí)體Bean
實(shí)體Bean是J2EE核心的持久化組件,代表存儲(chǔ)在外部介質(zhì)中的持久化對(duì)象或者企業(yè)應(yīng)用系統(tǒng)資源,它代表實(shí)體”,必須實(shí)現(xiàn)javax.ejb.EntityBean接口。簡(jiǎn)單地說(shuō),實(shí)體Bean相當(dāng)于數(shù)據(jù)庫(kù)信息,但二者并不等價(jià)。因此可以理解為――個(gè)對(duì)象關(guān)系映射,不過(guò)這個(gè)對(duì)象關(guān)系映射身后有整個(gè)J2EE體系的支撐。
EJB2.0中,實(shí)體Bean分為BMP和CMP。
BMP是Bean--managed persistent'entity bean,中文就是Bean管理持久性實(shí)體Bean,它需要開發(fā)者自己編寫符合EJB編程規(guī)范的實(shí)現(xiàn)代碼,實(shí)現(xiàn)各種業(yè)務(wù)方法和管理方法,因此Bean-managed就是Bean接口自己編寫代碼實(shí)現(xiàn)持久性管理。
CMP是Container--managed persistent entity bean,中文容器管理持久性實(shí)體Bean,顧名思義就是開發(fā)者不用再自己編寫代碼來(lái)實(shí)現(xiàn)持久性管理,借助集成開發(fā)工具甚至基本不用寫代碼。CMP是EJB2.0增加的類型,有效地降低了系統(tǒng)開發(fā)的復(fù)雜程度,但是在性能上比編寫良好的BMP會(huì)稍有所下降。
(2)會(huì)話Bean
會(huì)話Bean分為有狀態(tài)會(huì)話Bean(Stateless Session Bean)和無(wú)狀態(tài)會(huì)話Bean(Staeless Session Bean)兩種,實(shí)現(xiàn)javax.ejb.SessionBean接口。在應(yīng)用中被用來(lái)完成一些業(yè)務(wù)操作,因此它代表的是“動(dòng)作”。不同的是,在有狀態(tài)會(huì)話Bean中可以保存狀態(tài),而無(wú)狀態(tài)會(huì)話Bean不能。因此,同一個(gè)無(wú)狀態(tài)會(huì)話Bean的實(shí)例之間完全相同,只能用來(lái)執(zhí)行通用操作。而有狀態(tài)會(huì)話Bean的實(shí)例各自帶有不同的屬性值,可以用來(lái)維持客戶會(huì)話,典型的應(yīng)用是購(gòu)物車。有狀態(tài)會(huì)話Bean的作用在一定程度上類似JSP開發(fā)中常用的Session。
(3)消息驅(qū)動(dòng)Bean
消息驅(qū)動(dòng)Bean(MDB,Message Driven Bean)是EJB2.0增加的類型,用來(lái)實(shí)現(xiàn)異步消息傳遞和處理機(jī)制,是實(shí)現(xiàn)JMS(Java Message Service,Java消息服務(wù))的基礎(chǔ)。JMS提供了一組標(biāo)準(zhǔn)的Java APl實(shí)現(xiàn)消息遞和處理。消息傳遞和處理有兩種方式:隊(duì)列模型和機(jī)遇主題的發(fā)布/訂閱機(jī)制。
隊(duì)列模型是將消息對(duì)象放到消息隊(duì)列中,監(jiān)聽該隊(duì)列的消息驅(qū)動(dòng)Bean取出消息進(jìn)行處理,類似手機(jī)短信的形式(短信是消息對(duì)象,手機(jī)短信信箱是消息隊(duì)列,機(jī)主是消息驅(qū)動(dòng)Bean實(shí)例)。
發(fā)布/訂閱機(jī)制則將消息分發(fā)給所有訂閱者,類似生活中的報(bào)刊訂閱。
四、小結(jié)
J2EE是java的核心技術(shù)之一,是大型企業(yè)和高等院校計(jì)算機(jī)相關(guān)專業(yè)學(xué)生所掌握的核心技術(shù)之一,是Java Web程序員必須在一定程度上了解和掌握的知識(shí)。明白EJB的架構(gòu)和類型,對(duì)科研人員更好的掌握其內(nèi)涵和原理有重要的理論價(jià)值和現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1]李剛.輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn).北京:電子工業(yè)出版社,2008.
[2]鄭阿奇.J2EE應(yīng)用實(shí)踐教程.北京:電子工業(yè)出版社,2009.
[3]楊中科.J2EE開發(fā)全程實(shí)錄(附光盤).北京:清華大學(xué)出版社,2007.
[4]蔡劍,景楠.Java Web應(yīng)用開發(fā).北京:清華大學(xué)出版社,2005.
[5]王毅,周峰,孫更新編著.J2EE經(jīng)典案例設(shè)計(jì)與實(shí)現(xiàn).北京:電子工業(yè)出版社,2007.
j2ee核心技術(shù)論文篇二
基于J2EE的應(yīng)用框架技術(shù)研究
摘 要:J2EE作為分布式架構(gòu)的企業(yè)級(jí)應(yīng)用平臺(tái),在企業(yè)的信息化建設(shè)中發(fā)揮出越來(lái)越重要的作用。一方面作為企業(yè)信息化應(yīng)用系統(tǒng)的開發(fā)工具,另一方面又作為企業(yè)信息化應(yīng)用系統(tǒng)的集成平臺(tái)?;贘2EE的Web應(yīng)用可以規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,提高系統(tǒng)的可移植性、可重用性。本文介紹框架技術(shù)的原理以及集成上述三種框架技術(shù)的Web應(yīng)用框架。
關(guān)鍵詞:J2EE;應(yīng)用框架;表示層;業(yè)務(wù)邏輯層;系統(tǒng)服務(wù);Hibernate
一、引言
J2EE是一種技術(shù)規(guī)范,是一個(gè)企業(yè)級(jí)的開發(fā)平臺(tái),它定義了整個(gè)標(biāo)準(zhǔn)的應(yīng)用體系結(jié)構(gòu)和一個(gè)部署環(huán)境。J2EE提供了對(duì)EJB(EnterpriseJavaBean)、JavaServlet、JSP(JavaServer Pages)以及XML(eXtensible MarkupLanguage可擴(kuò)展標(biāo)記語(yǔ)言)技術(shù)的全面支持。因此,基于J2EE的各種框架技術(shù)應(yīng)運(yùn)而生,這些框架存在于多層體系架構(gòu)的各層,如數(shù)據(jù)持久化層、業(yè)務(wù)邏輯層和表示層等。隨著企業(yè)信息化建設(shè)的加快,各種基于J2EE的應(yīng)用系統(tǒng)會(huì)越來(lái)越多。如何在統(tǒng)一的J2EE分布式架構(gòu)平臺(tái)下,構(gòu)建符合企業(yè)特點(diǎn)的應(yīng)用框架基礎(chǔ)開發(fā)平臺(tái),以框架平臺(tái)為基礎(chǔ)進(jìn)行信息化應(yīng)用系統(tǒng)的開發(fā)具有十分重要的意義。
二、J2EE應(yīng)用框架技術(shù)
框架(Framework)是可重用的半完成的應(yīng)用程序,可以用來(lái)產(chǎn)生專門的定制程序。框架一般具有即插即用的可重用性、成熟的穩(wěn)定性以及良好的團(tuán)隊(duì)協(xié)作性。J2EE復(fù)雜的多層結(jié)構(gòu)決定了大型的J2EE項(xiàng)目需要運(yùn)用框架和設(shè)計(jì)模式來(lái)控制軟件質(zhì)量,目前主流的框架技術(shù)有基于MVC模式的Struts框架、基于IoC模式的Spring框架以及對(duì)象關(guān)系映射框架Hibernate等。
1.Web開發(fā)框架Struts
Struts是以JSP( Java Server Pages) Model2為基礎(chǔ)實(shí)現(xiàn)的一個(gè)MVC設(shè)計(jì)模式的應(yīng)用程序框架。其設(shè)計(jì)思想也是采用面向?qū)ο笤O(shè)計(jì),使MVC設(shè)計(jì)模式、分離顯示邏輯和業(yè)務(wù)邏輯的優(yōu)勢(shì)發(fā)揮得淋漓盡致。Struts框架的核心是個(gè)彈性的控制層,基于如JavaServlets、JavaBeans和XML等標(biāo)準(zhǔn)技術(shù),以及Jakarta Commons 的一些類庫(kù)Struts由一組相互協(xié)作的組件 Servlet以及JSPTaglib組成,其核心組件包括ActionServlet,Action,ActionForm,ActionMapping,ActionForward及Taglib配置文件等。
2.Spring框架
常用的中間件解決方案EJB技術(shù)是一種重量級(jí)的容器,必須實(shí)現(xiàn)EJB的接口,依賴于EJB容器不能單獨(dú)運(yùn)行固定了應(yīng)用功能不能加以配置。Spring則是一個(gè)解決了許多在J2EE開發(fā)中常見問(wèn)題、能夠替代EJB技術(shù)的強(qiáng)大框架。它不依賴于任何的組件是一種輕量級(jí)的容器,因此它可以有效地組織中間件對(duì)象而不管是否還使用了EJB技術(shù)。同時(shí)Spring既是全面的又是模塊化的,它不是一個(gè)強(qiáng)制性框架,可以選擇某個(gè)組件獨(dú)立使用。
3.Hibernate框架
Hibernate是一種基于Java平臺(tái)功能強(qiáng)大的ORM開源框架工具,提供了概念型的、易于理解的模型化數(shù)據(jù)。Hibernate對(duì)JDBC進(jìn)行輕量級(jí)的對(duì)象封裝,不僅提供ORM映射服務(wù),同時(shí)還提供數(shù)據(jù)查詢和數(shù)據(jù)緩存功能,實(shí)現(xiàn)了廣義的業(yè)務(wù)數(shù)據(jù)持久化,即數(shù)據(jù)的保存更新刪除加載和查詢通過(guò)XML配置文件,將Java持久化類映射到關(guān)系數(shù)據(jù)庫(kù)表結(jié)構(gòu),開發(fā)人員通過(guò)該框架可使用面向?qū)ο蟮乃枷雽?duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行操作在Hibernate技術(shù)的實(shí)施過(guò)程中。
三、J2EE應(yīng)用框架總體結(jié)構(gòu)
基于J2EE的應(yīng)用框架基礎(chǔ)開發(fā)平臺(tái)總體結(jié)構(gòu)分為3個(gè)大的組件模塊層次,Web表示層、業(yè)務(wù)邏輯層、系統(tǒng)服務(wù)模塊。
1.Web表示層
提供與用戶交互的界面,組織用戶的輸入,響應(yīng)用戶要求。該Web組件模塊通過(guò)對(duì)表示層框架Structs進(jìn)行改造,通過(guò)模板機(jī)制,為開發(fā)者提供一致的接口和通用Web組件庫(kù)。該層包括通用的字符處理過(guò)濾器(SetCharacterEncodingFilter)、通用用戶認(rèn)證過(guò)濾器(AuthenticationFilter)、通用資源訪問(wèn)控制過(guò)濾器(SecurityFilter)、StrutsAction組件、StructsActionFor組件、ActionServlet組件、JSP/JSTL/View示圖組件、定制Structs插件(Plugin)以及定制標(biāo)簽庫(kù)(taglib)等,提供一致的接口和類為應(yīng)用開發(fā)者提供具體應(yīng)用表示層開發(fā)。
2.業(yè)務(wù)邏輯層
接受Web表示層傳來(lái)的數(shù)據(jù)傳輸對(duì)象DTO,DTO封裝了用戶的請(qǐng)求信息,根據(jù)業(yè)務(wù)系統(tǒng)的業(yè)務(wù)邏輯處理具體業(yè)務(wù),該層包括領(lǐng)域?qū)ο蟆I(yè)務(wù)對(duì)象接口(BPO)及實(shí)現(xiàn)(BPOImpl)、業(yè)務(wù)服務(wù)接口及實(shí)現(xiàn)(ServiceImpl)以及服務(wù)定位器(Service Locator)、數(shù)據(jù)訪問(wèn)對(duì)象(DAO)接口與實(shí)現(xiàn)(DAO Impl)等實(shí)現(xiàn)具體應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯的處理,通過(guò)該層的業(yè)務(wù)封裝提供一致的業(yè)務(wù)開發(fā)方法。同時(shí),對(duì)于數(shù)據(jù)持久化的選擇通過(guò)封裝Hibernate來(lái)實(shí)現(xiàn)對(duì)象和關(guān)系的映射,提供可配置的數(shù)據(jù)持久化解決方案。
3.系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是通過(guò)對(duì)各種企業(yè)級(jí)信息化應(yīng)用系統(tǒng)的分類、抽象,針對(duì)信息化應(yīng)用系統(tǒng)都需要解決的技術(shù)架構(gòu)和公共通用業(yè)務(wù)組件模塊等問(wèn)題,提供系統(tǒng)級(jí)的抽象和服務(wù)。主要包括會(huì)話管理、資源加載、組件管理、服務(wù)定位、日志管理、認(rèn)證與安全控制、異常處理、郵件管理、任務(wù)管理、組織結(jié)構(gòu)管理、工作流引擎和公用業(yè)務(wù)構(gòu)件等系統(tǒng)服務(wù)。
四、結(jié)束語(yǔ)
本文通過(guò)J2EE應(yīng)用框架的介紹開始,分析研究了基于J2EE的應(yīng)用框架技術(shù),Struts、Spring、Hibernate[(下轉(zhuǎn)第147頁(yè))][(上接第70頁(yè))]3個(gè)框架的基本原理,最后提出了應(yīng)用框架的總體結(jié)構(gòu)。分別是WEB表示層、業(yè)務(wù)邏輯層和系統(tǒng)服務(wù)層。希望通過(guò)多個(gè)具體項(xiàng)目的應(yīng)用研究、逐步完善該總體結(jié)構(gòu),逐步積累各層次的組件和業(yè)務(wù)構(gòu)件庫(kù),達(dá)到提高軟件機(jī)構(gòu)研發(fā)信息化應(yīng)用系統(tǒng)研發(fā)能力和效率、規(guī)范軟件的研發(fā)過(guò)程。
參考文獻(xiàn):
[1]劉中兵.開發(fā)者突擊:JavaWeb主流框架整合開發(fā):J2EE+Struts+Hibernate+Spring[M].北京:電子工業(yè)出版社,2008.
[2]陳天河.Struts Hibernate Spring集成開發(fā)寶典[M].北京:電子工業(yè)出版社,2007.
[3]Bruce Eckel. Java 編程思想[M].侯捷,譯.北京:機(jī)械工業(yè)出版社,2002.
[4]孫衛(wèi)琴.精通Struts:基于MVC的JAVAWeb設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2009.