




已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀
基于mvc模式的12EE應(yīng)用研究與開發(fā)論文(pdf 55頁).pdf.pdf 免費下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
碩士研究生畢業(yè)論文基于mv c模式的1 2 E E應(yīng)用研究與開發(fā) 摘要 隨著我國電子政務(wù)的推進 社區(qū)作為政府與群眾聯(lián)系的橋梁和紐帶是社會的 重要組成部分 它的信息化程度直接影響到政府對社區(qū)的管理和居民的生活水 平 但目前大多數(shù)社區(qū)使用的還是早期的Wi n d o w s 操作系統(tǒng)下的單機版信息管 理系統(tǒng) 使用不同的后臺數(shù)據(jù)庫 普遍存在著可移植性差 工作效率低 可擴展 性差 可維護性差 部署麻煩等缺點 因此 迫切需要對這些原有系統(tǒng)進行有效 的改進和整合 建立一套較完善的社區(qū)信息管理系統(tǒng) 克服原有系統(tǒng)存在的種種 弊端 近年來 隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展和J 2 E E 平臺的廣泛采用 基于B S 的多 層We b 體系結(jié)構(gòu)逐漸發(fā)展成熟起來 MV C設(shè)計模式分離了數(shù)據(jù)的控制和數(shù)據(jù)的 表現(xiàn) 在實現(xiàn)多層W e b 應(yīng)用系統(tǒng)中具有明顯的 優(yōu)勢 S t r u t s 是一個基于m v c設(shè) 計模式的開源框架 而 H i b e rn a t e 是目前流行的對象映射工具 本文首先從軟件系統(tǒng)體系結(jié)構(gòu)入手 討論了B S 多層體系結(jié)構(gòu) m v c模式 J 2 E E 等相關(guān)概念和技術(shù) 然后 給出了一個基于mv c模式應(yīng)用S t r u t s 和H i b e rna t e 的J 2 E E應(yīng)用的社區(qū)信息管理系統(tǒng)解決方案 最后 針對社區(qū)信息管理系統(tǒng)中異 構(gòu)數(shù)據(jù)庫集成的問題 提出了利用H i b e rn a t e 數(shù)據(jù)訪問技術(shù)來實現(xiàn)不同物理位置 的數(shù)據(jù)的透明訪問 關(guān)鍵詞 J 2 E E M V C S t r u t s H i b e r n a t e異構(gòu)數(shù)據(jù)庫 社區(qū)信息管理系統(tǒng) 碩士研究生畢業(yè)論文基于M v C模式的J 2 E E 應(yīng)用研究與開發(fā) Ab s t r a c t Wi t h t h e d e v e l o p m e n t o f E G o v e r n m e n t th e c o m m u n i ty w h i c h c o n n e c t s t h e g o v e r n m e n t a n d t h e p e o p l e h as b e c o m e a n i m p o rt a n t p a rt o f t h e s o c i e ty T h e e x t e n s i o n o f E C o m m u n i t y a ff e c t s t h e l e v e l o f c o m m u n i ty m a n a g e m e n t a n d t h e l i f e o f r e s i d e n t s A n d n o w m o s t c o m m u n i ty s t i l l u s e f o r m e r s y s t e m s w o r k e d o n Wi n d o w s w h i c h l a c k o f t r a n s p l a n t a b i l i t y e x p a n s i b i l i ty m a i n t a i n a b i l i ty a n d s o o n C o n s e q u e n t l y w e n e e d t o b u i l d a n e w m a n a g e m e n t s y s t e m o f c o m m u n i t y b a s e d o n t h e f o r m e r s y s t e m s I n r e c e n t y e a r s w i t h t h e r a p i d d e v e l o p m e n t o f n e t w o r k a n d e x t e n s i v e a d o p t i o n o f J 2 E E p l a t f o r m m u l t i l a y e r We b s t r u c t u r e b a s e d o n B S g r o w s u p g r a d u a l l y M V C d e s i g n p a tt e rn s e p a r a t e s c o n t r o l o f d a t a fr o m r e p r e s e n t a t i o n o f d a t a a n d t h e r e f o r e h as t h e a d v a n t a g e o f i m p l e m e n t a t i o n o f m u l t i l a y e r We b a p p l i c a t i o n s S t r u t s i s t h e a p p l i c a t i o n fr a m e w o r k w h i c h im p l e m e n t s MV C b as e d o n J 2 E E p l a t f o r m a n d H i b e rn a t e i s o n e o f t h e m o s t p o p u l a r O R O b j e c t R e l a t i o n M a p p i n g t o o l T h i s p a p e r f i r s t l y p re s e n t e d a n d d i s c u s s e d s o m e t e c h n o l o g y a n d c o n c e p t s r e l a t e d t o o u r s u b j e c t t h e n p u t f o r w a r d a s o l u t i o n o f t h e m a n a g e m e n t s y s t e m o n c o m m u n i ty i n f o r m a t i o n u s e d S t r u t s a n H i b e rn a t e a B S m u l t i t i e re d J 2 E E W e b A p p l i c a t i o n b as e d o n MV C f i n a l l y g i v e s a s o lu t i o n o f i n t e g r a t i o n o f h e t e r o g e n e o u s d a t a b as e s in t h e Ma n a g e m e n t S y s t e m o f C o m m u n i t y b ase d o n H i b e rna t e Wr i t t e n b y Y a o L e i l e i C o m p u t e r S o f t w a r e a n d T h e o r y D i r e c t e d b y P rof C h e n L i a n K e y w o r d s J 2 E E M V C S t r u t s H i b e r n a t e H e t e ro g e n e o u s D a t a b a s e s Ma n a g e me n t S y s t e m o f C o mmu n i t y 1 1 Y 9 2 8 7 5 6 獨創(chuàng)性聲明 本人聲明 所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進行的研究工作及取得的 研究成果 據(jù)我所知 除了文中特別加以標注和致謝的地方外 論文中不包含其 他 人己 經(jīng)發(fā) 表 或 撰寫 過的 研究成 果 也不 包 含為 獲得 互 魚鑫生 或 其他 教 育 機 構(gòu)的 學(xué)位或證書而使用過的材料 與我一同工作的同志對本研究所做的任何貢獻 均己 在論文中 作了明確的說明并表示謝意 學(xué) 位 論 文 儲簽 名 孤 碟碟簽 字 日 期 m o b 年 月 2 0 日 學(xué)位論文版權(quán)使用授權(quán)書 本 學(xué) 位論 文作 者 完全了 解 魚魚A壑 有 關(guān)保留 使 用學(xué) 位論 文的 規(guī) 定 有權(quán)保留并向國 家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和磁盤 允許論文被查閱和 借閱 本 人授 權(quán)南昌大李可以 將學(xué) 位 論文 的 全部 或部分內(nèi) 容 編入 有關(guān) 數(shù) 據(jù)庫 進 行檢索 可以 采用影印 縮印或掃描等復(fù)制手段保存 匯編學(xué)位論文 保密的學(xué)位論文在解密后適用本授權(quán)書 學(xué) 位 論 文 作 者 簽 名 冰 碟 A 簽 字 日 期 mo b 年S月z o 日 導(dǎo) 師 rk t itl l 簽 字 日 期 2 A O b 年S月2 10日 碩士研究生畢業(yè)論文 基于M V C模式的J 2 E E應(yīng)用研究與開發(fā) 食 禽 月z e r己百侶 旨 二氣 7 電 月牛J R 1 1 課題來源及意義 1 1 1 課題背景 在全球信息化浪潮的推動下 人類社會己 經(jīng)逐步步入信息時代 信息基礎(chǔ)設(shè) 施建設(shè)和I n t e r n e t 技術(shù)的日 漸完善 使得基于這一技術(shù)的應(yīng)用以驚人的速度向 社會生活各方面滲透 特別是隨著全國電子政務(wù)的推進 社區(qū)信息化建設(shè)已成為 當今社區(qū)建設(shè)的一種趨勢 是電子政務(wù)建設(shè)不可或缺的基礎(chǔ)和重要組成部分 然 而當前社區(qū)管理大多使用的是Wi n d o w s 操作系統(tǒng)下的單機版的軟件 而且各系 統(tǒng)使用的后臺數(shù)據(jù)庫幾乎都不相同 這就給使用者帶來了諸多不便 1 第一 數(shù)據(jù)共享問題 因為原有系統(tǒng)大多是單機版 而且其后臺使用的數(shù)據(jù) 庫大都不同 所以即便是有了局域網(wǎng)的建設(shè) 系統(tǒng)之間也不能做到有效的數(shù)據(jù)交 換和共享 例如 一個社區(qū)往往是無法查詢到另一個社區(qū)的信息 而且 如果某 次要使用的數(shù)據(jù)涉及到多個系統(tǒng) 還必須考慮到數(shù)據(jù)交換格式的問題等等 第二 重復(fù)建設(shè)問題 因為每個系統(tǒng)各自為政 這勢必造成不同程度的數(shù)據(jù) 冗余和重復(fù)建設(shè)的問題 從而也就可能出現(xiàn)資金浪費和各系統(tǒng)之間的數(shù)據(jù)異構(gòu)現(xiàn) 象 給數(shù)據(jù)庫維護帶來了很多問題 第三 管理混亂 缺乏綜合統(tǒng)籌管理 各個系統(tǒng)互相不聯(lián)接 影響未來決策 的數(shù)據(jù)依托 第四 安全性差 很容易造成重要數(shù)據(jù)的流失 第五 與相關(guān)單位的交流非常困難 需要大量時間 嚴重影響工作效率 第六 系統(tǒng)擴展性差 由于沒有統(tǒng)一的系統(tǒng)建設(shè)規(guī)劃 導(dǎo)致新舊系統(tǒng)不能有 效聯(lián)接等等 綜上所述 為了提高社區(qū)工作人員的工作效率和系統(tǒng)的利用率 加快社區(qū)信 息化進程 就必須對這些原有系統(tǒng)進行有效的改進和整合 建立一套完善的社區(qū) 信息管理系統(tǒng) 來克服原有系統(tǒng)存在的種種弊端 碩士研究生畢業(yè)論文基于mv C模式的J 2 E E 應(yīng)用研究與開發(fā) 1 1 2 技術(shù)背景 隨著軟件規(guī)模和復(fù)雜度的日 漸升級 人們越來越深刻地認識到 良 好的軟件 體系結(jié)構(gòu)對保證系統(tǒng)的成功至關(guān)重要 早先的大型機和啞終端構(gòu)成的集中式的計 算模式和網(wǎng)絡(luò)技術(shù)的推動下發(fā)展到以C S 結(jié)構(gòu)為代表的兩層模式 C S 結(jié)構(gòu)的客 戶端龐大 服務(wù)器端容易成為瓶頸等缺點促使多層 N t i e r 分布式結(jié)構(gòu)的出 現(xiàn) 如今 網(wǎng)絡(luò)已融入人們的生活 各種We b 應(yīng)用系統(tǒng)也應(yīng)運而生 但隨著用 戶需求的不斷變化和市場競爭的日 益激烈 這些W e b 應(yīng)用系統(tǒng)必須不斷地改進 其內(nèi) 容和形式 而解決該問題的關(guān)鍵是選擇正確的軟件系統(tǒng)體系結(jié)構(gòu) W e b 應(yīng)用 系統(tǒng)多采用基于B S的三層或多層框架結(jié)構(gòu) 就W e b 應(yīng)用系統(tǒng)整體而言 大多 采 用 表示 層 業(yè) 務(wù) 層 數(shù) 據(jù)層 三層 或多 層體 系結(jié) 構(gòu) M V C M o d e l V i e w C o n t r o ll e r 模式 1 2 5 正是將系統(tǒng) 劃分為模型層 視圖 層 控制 層 因 此 M V C模式適應(yīng)了日 益復(fù)雜的We b 應(yīng)用系統(tǒng)的設(shè)計需求 采用mv C模式構(gòu)建We b 應(yīng)用系統(tǒng)的體系 結(jié)構(gòu) 能夠有效地解決在We b 應(yīng)用系統(tǒng)開發(fā)過程中由于系統(tǒng)結(jié)構(gòu)的復(fù)雜程度較 高 而帶 來的諸多關(guān) 鍵性問 題 2 1 如代碼 之間的 禍 合問 題 代 碼的易維護性問 題 組件的可重用性問題 不同技能的開發(fā)人員如何分工的問題等等 J 2 E E是一種利用J a v a 2 平臺來簡化企業(yè)解決方案的開發(fā) 部署和管理相關(guān) 問題的體系結(jié)構(gòu) 提供了一個企業(yè)級的計算模型和運行環(huán)境 用于開發(fā)和部署多 層體系的應(yīng)用 J 2 E E提供的多層分布式應(yīng)用模型 組件重用 一致化的安全模 型以及靈活的事件控制 加快了應(yīng)用程序的設(shè)計和開發(fā) 可以容易 快速地建立 融合I n t e rn e t 技術(shù)尤其是W e b 技術(shù)的N層 N T i e r s 結(jié)構(gòu)的分布式企業(yè)應(yīng)用 基于 J 2 E E 技術(shù)的B S 結(jié)構(gòu)具有可維護性好 可擴展性好 安全性好等優(yōu)點 較好地 解決了C S結(jié)構(gòu)所固有的可維護性差 可擴展性差 安全性差 部署麻煩等弊端 3 最近幾年 mv C模式被引入到S U N公司的J 2 E E平臺 基于mv C模式的 J 2 E E 應(yīng)用開發(fā) 在實際應(yīng)用中 受到越來越多的歡迎 m v C模式利用控制器來 分離模型和視圖 達到層間松散禍合的效果 從而提高了系統(tǒng)的靈活性 復(fù)用性 和可維護性 S t r u t s 就是一個基于mv C 模式的W e b 應(yīng)用程序的 框架 它是A p a c h e S o ft w a r e F u n d a t i o n的一個開源項目 S t r u t s 提供了C o n t r o l l e r 組件并且整合了其它技術(shù)來 碩士研究生畢業(yè)論文基于r a v C模式的J 2 E E應(yīng)用研究與開發(fā) 實現(xiàn)M o d e l 和V i e w H ib e rn a t e 是另一個開源框架 它是一種實現(xiàn)對象和關(guān)系之 間映射 O R M O b j e c t R e l a t i o n M a p p i n g 的 框架 它對J D B C進行了 輕量級的對象 封裝 使得J a v a 程序員可以 使用面向?qū)ο缶幊趟季S來操作關(guān)系數(shù)據(jù)庫 綜上所述 本文提出了一個基于M V C 模式應(yīng)用S t r u t s 和H i b e rn a t e 技術(shù)的 J 2 E E 架構(gòu)來實現(xiàn)社區(qū)信息管理系統(tǒng)的解決方案 1 2 研究內(nèi)容 首先 主要是討論分析了J 2 E E 和M V C 模式 S U N公司的J 2 E E J a v a 2 平臺 企 業(yè)版 是一個基于J a v a 的 適合服務(wù) 器端構(gòu) 件體系結(jié)構(gòu)的 完整的 企業(yè)級 應(yīng)用 開發(fā)平臺 J 2 E E 技術(shù)主要有 E J B S e r v le t s J S P J D B C J N D I 等 J 2 E E 平臺的應(yīng) 用程序主要由構(gòu)件組成 應(yīng)用程序的邏輯被封裝到實現(xiàn)各種功能的一些構(gòu)件中 這些構(gòu)件具有固定的格式并遵循J 2 E E規(guī)范 應(yīng)用系統(tǒng)的開發(fā)就是設(shè)計這些構(gòu)件 并組裝成整個應(yīng)用 而 W C M o d e l V i e w C o n t r o l l e r 模式正是將系統(tǒng)劃分為模 型層 視圖層 控制層 采用M V C模式構(gòu)建W e b 應(yīng)用系統(tǒng)的體系結(jié)構(gòu) 能夠有 效地解決在W e b 應(yīng)用系統(tǒng)開發(fā)過程中由于系統(tǒng)結(jié)構(gòu)的復(fù)雜程度較高而帶來的諸 多 關(guān) 鍵性問 題 2 1 如代碼之間的 禍合問 題 代碼的易維護性問 題 組件的 可重 用 性問題 不同技能的開發(fā)人員如何分工的問題等等 其次 介紹了S t r u t s 和H i b e rn a t e 技術(shù) 以及如何運用這兩種技術(shù)構(gòu)建一個 基于MV C模式的J 2 E E架構(gòu) 并詳細介紹了基于該架構(gòu)的社區(qū)信息管理系統(tǒng)的 設(shè)計和實現(xiàn) 最后 本文通過對課題所涉及的相關(guān)概念和技術(shù)進行分析研究之后 針對目 前社區(qū)信息管理中普遍存在的各子系統(tǒng)數(shù)據(jù)庫異構(gòu)的問題 提出了基于對業(yè)務(wù)數(shù) 據(jù)進行主題域的劃分 采用H i b e rn a t e 數(shù)據(jù)訪問 技術(shù)實現(xiàn)對異構(gòu)數(shù)據(jù)庫的集成 消除了數(shù)據(jù)集成中對物理數(shù)據(jù)結(jié)構(gòu)的依賴 1 3 本文結(jié)構(gòu) 第 1 章 引言部分 陳述了本文的背景及意義 簡單地介紹了一些與本文相 關(guān)的概念和技術(shù) 給出了本文的主要研究內(nèi)容 第2 章 首先介紹了基于B S的We b 應(yīng)用體系結(jié)構(gòu)的發(fā)展 然后介紹了J 2 E E 碩士研究生畢業(yè)論文基于MV C模式的J 2 E E應(yīng)用研究與開發(fā) 體系結(jié)構(gòu)以及MV C模式在We b 應(yīng)用體系結(jié)構(gòu)中的應(yīng)用 第3 章 詳細介紹了S t r u t s 框架的主要技術(shù)及其工作原理 第4 章 對OR M a p p in g 對象關(guān)系映射 框架 H i b e rn a t e 的體系結(jié)構(gòu)及工 作流程進行詳細介紹 第5 章 給出了基于MV C模式應(yīng)用 S t r u t s 和H i b e rn a t e 技術(shù)的J 2 E E應(yīng)用一 社區(qū)信息管理系統(tǒng)的解決方案 在此基礎(chǔ)上 應(yīng)用前面幾章介紹的相關(guān)技術(shù) 對 社區(qū)信息管理系統(tǒng)的開發(fā)進行了介紹 包括系統(tǒng)設(shè)計 實現(xiàn)等內(nèi)容 第6 章 介紹了利用H i b e rna t e 數(shù)據(jù)訪問技術(shù)解決社區(qū)信息管理系統(tǒng)中數(shù)據(jù) 庫異構(gòu)的問題 第7 章 總結(jié)本文并說明以后的進一步工作 碩士研究生畢業(yè)論文基于m v C模式的J 2 E E 應(yīng)用研究與開發(fā) 第3 章S t r u t s 框架 S t r u t s 的體系結(jié)構(gòu) J a k a r ta是 A p a c h e S o ft w a r e的一個研究開發(fā) J a v a產(chǎn)品的工程 主要為 開 發(fā)者提供各種開 發(fā)工具及軟件框架t 1 6 1 S t r u t s 是 J a k a r t a 工程提供的 用于 W e b 應(yīng)用軟件的框架 他采用了MV C模型 2 它的創(chuàng)建者希望改進和提高 lla發(fā) 3 Jav形 S e r v l e t J S P 標簽庫 以 及面向 對象的技術(shù)水平 S t r u t s 這個名字來源于在建 筑和舊式飛機上使用的支持金屬框架 它的目的是使運用 MV C模式開發(fā) We b 應(yīng)用的時間減少 在利用 J S P S e r v l e t的優(yōu)點建立可擴展的 J 2 E E W e b應(yīng)用時 S t r u t s是個不錯的選擇 S t r u t s是一個 We b F r a m e w o r k 它繼承了 MV C的各項 特性 并根據(jù) J 2 E E的特點 做了相應(yīng)的變化和擴展 它通過把一組相互協(xié)作 的類S e r v l e t 以及標簽庫結(jié)合在一個統(tǒng)一的框架中 將 MV C模式所具有的 分 離業(yè)務(wù)邏輯和顯示邏輯 的能力發(fā)揮到了極點 完全實現(xiàn)了 M o d e 1 2 并很好的 幫助 J a v a開發(fā)人員開發(fā) J 2 E E W e b 層 S t r u t s實質(zhì)上就是在 Mo d e l 2的基礎(chǔ)上實現(xiàn)的一個 MV C架構(gòu) 它只有一 個中心控制器 它采用 X M L定制轉(zhuǎn)向 使用 A c t i o n來處理邏輯 S t r u t s由 S e r v le t 標記庫 實用類庫等構(gòu)成 它提供了自己的控制器 同時整合了其它的 一些技術(shù)去實現(xiàn) Mo d e l 層和 V i e w層 它的體系結(jié)構(gòu)如圖3 1 所示 圖3 1 S t ru t s 體系結(jié)構(gòu)圖 從圖中看到 S t r u t s的三個部分 碩士研究生畢業(yè)論文基于mv C模式的J 2 E E應(yīng)用研究與開發(fā) 1 視圖 視圖主要是由 J S P建立 S t r u t s自身包含一組標記庫 是 S t r u t s 的精華之 1 9 它們可以 簡 化 J S P頁面的 代碼 靈活運用它們可以大大提高 他們的 開發(fā) 效率 2 模型 S t r u t s中的模型由一系列的 b e a n來實現(xiàn) 可以自己定義業(yè)務(wù)邏輯 b e a n S t r u t s本身還提供了一種非常有用的 b e a n 即 F o r c n B e a n 它可以 在模型和視圖 之間保存數(shù)據(jù) 3 控制器 S t r u t s中的控制器主要是它自 身提供的 A c t i o n S e r v l e t 而 A c t i o n S e r v l e t的 核心就是 s t r u t s c o n f i g x m l 配置文件 它包含了所有頁面導(dǎo)航的定義 A c t i o n S e r v l e t 接受請求 并根據(jù)配置文件中的定義將控制轉(zhuǎn)移到適當?shù)?A c t i o n 類 其余的控制邏輯和對模型的訪問由 A c t i o n類來完成 3 2 詳細論述 S t r u t s的主要類 S t r u t s框架中相互協(xié)作的類 主要包括 A c t i o n S e r v l e t A c t i o n A c t i o n F o r m A c t i o n M a p p i n g 它們的 調(diào)用關(guān)系如圖3 2 所示 圖3 2 S t r u t s 類間的調(diào)用關(guān)系 這些類的概念如下 A c t i o n S e r v l e t 它充當了控制器 它根據(jù) H T T P請求信息調(diào)用類 A c t i o n 并根據(jù)其執(zhí)行結(jié)果選擇調(diào)用的 J S P文件 A c t i o n 它是模型中完成邏輯 b e a n的功能的類 完成數(shù)據(jù)的處理 A c t i o n F o r m 它是模型中完成數(shù)據(jù) b e a n的功能的類 它保存從 H T T P請 求中取得的數(shù)據(jù) 并包含數(shù)據(jù)的設(shè)定和取得等操作 碩士研究生畢業(yè)論文基于M V C模式的J 2 E E 應(yīng)用研究與開發(fā) A c t i o n M a p p i n g 它包含有關(guān) 特定事件如何被映射到特定 A c t i o n類的 信息 正因為這些類的相互協(xié)作 才構(gòu)成了 S t r u t s框架 S t r u t s中各個類的作用歸納如下 D A c t i o n S e r v l e t 類 它是 S t r u t s的命令部分 是框架的核心 A c t i o n S e r v l e t 創(chuàng)建并使用 A c t i o n A c t i o n F o r m A c t i o n F o r w a r d S t r u t s的控制器通過 s t ru t s c o n f ig x m l 文 件配 置 A c t i o n S e r v le t 將事 件映 射到 類的 一 個 s e r v le t 在創(chuàng) 建 We b項目時 程序員將擴展 A c t i o n 和 A c t i o n F o r m 來解決特定的問題 配 置文件 s t r u t s c o n fi g x m l 告訴我們 A c t i o n S e r v l e t 如何使用這些擴展的 類 A c t i o n F o r m類 它維護W e b 應(yīng)用程序的會話狀態(tài) A c t i o n F o r m是一個抽 象類 必須為每個表單輸入模型創(chuàng)建該類的子類 輸入表單中的數(shù)據(jù)能夠直接從 請求流中提取出來 并轉(zhuǎn)移到 A c t i o n F o r m 類中 這樣就省去了很多繁雜的 re q u e s t g e t P a r a m e t e r O 調(diào)用 A c t i o n類 它是業(yè)務(wù)邏輯的一個包裝 但是 A c t i o n類要求控制應(yīng)用程序 的流程 而不應(yīng)該控制應(yīng)用程序的邏輯 盡量將業(yè)務(wù)邏輯放在單獨的包中或放在 b e a n中 這樣可以提供更大的靈活性和可復(fù)用性 A c t i o n M a p p i n g類 它包含有關(guān)特定事件如何被映射到特定A c t i o n類的 信息 輸入事件通常在 H T T P請求表單中發(fā)生的 S e r v l e t 容器將 H T T P請求轉(zhuǎn) 換為 H tt p S e r v le t R e q u e s t 控制器查看輸入事件 并將請求分派給某個 A c t i o n類 S tr u t s c o n f ig x m l 確定 控 制器 調(diào)用 哪個 A c t i o n類 S t r u t s c o n f ig x m l 中 的 配置 信 息就轉(zhuǎn)換成一組 A c t i o n M a p p in g 將其放入 A c t i o n M a p p i n g s容器中 A c t i o n S e r v l e t 通 過 p e r f o r m 方法將 A c t i o n M a p p in g傳遞給 A c t i o n類 這樣就 使 A c t i o n可訪問 用于控制流程的信息 3 3 控制器的運作 S t r u t s中有一個重要的配置文件 叫 s t r u t s c o n f i g x m l 主要用來保存 a c t i o n 的匹配信息 下面詳細論述了 S t r u t s的動作流程和各組件之間的關(guān)系 A c t i o n S e r v l e t 類中的 S e r v l e t 是 S t r u t s框架的核心 實際使用的S e r v l e t 在 配 置 文 件 述 進行定義 s t r u t s c o n fi g x m l 中 由一 組 映 射 由A c t i o n M a p p in g 類描 每個映射定義了 A c t i o n類的路徑和完全限定名 A c t i o n S e r v l e t 創(chuàng) 碩士研究生畢業(yè)論文基于M V C模式的J 2 E E 應(yīng)用研究與開發(fā) 建和使用 A c t i o n A c t io n F o r m A c t i o n F o r w a r d 在創(chuàng)建 W e b應(yīng)用時 采用擴展 A c t i o n和 A c t i o n F o r m來解決如何響應(yīng)用戶請求的問 題 A c t i o n S e r v l e t 通 過 s t r u t s c o n f i g x n il知道如何使用擴展類 也可以擴展 A c t i o n S e r v l e t 從而使 S t r u t s應(yīng)用帶有一些自 定義的特性 當控制器組件接收到 一個來自 用戶的 H T f P請求時 通常是一個 后綴為 d o的請求 就開始查找 針對這個請求的動作映射 再檢查是否曾 經(jīng)創(chuàng)建過相應(yīng)的動作對象 A c t i o n實 例 如果沒有 則調(diào)用 A c t i o n M a p p i n g生成一個動作對象 控制組件會保存這 個動作對象供以后使用 接著調(diào)用 A c t i o n M a p p i n g的方法得到 A c t i o n F o r m對 象 然 后把這個 A c t i o n F o r m對象當 作參數(shù)傳遞給動作對象的p e r f o r m o 方法 這個方法結(jié)束后會返回給控制組件一個A c t i o n F o r w a r d對象 控制組件從這個對 象中獲取下一個視圖的路徑或重定 向?qū)傩?如果為重定向?qū)傩?則調(diào)用 H tt p S e r v le t R e s p o n s e的 方 法 顯示 下 一 視 圖 否 則 相 繼 調(diào) 用 R e q u e s t D i s p a tc h e r S e r v le t C o n t e x t 續(xù) 傳 H T f P請 求到 下一 個視圖 當 動作 對 象 運行 p e r f o r m 方法時 可能出 現(xiàn)錯誤信息 動作對象可以 保存這些錯誤信息到 一個 A c t i o n E r r o r 對象中 再調(diào)用自身的 s a v e E r r o r s o 方法把這個錯誤保存到 R e q u e s t 對象的 屬性中 接著動作對象調(diào)用 A c t i o n M a p p in g對象的 g e t l n p u t o 方 法從動作映射中獲取 i n p u t 參數(shù) 也就是產(chǎn)生輸入的視圖 并以 這個i n p u t 為參 數(shù)生成一個 A c t i o n F o r w a r d對象返回 這個 i n p u t 參數(shù)的 J S P中一般由 h t t p e r r o r s定制標簽讀取這些錯誤信息并顯示在頁面上 S t ru t s的 組件相互協(xié)作 完成了整個框架的運作 碩士研究生畢業(yè)論文基于 mv C模式的J 2 E E應(yīng)用研究與開發(fā) 第4 章H i b e r n a t e 技術(shù)的原理 4 1 起源 面向 對象作為接近真實客觀世界的開發(fā)概念 使程序代碼更易讀 設(shè)計更合 理 在普遍存在的數(shù)據(jù)庫應(yīng)用領(lǐng)域 開發(fā)人員對面向?qū)ο蟮淖非髲奈赐V惯^ 從八十年代開始 就有很多公司和研究機構(gòu)在進行著面向 對象與數(shù)據(jù)庫結(jié)合 的研究 數(shù)據(jù)庫的對象化一般有兩個方向 一個是在主流的關(guān)系數(shù)據(jù)庫的基礎(chǔ)上 加入對象化特征 使之提供面向 對象的服務(wù) 但訪問 語言還是基于 S Q L 另一 個方向就是徹底拋棄關(guān)系數(shù)據(jù)庫 用面向?qū)ο蟮乃枷雭碓O(shè)計數(shù)據(jù)庫 即 O D B M S 對象數(shù)據(jù)庫管理系統(tǒng) o 但是O D B MS的研究和廣泛推廣還有待時日 目 前關(guān)系數(shù)據(jù)庫還在雄霸天 下 因此很多應(yīng)用還是采用簡單的J D B C來訪問數(shù)據(jù)庫 可是J D B C也有很多局 限性 比如調(diào)用復(fù)雜 容易產(chǎn)生資源泄漏等等 與面向?qū)ο蟮腏 a v a 語言有一段 距離 所以很多開發(fā)小組開始思考如何將應(yīng)用中的數(shù)據(jù)進行對象化建模 然后再 想辦法與J D B C結(jié)合起來 這就是J a v a 數(shù)據(jù)庫開發(fā)中的不斷推陳出新的對象包 裝技術(shù) 2 0 1 要將現(xiàn)有的 J a v a對象持久保存到關(guān)系數(shù)據(jù)庫 就使用對象 關(guān)系映射 O b j e c t R e l a t i o n a l M a p p in g O R M 工 具來 完 成 它 們能 夠 將 對 象映 射到 關(guān)系 數(shù) 據(jù) 庫中的 行 從而不再需要復(fù)雜的持久層 并且使開發(fā)人員只需編寫最少的S Q L 在 多數(shù)情況下不需編寫任何S Q L 免費的 瓜 M a p p i n g工具有很多種 其中比較有影響力的一種就是 H i b e rn a t e H i b e rn a t e 是一個現(xiàn)在很火的 R M a p p i n g 產(chǎn)品 目 前己 經(jīng)出 到3 0 版 它是開源軟件 代碼完全公開 它的接口和類雖然簡單 但它的功能很強大 它 的 查 詢 語 言也 很獨 特1 H ib e rn a t e 和其 它的 R M a p p in g 工 具比 更 具 有 親 和 力 對關(guān)系的查詢更方便 目 前H i b e rna t e 的用戶量和技術(shù)支持越來越多了 碩士研究生畢業(yè)論文基于M V C模式的J 2 E E 應(yīng)用研究與開發(fā) 4 2 H i b e r n a t e 的體系結(jié)構(gòu) 現(xiàn)在發(fā)布的H i b e m a t e 3 0 支持幾乎所有的流行的數(shù)據(jù)庫 它可以 和多種W e b 服務(wù)器或者應(yīng)用服務(wù)器良 好集成 使得開發(fā)者可以根據(jù)不同的需要來選擇W e b 服務(wù)器 圖4 1 展示了H i b e rn a t e 使用數(shù)據(jù)庫和配置文件數(shù)據(jù)來為應(yīng)用程序提供持久 化的 服務(wù) 和持久化的 對象 在應(yīng)用層和數(shù)據(jù)庫之間的持久層中 有H i b e rn a t e 的持久對象 配置文件及 映射文件 我們在應(yīng)用和數(shù)據(jù)庫之間創(chuàng)建了 持久層 是對操作數(shù)據(jù)部分的抽 象 它的任務(wù)是存儲從應(yīng)用到數(shù)據(jù)庫的數(shù)據(jù) 數(shù)據(jù)的檢索 更新和刪除 使用 H i b e rn a t e 對數(shù)據(jù)進行持久化操作 把數(shù)據(jù)庫的表映射成類 把通常對表的操作 變成對對象的操作 這樣 我們就有了 面向?qū)ο?的很多優(yōu)點 A p p l i c a t i o n P e r s i s t e n t O b j e c t s H i b e r n a t e D a t a B a s e 圖 4 1 H i b e r n a t e體系結(jié)構(gòu)概覽 P e r s i s t e n O b j e c t s 州D IJ D B C S e s s i o n F a c t o r J T A D a t a b a s e 圖4 2輕型體系結(jié)構(gòu) 碩士研究生畢業(yè)論文基于 mv C模式的J 2 E E應(yīng)用研究與開發(fā) H i b e rn a t e 有好幾種不同的運行方式 圖4 2 所示為輕型體系結(jié)構(gòu) 在這種體 系結(jié)構(gòu)中使用了H i b e r n a t e A P I 的一個最小子集 應(yīng)用程序自己 提供了J D B C連 接 并且自行管理事務(wù) 下面介紹一種復(fù)雜體系結(jié)構(gòu) 如圖4 3 所示 這是一種全面解決體系 對于 應(yīng)用程序而言 所有的底層J D B C J T A A P I 都被抽象化了 H i b e r n a t e 會替你照顧 所有的細節(jié) 不同于輕型體系結(jié)構(gòu)中直接和J D B C J T A對話 在這里程序使用了 T r a n s a c t i o n I t a n s a c t i o n F a c t o ry或者C o n n e c t i o n P r o v i d e r A P I 下 面 是圖 中 的 一 些 對象 i1 3 1 會話工廠 S e s s i o n F a c t o ry 用于創(chuàng)建會話 是 S e s s i o n的工廠 也是 C o n n e c t i o n P r o v i d e r的客戶 它是對編譯過的映射文件的一個線程安全的 不可 變的緩存快照 A p p l i c a t i o n S e s s i o n F a c t o ry P e r s i s t e n t O b j e c t s S e s s i o n Tr a n s a t i o n J TAJ NDIJ DBC Da t a b a s e 圖4 3 復(fù)雜體系結(jié)構(gòu) 會話S e s s i o n H i b e r n a t e 會話封裝了一個J D B C連接 是T r a n s a c t i o n的工廠 它是單線程 生命期短促的對象 代表應(yīng)用程序和持久化層之間的一次對話 它 是由S e s s i o n F a c t o ry創(chuàng)建的 持久化對象P e r s i s t e n t O b j e c t s 生命期短促的單線程對象 包含了持久化狀 態(tài)和商業(yè)功能 它們可能是普通的J a v a B e a n s 唯一不同的是它們現(xiàn)在從屬于且 僅從屬于一個S e s s i o n 臨時對象T r a s i e n t O b j e c t s 臨時對象是指目 前還沒有從屬于一個S e s s i o n 的 持久化類的實例 它們可能剛剛被程序?qū)嵗?還沒有來得及被持久化 或者是 碩士研究生畢業(yè)論文基于M v C模式的J 2 E E 應(yīng)用研究與開發(fā) 被一個己經(jīng)關(guān)閉了的S e s s i o n所實例化的 事務(wù)T r a n s a c t i o n 可選 單線程生命期短促的對象 應(yīng)用程序用它來表示一 批工作的原始操作 是底層的J D B C J T A和C O R B A事務(wù)的抽象 它是由S e s s i o n 創(chuàng)建的 一個S e s s i o n 可以跨越多個T r a n s a c t i o n 事務(wù) C o n n e c t i o n P r o v i d e r 可選 J D B C 連接的工廠和池 從底層的D a t a s o u r c e 或 者D ri v e r M a n a g e r 抽象來 對應(yīng)用程序不可見 T r a n s a c t i o n F a c t o ry 可選 事務(wù)實例的工廠 對應(yīng)用程序不可見 以上介紹了H i b e rn a t e 的體系結(jié)構(gòu) 利用它開發(fā)W e b 應(yīng)用程序的方法很多 在下載的H i b e rn a t e 中包括了h i b e m a t e 2 j a r 和l i b目 錄下的2 2 個j a r 包 對要深入 研究H i b e rna t e 的開發(fā)者來說 詳細了解這些包是必要的 4 3 S e s s i o n F a c t o r y 配置 H i b e rn a t e被設(shè)計為可以在許多不同環(huán)境下工作 所以它有很多配置參數(shù) 幸運的是 大部分都已經(jīng)有默認值了 H i b e rna t e配置文件可以有兩種格式 一 種是h i b e rn a t e p r o p e r ti e s 另一種是h i b e rn a t e c f g x m l H i b e rn a t e 發(fā)行包中附帶有 示例 的 h i b e m a t e p r o p e rt i e s文件 在 h i b e rn a t e的 s r c 目錄下有一個 h i b e m a t e p r o p e r ti e s 模板 它 演示了 一些可變的 參數(shù) 我們不必自 己 從頭寫 修 改模板就可以了 方便我們配置自 己 的參數(shù) 使用h i b e rn a t e c f g x m l 配置文件也 很方便 當增加了h b m映射文件的時候 就可以直接在配置文件里加 不必像 h i b e rn a t e p r o p e r t i e s必須在初始化代碼中加入 文中實例采用的就是 h i b e rn a t e c 絕A m l 下面簡要敘述了S e s s i o n F a c t o ry配置中的主要方面 1 初始化映射文件 n e t s f h i b e rn a t e c f g C o n f i g u r a t i o n 的 一 個實 例代表了 應(yīng)用程序中 所有的J a v a 類到關(guān)系數(shù)據(jù)庫的映射的集合 這些映射是從一些X ML 映射文件中編譯而來的 直接實例化C o n fi g u r a t i o n 可以 得到它的一個實例 C o n f i g u r a t i o n 是僅在配置期使用的對象 從第一個S e s s i o n F a c t o ry開始建立 的時候 它就失效了 2 建立S e s s i o n F a c t o ry 碩士研究生畢業(yè)論文 基于N t v C模式的J 2 E E 應(yīng)用研究與開發(fā) 當所有的映射都被C o n f i g u r a t i o n 解析之后 應(yīng)用程序為了得到S e s s i o n 實例 必須先得到它的工廠 這個工廠應(yīng)該是被應(yīng)用程序的所有線程共享的 值得注意 的是 H ib e r n a t e 允許 程序?qū)嵗?個S e s s i o n F a c t o ry 這種情況出 現(xiàn)在應(yīng)用 程序 使用多個數(shù)據(jù)庫的時候 建立S e s s i o n F a c t o ry的代碼如下 S e s s i o n F a c t o ry f a c t o r y c o n f i g u r a t i o n b u i l d S e s s i o n F a c t o ry o 3 用戶自 行提供J D B C連接 S e s s i o n F a c t o ry可以 使用一個用戶自 行提供的J D B C 連接來打開一S e s s i o n 這種設(shè)計可以讓應(yīng)用程序來自己管理J D B C連接 應(yīng)用程序不能在同一個連接上 打開多個并行的s e s s i o n 用戶自 行提供J D B C 連接的代碼如下 J a v a s g l C o n n e c t i o n c o n n d a t a s o u r c e g e t C o n n e c t i o n o 1 S e s s io n s e s s f a c t o ry o p e n S e s s i o n c o n n 2 T r a n s a c t i o n t x s e s s b e g i n T r a n s a c t i o n o 3 第 3 行是可選的 代表開始一個新的事務(wù) 應(yīng)用程序也可能選擇自 行管理 J T A或者J D B C事務(wù) 不過 如果使用H i b e rn a t e 的T r a n s a c t i o n 你的客戶代碼 就可以從底層的實現(xiàn)中 抽象出 來了 t e 如說 你可以 將來在需要的時候切換到 C O R B A連接 而不需要修改程序代碼 4 H i b e rn a t e 提供的J D B C連接 H i b e rn a t e 的S e s s i o n F a c t o ry會替你打開連接 而無需用戶自 行提供J D B C 連 接 但是 S e s s i o n F a c t o ry必須事先知道連接的參數(shù) 有好幾種不同的 方法設(shè)置參數(shù) 文中的實例使用的是h i b e rn a t e c f g x m l 文件 在這個配置文 件中 包含了 元素 在h i b e rn a t e c f g x n il 文件中 我 們設(shè) 置了h i b e rn a t e 的很多連接數(shù)據(jù)庫的屬性 使用這樣的方法 打開一個S e s s i o n 是 很簡單的 H i b e r n a t e 提供的J D B C連接的代碼如下 S e s s i o n s e s s 0 f a c t o ry o p e n S e s s i o n o 1 T r a n s a c t i o n t x s e s s b e g i n T r a n s a c t i o n o 2 第 1 行代碼表示獲得了 一個J D B C連接并且實例化了 一個S e s s i o n 后面一 行代碼表示開始一個新的事務(wù) 可選 所有的H i b e rn a t e 屬性名和約束都在n e t s f h i b e m a t e c f g E n v i r o n m e n t 類中定 義 其中最重要的一些屬性用途如表4 1 所示 碩士研究生畢業(yè)論文基于 Mv C模式的J 2 E E應(yīng)用研究與開發(fā) 表4 一1 h i b e m a t e 主要屬性表 屬性名用途 h i b e ma t e c o n n e c t i o n d r i v e r c l a s s j d b c 驅(qū)動類 h i b e ma t e c o n n e c t i o n u r l j d b c L J R L h i b e ma t e c o n n e c t i o n u s e ma me 數(shù)據(jù)庫用戶名 h i b e m a t e c o n n e c t i o n p a s s w o r d數(shù)據(jù)庫用戶密碼 h i b e rn a t e c o n n e c t i o n p o o l s iz e連接池容量最大數(shù) 圖中是H i b e rn a t e 的J D B C屬性 如果我們設(shè)置了這些屬性 H i b e rna t e 就會 使用j a v a s g l D r
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水利實務(wù)試題及答案
- 白庇中醫(yī)護理方案
- 喉罩的護理措施
- IT培訓(xùn)咨詢師年中分享
- 2025年 東營市中醫(yī)院招聘考試試卷附答案
- 2025年中國噴霧曬黑機行業(yè)市場全景分析及前景機遇研判報告
- 銷售員工衛(wèi)生培訓(xùn)
- 信息技術(shù)培訓(xùn)小結(jié)
- 教師安全培訓(xùn)會
- 現(xiàn)代心血管病護理
- 老人集中供養(yǎng)管理制度
- 音標考試卷及答案二年級
- 四川省成都市武侯區(qū)2023-2024學(xué)年八年級下學(xué)期語文期末試卷(含答案)
- 幼小銜接合同協(xié)議書
- 2025年福建省糧食行業(yè)職業(yè)技能競賽(糧油質(zhì)量檢驗員)備賽試題庫(含答案)
- 2025上半年水發(fā)集團社會招聘(391人)筆試參考題庫附帶答案詳解
- 2025蕪湖市鳩江區(qū)裕溪口街道社區(qū)工作者考試真題
- 2025年廣東省深圳市龍華區(qū)中考數(shù)學(xué)二模試卷
- 熊膽粉初稿完整版本
- 堅守廉潔底線弘揚清風(fēng)正氣
- 小區(qū)物業(yè)管理計劃書:范文
評論
0/150
提交評論