版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于JavaServerTM Faces和DAO形式的大型設(shè)備采購系統(tǒng)摘要文章先介紹了JavaTEE家族中的重要成員JavaServerTFaes這一技術(shù)。它位于JavaTEE的eb層面,為eb程序員提供了基于組件和事件驅(qū)動的編程方式,這將改變傳統(tǒng)的eb程序編寫方式。然后,本文分析了大型設(shè)備采購系統(tǒng)的固有特性,并介紹了如何結(jié)合JSF技術(shù)和DA形式開發(fā)大型設(shè)備的采購系統(tǒng)。關(guān)鍵詞JavaServerTFaes;JSF;大型設(shè)備采購;信息系統(tǒng)信息技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫技術(shù)和軟件工程技術(shù)的高速開展,使得計算機信息系統(tǒng)得到了長足的進(jìn)步。高速網(wǎng)絡(luò)和大型關(guān)系數(shù)據(jù)庫的成熟,為構(gòu)建計算機信息系統(tǒng)提供了良好
2、的基石;軟件工程技術(shù)的開展,使得人們可以設(shè)計并構(gòu)建出靈敏、功能強大和高質(zhì)量的信息系統(tǒng)基于Vdel-Vie-ntrller架構(gòu)形式的B/S系統(tǒng),就是一個成熟并且高效的構(gòu)造。有很多技術(shù)都應(yīng)用了V這一架構(gòu)形式,JavaServerTFaes技術(shù)就是其中的一種,開發(fā)者可以利用JSF技術(shù)開發(fā)出設(shè)計良好的系統(tǒng)。V形式將系統(tǒng)分割為三個獨立的局部:del、Vie和ntrller。del代表應(yīng)用數(shù)據(jù)和業(yè)務(wù)邏輯,Vie負(fù)責(zé)將數(shù)據(jù)顯示給用戶,ntrller處理與用戶的交互。三個局部松散地耦合在一起,通過變更通知機制來保持同步,其原理如圖1所示:圖1V架構(gòu)形式示意圖V形式使系統(tǒng)各局部之間的耦合度降低,內(nèi)聚度進(jìn)步。這種
3、設(shè)計方式可以有效地進(jìn)步系統(tǒng)的可維護(hù)性。eb應(yīng)用程序依賴于HTTP超文本傳輸協(xié)議。HTTP是一個無狀態(tài)的協(xié)議,它本身沒有提供會話狀態(tài)保存機制。因此,適應(yīng)于eb程序的V架構(gòu)形式受到了一定的限制,同時也必須做一些修改,這就是del2模型。在這個模型中,有一個前端Servlet作為ntrller,偵聽特定的URL懇求。在收到懇求后,Servlet與作為del的JavaBean交互,再決定向哪一個Vie轉(zhuǎn)發(fā)懇求,最終再顯示給用戶。其構(gòu)造如圖2所示:圖2del2的構(gòu)造圖HTTP的無狀態(tài)性導(dǎo)致了這么一種結(jié)果:在del2中,del的變更無法立即傳播到相應(yīng)的Vie和ntrller。3.1JSF的構(gòu)造JSF是為基
4、于Java技術(shù)的eb應(yīng)用程序所設(shè)計的效勞器端用戶組件框架,它基于del2架構(gòu),明確定義了del、Vie和ntrller,其構(gòu)造如圖3所示。JSF的核心是建立在上述架構(gòu)上的UserInterfaedel用戶界面模型。這個模型直接決定了JSF架構(gòu)不同于傳統(tǒng)eb框架,它提供了基于事件的編程方式。用戶界面模型由這幾局部組成:UserInterfaepnentlasses用戶界面類:這些類代表了用戶界面組件和用戶界面組件相關(guān)的操作接口,如保存狀態(tài)、維護(hù)引用、事件的處理和呈現(xiàn)組件等。pnentRenderingdel組件呈現(xiàn)模型:組件的功能由組件的類決定,而組件的顯示可以由專門的呈現(xiàn)器來決定。這種功能和呈
5、現(xiàn)分割的設(shè)計意味著:可以通過簡單地交換呈現(xiàn)器,獲得不同的顯示效果,或者通過不同的呈現(xiàn)器,來適應(yīng)不同的客戶端。nversindel轉(zhuǎn)換模型:某些用戶界面數(shù)據(jù),如輸入框中的數(shù)據(jù),是與效勞器端的數(shù)據(jù)對象相聯(lián)絡(luò)的。效勞器端的數(shù)據(jù)對象是有類型的,而用戶界面組件內(nèi)的內(nèi)容全部都是String類型的,假如這兩者數(shù)據(jù)類型不相容,就必須有一個轉(zhuǎn)換器。轉(zhuǎn)換模型定義了這方面的內(nèi)容,程序員可以根據(jù)需要為用戶界面組件搭配適宜的轉(zhuǎn)換器。圖3JSF構(gòu)造圖Validatindel驗證模型:這個模型定義了如何對來自于懇求的數(shù)據(jù)進(jìn)展驗證。程序員可以通過它定義數(shù)據(jù)的格式。EventandListenerdel事件和監(jiān)聽模型:通過事件
6、和監(jiān)聽模型,JSF技術(shù)提供了基于事件驅(qū)動的編程方式用戶界面產(chǎn)生event事件,注冊在其上的listeners監(jiān)聽器捕獲這個事件,執(zhí)行事先確定的任務(wù)。事件和監(jiān)聽模型提供了Listener類作為監(jiān)聽器的接口,一旦一個應(yīng)用程序提供了對Listener類的實現(xiàn),并且向相應(yīng)的用戶界面組件進(jìn)展注冊,就可以得到相應(yīng)的通知。JSF支持三種事件:值變化事件、動作事件、數(shù)據(jù)-模型事件。3.2JSF的懇求處理生命周期JSF系統(tǒng)的組成元素由用戶界面模型來定義,這些元素如何協(xié)作那么是由JSF的懇求處理生命周期來定義的,這個步驟也被稱為JSF頁面的生命周期,如圖4所示:圖4JSF頁面的生命周期RestreVie恢復(fù)視圖:
7、在這一階段,JSF的效勞器會為所接收的faes懇求建立組件樹,并將相應(yīng)數(shù)據(jù)存入Faesntext實例中。在下一次訪問這個頁面時,F(xiàn)aesServlet將利用這些數(shù)據(jù)重建組件樹。通過這種機制,可以在不同的懇求之間保存數(shù)據(jù),解決了HTTP本身無狀態(tài)的問題。ApplyRequestValues應(yīng)用懇求值:在組件樹建立之后,系統(tǒng)會從懇求的參數(shù)中抽取參數(shù)值,將它們賦值給相應(yīng)的組件,同時消息和事件會被存放于相應(yīng)的消息或事件隊列中。PressEvents處理事件:系統(tǒng)將消息隊列中的事件播送給相應(yīng)的監(jiān)聽器,由監(jiān)聽器作相應(yīng)處理。PressValidatins處理驗證:在這一階段,系統(tǒng)讀取組件的值,同時查看在相應(yīng)
8、組件上的驗證器規(guī)那么,通過比擬值和驗證規(guī)那么,確定組件的值是否有效。UpdatedelValues更新模型值:將用戶組件的值賦給相應(yīng)的支持Bean。InvkeAppliatin調(diào)用應(yīng)用程序:在這個階段,系統(tǒng)響應(yīng)所有的AtinEvent事件,進(jìn)展相應(yīng)的處理。RenderRespnse呈現(xiàn)響應(yīng):系統(tǒng)生成相應(yīng)的響應(yīng),并將響應(yīng)的狀態(tài)保存起來,以便后續(xù)的懇求進(jìn)展訪問。本系統(tǒng)的持久層采用DADataAessbjet,數(shù)據(jù)訪問對象形式的設(shè)計。通過DA形式對系統(tǒng)進(jìn)展分割,將數(shù)據(jù)庫訪問層的實現(xiàn)封裝到DataAessr數(shù)據(jù)訪問器中,從而將Dainbjet域?qū)ο髣e離出來,實現(xiàn)了低級別的數(shù)據(jù)訪問與高級別的業(yè)務(wù)邏輯的別
9、離。為了減少系統(tǒng)通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫的次數(shù),在DataAessr的設(shè)計上采用了Valuebjet+Persistentbjet的設(shè)計思想。由于系統(tǒng)的復(fù)雜性,D域?qū)ο笸ǔ2粌H僅對應(yīng)一個表格中的一條記錄,它有可能對應(yīng)多個條記錄,甚至有可能對應(yīng)于多個表格中的記錄。在這樣的情況下,使用V就非常必要了。因為通過使用V,可以將眾多的常用的相關(guān)屬性封裝成一個對象,在一次網(wǎng)絡(luò)傳輸中完成信息的獲取和修改,減少了屢次進(jìn)展的網(wǎng)絡(luò)傳輸開銷。其構(gòu)造如圖5所示:圖5D、V、P關(guān)系圖P對應(yīng)于數(shù)據(jù)庫中的真正記錄,DataAessr對數(shù)據(jù)庫的實際操作都是封裝在P中的。P實際上是數(shù)據(jù)庫內(nèi)信息在內(nèi)存中的鏡像,這是由信息在D、V、P、
10、數(shù)據(jù)庫之間的流動方式來保證的:首先,P在初始化時,必須從數(shù)據(jù)庫中更新信息。也就是說,一旦P完成了初始化,此時它的數(shù)據(jù)和數(shù)據(jù)庫中的記錄是完全一致的。其次,數(shù)據(jù)在更新時,其流向是DVP數(shù)據(jù)庫。因此在數(shù)據(jù)更新完成時,數(shù)據(jù)庫和P的數(shù)據(jù)仍然是同步的。接著,數(shù)據(jù)在被刪除時,數(shù)據(jù)庫中的數(shù)據(jù)和P中的數(shù)據(jù)同時消失,仍然不會出現(xiàn)數(shù)據(jù)不同步的情況。最后,數(shù)據(jù)在受查詢時,數(shù)據(jù)庫沒有受到改變,P也沒有受到改變。因此,查詢完成后,數(shù)據(jù)庫和P的數(shù)據(jù)仍然是同步的。所以,P與數(shù)據(jù)庫中的相應(yīng)記錄是同步的,完全可以視為數(shù)據(jù)庫記錄的鏡像。鑒于這個特性,系統(tǒng)在查詢時可以直接查詢P,無需通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫,這樣就減少了網(wǎng)絡(luò)開銷和數(shù)據(jù)庫查
11、詢開銷。實際上,即使是系統(tǒng)在進(jìn)展數(shù)據(jù)更新時,開銷也和直接使用V更新數(shù)據(jù)庫一樣。使用P還有一個好處:V的數(shù)據(jù)類型未必能完全兼容于數(shù)據(jù)庫中的數(shù)據(jù)類型,P可以在數(shù)據(jù)庫和V之間進(jìn)展數(shù)據(jù)的類型轉(zhuǎn)換,這樣,在V和D中就可以直接使用適宜的數(shù)據(jù)類型了。可以看出,V+P的DataAessr設(shè)計方式有效地進(jìn)步了系統(tǒng)效率。同時,Dainbjet的別離使程序員可以專注于業(yè)務(wù)邏輯的設(shè)計,便于與JSF框架的對口。5.1系統(tǒng)功能系統(tǒng)針對汽輪機廠大型設(shè)備也被稱為主機的采購,其用戶為消費單位、工廠方案處、裝備資源處。系統(tǒng)需要為這些用戶提供這幾方面的效勞:對采購訂單的管理、設(shè)備信息的管理效勞以及采購發(fā)票的管理。對采購訂單的管理要
12、求系統(tǒng)可以提供以下功能:從消費單位搜集采購需求、方案處審核采購需求、方案處整理采購需求、方案處創(chuàng)立采購訂單、跟蹤采購訂單的執(zhí)行情況也就是采購合同的管理。對設(shè)備信息的管理要求系統(tǒng)可以提供以下功能:制定設(shè)備信息的檔案、跟蹤設(shè)備的情況、可以對設(shè)備進(jìn)展轉(zhuǎn)固、提供記錄設(shè)備臺帳的功能。對采購發(fā)票的管理要求系統(tǒng)可以提供以下功能:記錄設(shè)備的發(fā)票記錄,以附件形式保存發(fā)票的掃描記錄。同時,系統(tǒng)還要提供相應(yīng)的查詢功能。5.2系統(tǒng)分析通過搜集、整理業(yè)務(wù)信息,得到了如圖6的主機設(shè)備采購流程圖。分析流程圖,得到以下結(jié)論:系統(tǒng)應(yīng)該建立四種用戶角色:消費單位的普通用戶、采購方案制定員、采購訂單制定員、采購過程管理員。系統(tǒng)要制
13、定以下幾種表單來提交信息:主機采購申請表格、主機采購方案單、主機采購訂單、主機采購信息跟蹤表。為了讓系統(tǒng)追蹤主機信息,必須在制定采購方案時為每一臺主機設(shè)置一個系統(tǒng)唯一的編碼擬采購主機編碼。這個編碼是主機的標(biāo)識符,在主機轉(zhuǎn)固時,與真正的主機編碼是一一對應(yīng)的。同樣的原理,通過這個編碼,可以將將整個工廠的其它相關(guān)信息串聯(lián)起來。主機的整個生命周期的信息都可以被追蹤和記錄。圖6大型主機采購流程系統(tǒng)需要制定以下數(shù)據(jù)庫表格來保存信息:采購申請表、采購方案表、采購訂單表采購合同表、采購合同跟蹤表、擬采購主機表。另外,還必須制定相關(guān)的參數(shù)碼表。5.3系統(tǒng)實現(xiàn)以編輯主機信息為例,涉及的主要內(nèi)容有:JSF頁面、數(shù)據(jù)
14、庫表格、D域?qū)ο?、V值對象、P持久化對象。它們互相協(xié)作,完成相應(yīng)功能。JSF頁面包含了表單控件h:fr,使用JSF的h:panelGrid控件來布局。表單中采用了多種控件日期輸入框t:inputalendar、文本輸入框h:inputText等,通過and:控件來提交表單。數(shù)據(jù)庫表格保存了擬采購主機的各項參數(shù),如下所示:圖7數(shù)據(jù)庫表格例如P由屬性、訪問器、構(gòu)造器和數(shù)據(jù)庫訪問方法組成。P的屬性和數(shù)據(jù)庫中的相應(yīng)記錄是對應(yīng)的。其構(gòu)造器和數(shù)據(jù)庫訪問方法使用JDBAPI將數(shù)據(jù)庫中的記錄映射到相應(yīng)的屬性上。當(dāng)用戶提交了相應(yīng)的擬采購信息后,在JSF的懇求處理生命周期的調(diào)用應(yīng)用程序階段,創(chuàng)立相應(yīng)的D擬采購主機對象,同時建立相應(yīng)的V和P,最后調(diào)用P的reate()方法在數(shù)據(jù)庫中建立相應(yīng)的記錄。JSF是一個效勞器端用戶界面框架,它所提供的事件驅(qū)動的編程方式,極大簡化了eb程序的用戶界面開發(fā)。JSF技術(shù)結(jié)合DA等設(shè)計形式,可以開發(fā)出高效率,高可維護(hù)性的eb應(yīng)用程序。1JenniferBall,Debbiearsn,IanEvans,SttFrdin,KiHaase,EriJendrk.TheJavaTEE5Tutrial,Suni
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年綠化養(yǎng)護(hù)年度工作總結(jié)
- 幼兒園中班班務(wù)工作總結(jié)
- 2025年石油石化職業(yè)技能鑒定題庫附答案詳解
- 突發(fā)公共衛(wèi)生事件應(yīng)急預(yù)案制度
- 2025年資料員年度工作總結(jié)樣本
- 快速起草維權(quán)文書!建設(shè)工程施工合同糾紛要素式起訴狀模板
- 建設(shè)工程施工合同糾紛要素式起訴狀模板附法律條文引用
- 護(hù)理學(xué)生求職面試技巧
- 2026 年有子女離婚協(xié)議書標(biāo)準(zhǔn)版
- 2026 年離婚協(xié)議書標(biāo)準(zhǔn)制式模板
- 第六講通量觀測方法與原理
- 林規(guī)發(fā)防護(hù)林造林工程投資估算指標(biāo)
- GB/T 23821-2022機械安全防止上下肢觸及危險區(qū)的安全距離
- GB/T 5563-2013橡膠和塑料軟管及軟管組合件靜液壓試驗方法
- GB/T 16895.6-2014低壓電氣裝置第5-52部分:電氣設(shè)備的選擇和安裝布線系統(tǒng)
- GB/T 11018.1-2008絲包銅繞組線第1部分:絲包單線
- GA/T 765-2020人血紅蛋白檢測金標(biāo)試劑條法
- 武漢市空調(diào)工程畢業(yè)設(shè)計說明書正文
- 麻風(fēng)病防治知識課件整理
- 安全安全應(yīng)急救援預(yù)案(溝槽開挖)
- 權(quán)利的游戲雙語劇本-第Ⅰ季
評論
0/150
提交評論