![《[JSF與EJB3.0集成應用研究]應用研究》.doc_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/7/eee4b1db-769a-4441-9004-345dc03fc8f3/eee4b1db-769a-4441-9004-345dc03fc8f31.gif)
![《[JSF與EJB3.0集成應用研究]應用研究》.doc_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/7/eee4b1db-769a-4441-9004-345dc03fc8f3/eee4b1db-769a-4441-9004-345dc03fc8f32.gif)
![《[JSF與EJB3.0集成應用研究]應用研究》.doc_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/7/eee4b1db-769a-4441-9004-345dc03fc8f3/eee4b1db-769a-4441-9004-345dc03fc8f33.gif)
![《[JSF與EJB3.0集成應用研究]應用研究》.doc_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/7/eee4b1db-769a-4441-9004-345dc03fc8f3/eee4b1db-769a-4441-9004-345dc03fc8f34.gif)
![《[JSF與EJB3.0集成應用研究]應用研究》.doc_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/7/eee4b1db-769a-4441-9004-345dc03fc8f3/eee4b1db-769a-4441-9004-345dc03fc8f35.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精品文章與集成應用研究應用研究摘要。通過對jsf和ejb3.0技術的研究分析,提出了集成二者進行web應用開發(fā)的幾種方法,給出了實現(xiàn)集成的關鍵代碼,最后分析了jsf與ejb3.0集成應用的優(yōu)勢及發(fā)展前景。關鍵詞:jsf1.2;ejb3.0;jndi;jbossseam中圖分類號:tp311文獻標識碼:a文章編號:1009-3044(xx)18-31670-02studyontheintegrationofjsfandejb3.ofuming-teng,liudong-fei(schoolofputerscienceandtechnology,wuhan430070,china)abstract
2、:accordingtotheanalysesaboutthetechnologyofjsfandejb3.0,heendtheadvantagesanddevelopmentprospectsofintegratingjsfwithejb3.0werediscussed.keywords:jsf;ejb3.0;jndi;jbossseam1
3、引言sun公司最新推出了jsf1.2這個新的表現(xiàn)層框架和一套以注釋為基礎的ejb編程模型ejb3.0,并引入了新的javapersistence標準,這是一套基于javaee的基本架構。web應用開發(fā)的關鍵是提供良好的數(shù)據(jù)持久化層、簡捷快速的表示層構造以及對業(yè)務邏輯、頁面導航的有效管理。以jsf+ejb3.0的集成模式開發(fā)web應用系統(tǒng),能很好的兼顧開發(fā)效率與維護成本,具有極高的實用價值,同時兩者均為web應用框架并且都遵循servlet規(guī)范,也為二者的整合提供了基礎。2jsf概述javaserverfaces(jsf)是一種用于構建web應用程序的新標準java框架。它提供了一種以組件為中心
4、來開發(fā)javaweb用戶界面的方法,從而簡化了開發(fā)。通過jsf,可以在頁面中輕松自如地使用web組件、捕獲用戶行為所產(chǎn)生的事件、執(zhí)行驗證、建立頁面導航等。jsf通過將良好構建的模型-視圖-控制器(mvc)設計模式集成到它的體系結構中,確保了應用程序具有更高的可維護性,jsf按照mvc架構可以分為3部分:view(視圖)、controller(控制器)和model(模型)。(1)view層該層即用戶使用界面,它是與用戶交互的部分。開發(fā)者使用jsf內(nèi)建或其他廠商提供的renderkit來開發(fā)。(2)controller層該層位于view層與model層之間,控制著它們之間的交互過程。在jsf中ja
5、va.faces.webapp.facesservlet作為controller,它配合faces-config.xml配置文件控制web應用程序的運作流程。(3)model層該層是進行業(yè)務操作的部分,由它來實現(xiàn)業(yè)務邏輯。jsf中一般使用javabean,被稱為后臺(backing)或托管(managed)bean。3ejb3.0概述為了減少ejb開發(fā)的復雜性,sun公司于xx年5月推出了ejb3.0新規(guī)范,ejb3.0新規(guī)范中兩個重要的變更分別是:使用了java5中的程序注釋工具和基于hibernate的o/r映射模型。ejb3.0引入了di(依賴注入)容器類與pojo持久類這些新功能。在e
6、jb3.0里,任何類型的企業(yè)級bean只是一個加了適當注釋的簡單java對象(pojo),這就減少了在創(chuàng)建ejb時所需的類、接口、部署描述符的數(shù)量,注釋可以用于定義bean的業(yè)務接口、o/r映射信息、資源引用信息。ejb3.0通過用純舊式java對象(pojo)取代抽象bean類,用純舊式java接口(poji)取代組件與主接口(ponenthome),也不必實現(xiàn)業(yè)務接口,簡化了ejb的開發(fā)過程。在javaee5中,開發(fā)了通用持久化規(guī)范javapersistenceapi1.0(jpa1.0)代替以前規(guī)范中的entitybean。jpa是java持久化技術的一個集大成者,它吸取了hiberna
7、te、jdo、toplink等優(yōu)秀技術和框架,將這幾年發(fā)展成熟起來的基于pojo模型的o/rmapping技術標準化,成為在java中通用的api。大大減輕了編程的復雜性。4jsf與ejb3.0的集成雖然jsf與ejb3.0被作為標準搭載在javaee5里,但javaee5卻沒有給出一個結合jsf與ejb3.0的api。要同時在一個web應用中使用jsf和ejb3的話,開發(fā)者必須自己考慮一個實現(xiàn)方案。開發(fā)者可以用下面二種方法來實現(xiàn)jsf與ejb3.0的集成。4.1使用jsf的backingbean調(diào)用ejb組件包含jsf標簽的jsp頁面是表示層,facesservlet提供了controlle
8、r的功能,將jsf中的屬于bean角色的backingbean作為ejb與ui的接口,其作用是在真正的業(yè)務邏輯bean及ui組件之間搭起橋梁。而另一面的ejb容器則成為mvc模式中的model層,其中會話bean執(zhí)行獨立的、解除耦合的任務;實體bean已經(jīng)升級為獨立的持久層框架(即jpa1.0),應用o/rmapping技術處理與數(shù)據(jù)庫之間的業(yè)務,通過entitymanager對實體(entity)進行持久化,查詢,刪除等操作。體系結構如圖1所示:圖1基于jsf和ejb3.0的web應用的體系結構在本集成方案中,jsf與ejb3.0的交互,依靠jsf中的backingbean來調(diào)用ejb??梢?/p>
9、用以下方法來實現(xiàn):(1)編寫工具類ejb使用jndi(javanaminganddirectoryinterface)名來定位存取某特定的對象;jndi服務是ejb標準所規(guī)定的一項標準服務,所有ejb服務的提供商,必須為其ejb服務器實現(xiàn)jndi服務??蛻舳嗽谡{(diào)用ejb組件時都需要遵循如下步驟:a.借助于jndi,查找到ejb組件的本地或遠程業(yè)務接口;b.借助業(yè)務接口,調(diào)用ejb實例中的業(yè)務方法。開發(fā)者可以利用業(yè)務委派模式編寫一個工具類,它處理連接到ejb容器、獲取所需資源。backingbean通過這個工具類調(diào)用ejb來實現(xiàn)業(yè)務邏輯,下面是這個工具類的關鍵代碼:importjavax.nam
10、ing.initialcontext;importjavax.naming.namingexception;publicclassservicedelegateprivatestaticservicedelegateinstance=newservicedelegate;本文為全文原貌未安裝pdf瀏覽器用戶請先下載安裝原版全文publicstaticservicedelegategetinstancereturninstance;/x創(chuàng)建一個servicedelegate實例x/publicservicedelegatetry/借助jndi,查找sessionbeaninitialcontex
11、tctx=newinitialcontext;sessionbean業(yè)務接口xxservice=(sessionbean業(yè)務接口)ctx.lookup(sessionbean業(yè)務接口的jndi名稱);catch(namingexceptione)e.printstacktrace;catch(exceptionex)ex.printstacktrace;/x此處省略調(diào)用ejb業(yè)務方法代碼x/(2)使用依賴注入機制依賴注入就是由容器負責查找被依賴的對象并注入到依賴bean中,而bean本身不再需要進行jndi或者context查詢。ejb3里可以直接在ejb組件里申明類似stateless等注釋
12、(annotation)便可標明該ejb為無狀態(tài)sessionbean,而客戶端程序里也只需要在程序里申明類似ejb的注釋便可完成對ejb的調(diào)用,而省略了配置過程。其原理是這樣的:ejb容器會在配置ejb時解析ejb組件里的注釋,根據(jù)被申明的注釋和默認配置把ejb登錄到jndi里。而客戶端程序的運行環(huán)境(比如web容器)在運行時需要對servlet等進行解析,分析被注釋的成員變量的類型或名稱,根據(jù)這些信息得到jndi名,調(diào)用lookup方法,得到對ejb對象的引用,然后使用di和aop技術自動完成對ejb的調(diào)用。sun公司的javaee應用服務器glassfish已經(jīng)在web層支持servle
13、t2.5和jsf1.2關于javaee5的依存關系注入申明,如果將jsfejb3應用程序部署在同一個glassfish應用服務器中,在javaee5中,backingbean調(diào)用ejb組件時,您不必編寫任何jndi查找代碼。僅使用ejb聲明來標識一個字段,服務器會在創(chuàng)建managedbean后注入一個ejb。4.2利用jbossseam框架由于jsf的定位是表示層框架,與應用層交互的唯一手段,只有managedbeans。在sun的藍圖里,應用層由ejb主持大局。應用層和表示層之間需要某種技術來粘合。managedbeans有一定的粘合作用,但遠遠不能滿足企業(yè)應用編程的需求。為了解決現(xiàn)有框架(
14、包括ejb3.0,jsf和bpm)之間存在的這一問題,jboss推出了jbossseam框架,jbossseam提供了一致的,以注釋為基礎的整合ejb3.0和jsf1.2的方法。在jbossseam中,你只要為ejb3.0組件提供一個簡單的注釋,就可以在jsf中直接使用ejb3.0組件了。在一般的開發(fā)模型中,jsf的managedbean與ejb3的entity由于分屬于2個不同的組件模型,所以他們的狀態(tài)也不得不分別管理。比如,在jsf里用faces-config.xml定義managedbean,jsf框架根據(jù)faces-config.xml的定義對managedbean加以管理。在使用ej
15、b3的情況,得把managedbean傳送給ejb3框架,ejb3對自己的entity的狀態(tài)加以管理。而使用jbossseam的情況,jsf的managedbean則不再需要在faces-config.xml里定義,jbossseam本身提供了一種稱為seam組件的bean(javabean),只要在普通的javabean里,對它加以標注(annotation),jbossseam便可將其自動映射(mapping)為jsf的managedbean和ejb3的entity。使用jbossseam集成jsf和ejb3的方法如下:(1)jbossseam與jsf集成首先在web.xml中設置:org
16、.jboss.seam.servlet.seamlistener設置faces-config.xml:org.jboss.seam.jsf.sehaselistener(2)jbossseam與ejb3的集成設置ejb-jar.xml:org.jboss.seam.ejb.seaminterceptororg.jboss.seam.ejb.seaminterceptor以上為所有的ejbbeans定義了seaminterceptor回調(diào)。ejb3容器會在調(diào)用sessionbean之前先調(diào)用seaminterceptor。這就使得seam跟sessionbean有機結合起來了。5總結與展望通過使
17、用規(guī)范里ui組件、注釋和pojo等新技術,采用jsf1.2與ejb3.0集成的方法減輕了開發(fā)人員進行底層開發(fā)的工作量,而且開發(fā)和設計過程層次分明、結構簡單。jsf和ejb3.0是用于構建web應用程序的強大技術。如果能將兩個框架統(tǒng)一起來,無疑它們會相得益彰。無態(tài)和有態(tài)ejb是用于jsf的極好的事件處理支持bean;jpa可以提供自動且透明的對象關系型數(shù)據(jù)庫映射;可視的jsf組件可以將自己的狀態(tài)綁定到實體bean上。因此,它們是實現(xiàn)面向對象域模型的一個很好的解決方案。為了統(tǒng)一jsfmanagedbeans和ejb3.0這兩種組件模型jboss向jcp提交webbeans技術規(guī)范預覽草案jsr299。該項目的目標是讓ejb3.0組件能夠同時作為jsfmanagedbeans來使用,統(tǒng)一這兩種組件模型,進而簡化java中的web應用編程模型。參考文獻:1jcpexpertgroup.jsr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精細化快遞末端網(wǎng)點承包管理與效益提升協(xié)議
- 體育賽事策劃執(zhí)行與贊助商合作協(xié)議
- 體育賽事替身保險補充協(xié)議針對運動員保障
- 介入治療防護規(guī)范與實施
- 高效生物醫(yī)藥專利整合與商業(yè)化運營合作協(xié)議
- 仲裁裁決書翻譯與執(zhí)行合同
- 美容美發(fā)行業(yè)連鎖經(jīng)營與品牌拓展合同
- 股權補償款擔保及股權激勵計劃解除實施協(xié)議
- 物聯(lián)網(wǎng)設備數(shù)據(jù)訪問安全保證協(xié)議
- 紅木家具修復與品牌形象設計合同
- 貴州游船傾覆防災減災安全教育時事熱點
- 宏觀策略-專題報告:近年來中國基建投資趨勢與特征
- 2025全國保密教育線上培訓考試試題庫(含答案)
- 航天技術發(fā)展與應用知識題庫
- 管理會計試題及答案英文
- 2025購車貸款合同范本
- 檢察院相關試題及答案
- 2025-2030年中國女鞋行業(yè)市場供需分析與發(fā)展戰(zhàn)略咨詢報告
- 2025-2030超導磁體和線圈行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025年全國中學生數(shù)學奧林匹克競賽(預賽)模擬卷(全國高中數(shù)學聯(lián)賽一試)(含解析)
- 地理信息數(shù)據(jù)處理技能競賽試題
評論
0/150
提交評論