版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1,Jakarta-Struts開源項目的研究與Web應用,指導教師:李 祥 教授答 辯 人:鐘 進,貴州大學計算機軟件與理論研究所,2,選題背景及意義,目前,Sun公司的Java 2 Enterprise Edition(J2EE)平臺已經(jīng)日趨成熟,并得到廣泛應用。隨著J2EE技術的成熟,越來越多的開發(fā)人員開始使用Web應用框架來進行開發(fā)。框架為Web應用程序提供了預備的軟件架構和相關的軟件包,它極大地提高了開發(fā)人員開發(fā)的速
2、度和效率。Jakarta-Struts是 Apache軟件組織提供的一項開放源代碼項目,從2000年5月開始項目啟動以來,經(jīng)過長達五年的發(fā)展,Struts已經(jīng)逐漸成長為一個穩(wěn)定、成熟的框架,并且占有了MVC框架中最大的市場份額。Struts是目前Java Web MVC框架中不爭的王者。隨著Struts在業(yè)界的大量使用,也促使J2EE技術進行改變,在新的J2EE技術中的Web層的新框架JSF(JavaServerFaces),就是對
3、Struts的思路進行改進的產(chǎn)物。,貴州大學計算機軟件與理論研究所,3,系統(tǒng)是一套以互聯(lián)網(wǎng)為基礎,結合WEB技術、JAVA技術、工作流技術、數(shù)據(jù)庫技術,將傳統(tǒng)物流的倉儲業(yè)務和與金融的質押貸款業(yè)務有機結合在一起的綜合管理信息系統(tǒng)。 系統(tǒng)的主要功能包括:金融協(xié)議管理、貨物評估管理、貨物庫存管理、銀行貸款管理、業(yè)務風險監(jiān)控、綜合查詢分析和報表等。 系統(tǒng)采用了B/S結構,系統(tǒng)的所有用戶可以通過Internet遠程使用本系統(tǒng),不受時間和地點的
4、限制,進行遠程的業(yè)務操作和業(yè)務監(jiān)控。 系統(tǒng)基于Struts框架進行開發(fā),并根據(jù)實際需求使用和擴展Struts框架技術,基于模型-視圖-控制器(Model-View-Controller,MVC)設計模式,將各個模塊和對象,封裝在各個類中,使系統(tǒng)具有開放、安全、健壯、跨平臺等優(yōu)勢。,本文所做的主要工作與創(chuàng)新之處,貴州大學計算機軟件與理論研究所,4,在系統(tǒng)中使用香港志鴻科技公司研發(fā)的Comlib軟件包來進行系統(tǒng)的持久化操作及借助Comli
5、b提供的緩存機制來提高數(shù)據(jù)的存取性能,從而提高了系統(tǒng)的整體性能; 系統(tǒng)實現(xiàn)了對國際化的支持。,本文所做的主要工作與創(chuàng)新之處,貴州大學計算機軟件與理論研究所,5,Struts的基本原理 Struts的模型組件 Struts的視圖組件 Struts的控制器組件 論文工作的實際應用,內容提要,貴州大學計算機軟件與理論研究所,6,Struts的基本原理,MVC即Model-View-Controller的縮寫,是一種常用的設
6、計模式。MVC 減弱了業(yè)務邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。MVC的工作原理,如下圖所示:,貴州大學計算機軟件與理論研究所,7,Struts的基本原理,Struts 是MVC的一種實現(xiàn),它將 Servlet和 JSP 標記(屬于 J2EE 規(guī)范)用作實現(xiàn)的一部分。Struts繼承了MVC的各項特性,并根據(jù)J2EE的特點,做了相應的變化與擴展。Struts的體系結構與工作原理如圖所示,,貴州大學計算機軟件與理論研究所,
7、8,Struts的模型組件,模型是應用程序中最重要的一部分,它包含了業(yè)務實體和業(yè)務規(guī)則,負責訪問和更新持久化數(shù)據(jù)。應該把所有的模型組件放在系統(tǒng)中的同一個位置,這有利于維護數(shù)據(jù)的完整性,減少數(shù)據(jù)冗余,提高可重用性。模型應該和視圖以及控制器之間保持獨立。在分層的框架結構中,位于上層的視圖和控制器依賴于下層模型的實現(xiàn),而下層模型不應該依賴于上層的視圖和控制器的實現(xiàn)。Struts應用的層次之間的依賴關系應是: ?
8、逐漸加強視圖層?控制層 ?模型層?持久化層 ?逐漸減弱如果在模型組件中通過Java的import語句引入了視圖或控制器組件,就違反了以上原則。下層組件訪問上層組件會使WEB應用的維護、重用和擴展變得困難。,貴州大學計算機軟件與理論研究所,9,Struts的模型組件,大多數(shù)WEB應用程序的需求文檔都是從視圖的角度出發(fā)來制定的,然而每個對客戶提交的請求的處理過程同時也是從模型層的角度定義的!一般而言,模型組件的開發(fā)者
9、將著重于創(chuàng)建支持所有功能性請求的JavaBean。在應用程序中的Bean一般可分為以下幾類:,貴州大學計算機軟件與理論研究所,10,ActionForm Bean :用來在模型層和視圖層中傳輸數(shù)據(jù);系統(tǒng)狀態(tài)Bean :用來表示系統(tǒng)的實際狀態(tài)的JavaBean ;業(yè)務邏輯Bean :為執(zhí)行業(yè)務邏輯而設計的Bean 。,Struts的模型組件,貴州大學計算機軟件與理論研究所,11,Struts的視圖組件,視圖是模型的外在表現(xiàn)形式,用戶通
10、過視圖來了解模型的狀態(tài)。同一個模型可以有多種視圖,用戶可以根據(jù)自己的需要來訪問不同的視圖。Struts除了提供與輸入表單的交互外還提供對應用程序的國際化支持。,貴州大學計算機軟件與理論研究所,12,Struts的視圖組件,Struts的視圖組件可以分為以下幾個主要組件1. JSP頁面:JSP是Struts視圖層的核心部分,JSP中包含有用戶與之進行交互的用戶界面代碼。Struts應用程序中的JSP與任何其它基于Java的Web應用程
11、序中的JSP類似。但是,要遵循MVC體系結構,JSP就不應包含任何實現(xiàn)業(yè)務邏輯或直接訪問數(shù)據(jù)源的代碼。,貴州大學計算機軟件與理論研究所,13,Struts的視圖組件,2. JSP標簽庫:Struts封裝了一套自定義的JSP 標簽庫,該標簽庫可以幫助開發(fā)JSP。標簽庫是構建Struts應用程序的基本模塊,因為它們提供了一種用來創(chuàng)建其數(shù)據(jù)將在Form Bean中被捕獲的HTML表單和顯示被存放在Form Bean中的數(shù)據(jù)的機制。此外Str
12、uts的標簽庫還提供了多種實用的程序標簽,用以完成諸如條件邏輯、遍歷集合等操作。 Struts的標簽庫分為以下幾種:HTML;用于生成與Struts API交互的HTML表單Bean:用于在JSP中處理Java Bean對象。Logic:用于在JSP中實現(xiàn)簡單的條件邏輯。Nestd:用于嵌套任何多層的無法獨立工作的HTML、Bean、和Logic標簽。,貴州大學計算機軟件與理論研究所,14,Struts的視圖組件,3.資源束:
13、資源束通過將應用程序內容以束的形式放置,應用程序在運行時可以讀取這些內容,從而輕松地實現(xiàn)java應用程序的國際化。Struts具有處理Java資源束的內置支持機制。該機制允許Struts框架完全支持應用程序的國際化和具有對內容進行擴展的機制,這使得可以輕松地更改內容,而無需修改JSP和應用程序代碼。Struts在整個框架內使用資源束資源。,貴州大學計算機軟件與理論研究所,15,Struts提供了強大的控制器層組件,并將該層設計為可完全擴
14、展??刂破鲗拥暮诵氖茿ctionServlet,它負責通過Struts配置文件初始化應用程序的配置,并負責接收發(fā)至應用程序的所有傳入的請求。每當接收至一個請求,ActionServlet會將它委托給RequestProcessor類進行處理。RequestProcessor將處理請求的各個方面,包括選擇與請求相關聯(lián)的Form Bean、用數(shù)據(jù)填充Form Bean、驗證Form Bean的有效性以及選擇正確的Action類來執(zhí)行該請求。
15、,Struts的控制器組件,貴州大學計算機軟件與理論研究所,16,Struts的控制器組件,控制器層的生命周期如下圖所示:,瀏覽器,,ActionServlet,RequestProcessor,操作,模型,視圖,,,,,,,,貴州大學計算機軟件與理論研究所,17,Struts的控制器組件,控制器層的主要組件:1.ActionServlet類:主要的控制器類,用于接收應用程序所有傳入的HTTP請求和負責初始化應用程序的Struts框
16、架。2.RequestProcessor類:用于處理ActionServlet接收到的所有請求。3.Action類:它是Struts框架的終點和應用程序程序代碼的起點。Action類將視圖層與模型層聯(lián)系在一起,并負責處理特定的請求。Action類旨在將視圖層的數(shù)據(jù)傳輸至模型層中的特定事務處理,然后將事務處理后的數(shù)據(jù)返回視圖層。,貴州大學計算機軟件與理論研究所,18,“倉單質押管理信息系統(tǒng)”是一套以互聯(lián)網(wǎng)為基礎,結合WEB技術、J
17、AVA技術、工作流技術、數(shù)據(jù)庫技術,將傳統(tǒng)物流的倉儲業(yè)務和與金融的質押貸款業(yè)務有機結合在一起的綜合管理信息系統(tǒng)。系統(tǒng)的主要功能包括:金融協(xié)議管理、貨物評估管理、貨物庫存管理、銀行貸款管理、業(yè)務風險監(jiān)控、綜合查詢分析和報表等;,論文工作的實際應用,貴州大學計算機軟件與理論研究所,19,論文工作的實際應用,系統(tǒng)技術特點:采用WEB技術,系統(tǒng)的所有用戶可以通過Internet遠程使用本系統(tǒng),不受時間和地點的限制,進行遠程的業(yè)務操作和業(yè)務監(jiān)
18、控。應用三層架構,采用的跨平臺的JAVA技術,保證了系統(tǒng)的先進性、擴展性和穩(wěn)定性。采用大型數(shù)據(jù)庫技術,保證了數(shù)據(jù)的完整、高效和安全。通用接口設計,保證了系統(tǒng)的可擴展性以及與其它信息系統(tǒng)的對接??刹僮餍詮姡捎霉ぷ髋_、關聯(lián)設計,智能導向、可視化圖表。,貴州大學計算機軟件與理論研究所,20,論文工作的實際應用,對Struts技術的應用與擴展:模型層:系統(tǒng)采用Microsoft的SQL Server2000數(shù)據(jù)庫,在系統(tǒng)中使用香港志
19、鴻科技公司研發(fā)的Comlib軟件包來進行系統(tǒng)的持久化操作,使用通過數(shù)據(jù)訪問對象(DAO)將Comlib訪問數(shù)據(jù)庫的語句封裝起來,然后在其它層中統(tǒng)一調用,不僅提高了程序的運行效率,而且還解決了一般常出現(xiàn)的因DAO對象和SQL語句緊密耦合在一起而在大型項目中難以維護的缺點。另外在系統(tǒng)中還借助Comlib提供的緩存機制來提高數(shù)據(jù)的存取性能,從而提高了系統(tǒng)的整體性能。視圖層:使用JSP和Struts中定制的標簽來顯示和獲取相應ActionFo
20、rm中的數(shù)據(jù),不包含任何實現(xiàn)業(yè)務邏輯或直接訪問數(shù)據(jù)源的代碼,這樣不僅遵循MVC體系結構的要求,而且還使JSP頁面便于管理和維護。另外在系統(tǒng)中基于Java的資源束功能,用于對應用程序字符串、消息和標簽進行具體化和國際化處理 。,貴州大學計算機軟件與理論研究所,21,論文工作的實際應用,控制器層:在系統(tǒng)中通過擴展RequestProcessor類的功能對用戶的訪問權限進行控制。本系統(tǒng)在以XML格式為主的外部配置文件中以聲明的方式指定系統(tǒng)的
21、許多配置,而不是將它們硬編碼到系統(tǒng)中,因此可以對系統(tǒng)進行各種更改而無需重新編譯任何代碼,極大地簡化了開發(fā)過程。,貴州大學計算機軟件與理論研究所,22,論文工作的實際應用,系統(tǒng)已在中國對外貿(mào)易運輸(集團)總公司上線運營,產(chǎn)生了一定的經(jīng)濟和社會效益。,貴州大學計算機軟件與理論研究所,23,發(fā)表論文及參加學術會議,在讀研究生期間,已在國家中文期刊《計算機應用研究》(增刊)發(fā)表一篇科研論文。參加學術會議Struts框架技術研究 ,深圳蛇口科
22、技大廈 , 2005年3月,貴州大學計算機軟件與理論研究所,24,論文工作總結,本文重點討論了Struts框架的基本原理、模型組件、視圖組件、控制器組件等幾個方面的技術,并結合自己對Struts框架技術的理解與展開,對Struts框架技術進行了闡述,給出了各層技術的研究與應用,特別是對Struts框架的核心技術和實現(xiàn)思想進行了詳細深入地研究。全文在討論Struts框架技術在開發(fā)Web應用程序中的應用的基礎上,詳細介紹了采用Struts框
23、架技術來開發(fā)的倉單質押管理信息系統(tǒng)項目的設計與實現(xiàn)。,貴州大學計算機軟件與理論研究所,25,致謝,衷心感謝我的導師李祥教授!從論文的選題、可行性研究、文獻的收集到研究工作的開展,特別是論文的撰寫,導師都給予了無微不至的關懷,提出了許多寶貴的建設性意見。感謝答辯委員會主席,感謝各位評委,感謝在座的各位來賓!最后,我還要感謝我的家人及朋友對我的學習工作的全力支持。 謝 謝!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Jakarta-Struts開源項目的研究與Web應用.pdf
- 利用開源框架struts+hibernate實現(xiàn)web應用程序
- 開源xAVS項目的研究與優(yōu)化.pdf
- 基于開源技術的Web應用框架研究與實現(xiàn).pdf
- 基于Struts的Web數(shù)據(jù)庫研究與應用.pdf
- 基于Struts框架的Web應用的研究與實現(xiàn).pdf
- 基于開源框架開發(fā)Web應用的研究與實現(xiàn).pdf
- Struts框架下Web應用系統(tǒng)的開發(fā)與研究.pdf
- 結合Struts與Hibernate的Web開發(fā)模式之研究與應用.pdf
- 基于Java開源項目的J2EE應用框架實現(xiàn).pdf
- 基于struts架構的web應用系統(tǒng)的設計與研究.pdf
- 基于開源平臺下的Web GIS原理研究與應用.pdf
- 商業(yè)公司利用開源項目的成功要素研究.pdf
- 基于Struts和Hibernate的Web應用的研究與實現(xiàn).pdf
- 基于STRUTS框架的WEB信息系統(tǒng)的研究與應用.pdf
- 擴展STRUTS框架的WEB應用實現(xiàn).pdf
- 采用開源軟件實現(xiàn)Web應用架構的研究.pdf
- 利用Struts與Hibernate框架構建Java Web應用的研究與實現(xiàn).pdf
- 基于Struts+Hibernate+Spring框架的Web應用與實現(xiàn).pdf
- 基于Struts和Hibernate的web應用的設計與實現(xiàn).pdf
評論
0/150
提交評論