面向服務(wù)架構(gòu)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
面向服務(wù)架構(gòu)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
面向服務(wù)架構(gòu)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
面向服務(wù)架構(gòu)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
面向服務(wù)架構(gòu)內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、畢業(yè)設(shè)計(jì)題 目 面向服務(wù)架構(gòu)的內(nèi)容管理系統(tǒng) 設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 院 XXXXXXXXXXXX 專 業(yè) XXXXX 班 級(jí) XXXXXX 學(xué) 生 XXXXXX 學(xué) 號(hào) XXXXXXX 指導(dǎo)教師 XXXXX 二XX 年 六 月 十 日摘 要在高校信息化進(jìn)程中,內(nèi)容管理系統(tǒng)扮演者非常重要的角色,各種教學(xué)資源(課件、視頻、文檔、圖像等)的存儲(chǔ)、各個(gè)門戶網(wǎng)站、各個(gè)教學(xué)輔助系統(tǒng),歸根結(jié)底都是內(nèi)容管理系統(tǒng)。傳統(tǒng)的內(nèi)容管理系統(tǒng)都是單獨(dú)設(shè)計(jì)分散部署的,這樣會(huì)造成大量的資源浪費(fèi),本課題利用面向服務(wù)架構(gòu)設(shè)計(jì)實(shí)現(xiàn)一個(gè)內(nèi)容資源統(tǒng)一存放,WEB前端分布式部署的內(nèi)容管理系統(tǒng),從而提高存儲(chǔ)的效率,降低系統(tǒng)的耦合度,提高系統(tǒng)的靈活

2、性。課題研究展開的過程中,我學(xué)習(xí)了Java EE技術(shù)及相關(guān)知識(shí),包括JSP、EJB、Servlet、JDBC、XML、JNDI等技術(shù),以及Struts框架、Spring框架、Hibernate和Web Service技術(shù);對(duì)內(nèi)容管理系統(tǒng)進(jìn)行詳細(xì)的需求分析和設(shè)計(jì);學(xué)習(xí)面向服務(wù)的架構(gòu),實(shí)現(xiàn)分布式內(nèi)容管理系統(tǒng)的架構(gòu)設(shè)計(jì);內(nèi)容管理系統(tǒng)主要功能的實(shí)現(xiàn),包括權(quán)限管理、內(nèi)容資源的顯示、內(nèi)容資源的添加修改刪除等;學(xué)習(xí)ExtJs框架,從而簡化前端界面的開發(fā)。通過對(duì)本課題的研究和設(shè)計(jì),我鞏固了之前學(xué)過的知識(shí),如SSH框架,也學(xué)到了很多新知識(shí),如ExtJs框架、CXF框架,設(shè)計(jì)出了預(yù)想中的系統(tǒng),基本實(shí)現(xiàn)了要求的功能

3、。同時(shí)該系統(tǒng)也存在一定的不足,界面設(shè)計(jì)還不夠人性化,這一點(diǎn)有待改善。關(guān)鍵詞:內(nèi)容管理系統(tǒng);面向服務(wù)架構(gòu);SSH框架;ExtJs框架;CXF框架ABSTRACTIn the progress of informationization in University, the content management system play an important role. The storage of all teaching resources(Courseware, Videos, Files, and so on )contents resources、all portals、all ass

4、istant system of teaching, all the above fall into content management system in the final analysis. Traditional content management systems are designed solely and deployed dispersedly, which lead to tremendous wasting of resources. This project use SOA to implement a content management system which

5、store contents resources uniformly and deploy Front-ends of WEB distributedly . Then, the system will improve the efficiency of storage and reduce the degree of coupling,whats more , it will improve the flexibility of the system.With the expanding of the project, I study Java EE technology and some

6、knowledge about it,including JSP, EJB, Servlet, JDBC, XML, JNDI , Struts frame, Spring frame, Hibernate frame and Web Service technology; Do requirement analysis and system design in details, and do UML modeling about the content management system; Study SOA architecture, and then realize the design

7、 of distributive system; Realize main functions of the system, including authority management, the display, add, delete, modify of contents resources.Through studying and designing the project, I consolidate the knowledge that I ever studied, such as SSH frame, and at the same time, I learned a lot

8、of new knowledge, such as ExtJs frame, CXF frame. What is the most important is that I design the expected system which realize requested functions. But there still exist some deficiencies, for example it is not enough in humanization, which need further improved. Key words:Content management system

9、; SOA; SSH frame; ExtJs frame; CXF frame目 錄摘 要IABSTRACTII1前言11.1系統(tǒng)目的11.2系統(tǒng)背景11.3系統(tǒng)使用對(duì)象及范圍21.4論文的組織結(jié)構(gòu)32需求分析42.1功能要求4學(xué)生功能要求4教師功能要求4管理員功能要求52.2性能要求62.3可靠性要求72.4出錯(cuò)處理要求73概要設(shè)計(jì)83.1系統(tǒng)實(shí)現(xiàn)環(huán)境83.2整體架構(gòu)83.3UML建模83.4數(shù)據(jù)模型10基本實(shí)體10各模塊系統(tǒng)134詳細(xì)設(shè)計(jì)154.1數(shù)據(jù)庫設(shè)計(jì)15數(shù)據(jù)庫命名規(guī)范15對(duì)應(yīng)表設(shè)計(jì)154.2原型設(shè)計(jì)185技術(shù)框架195.1ExtJs框架195.2CXF框架205.3SSH框架20

10、5.4技術(shù)總結(jié)236編碼與測(cè)試266.1服務(wù)端開發(fā)26Model層開發(fā)26Dao層開發(fā)27Service層開發(fā)27Service.xml配置文件舉例28Applicationcontext.xml配置文件舉例296.2客戶端開發(fā)29Model層開發(fā)29Service層開發(fā)29Action層開發(fā)30Applicationcontext.xml配置文件舉例31Jsp頁面開發(fā)316.3測(cè)試及效果圖31結(jié) 論36參 考 文 獻(xiàn)37致 謝38 1 前言1.1 系統(tǒng)目的在高校信息化進(jìn)程中,內(nèi)容管理系統(tǒng)扮演者非常重要的角色,各種教學(xué)資源(課件、視頻、文檔、圖像等)的存儲(chǔ)、各個(gè)門戶網(wǎng)站、各個(gè)教學(xué)輔助系統(tǒng),歸根

11、結(jié)底都是內(nèi)容管理系統(tǒng)。傳統(tǒng)的內(nèi)容管理系統(tǒng)都是單獨(dú)設(shè)計(jì)分散部署的,這樣會(huì)造成大量的資源浪費(fèi),本課題利用面向服務(wù)架構(gòu)設(shè)計(jì)實(shí)現(xiàn)一個(gè)內(nèi)容資源統(tǒng)一存放,WEB前端分布式部署的內(nèi)容管理系統(tǒng),大大提高存儲(chǔ)的效率,降低系統(tǒng)的耦合度,提高系統(tǒng)的靈活性。1.2 系統(tǒng)背景近幾十年來,由于計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)迅猛發(fā)展,全世界已經(jīng)進(jìn)入了信息社會(huì)的時(shí)代。大量的信息存儲(chǔ)和管理成為我們面臨的一個(gè)重要問題,特別是隨著網(wǎng)絡(luò)的普遍使用,各行各業(yè)都積累了大量的信息資源,如電子郵件、視頻音頻資料、辦公文檔、文件、表格等等,這些給網(wǎng)站的信息更新和維護(hù)工作帶了很大的困難,同時(shí)也產(chǎn)生了許許多多的問題,比如頁面制作無序,網(wǎng)站風(fēng)格不統(tǒng)一,大量信

12、息堆積,發(fā)布顯得異常沉重,內(nèi)容繁雜,手工管理效率低下等等。于是,科學(xué)管理和合理開發(fā)這些內(nèi)部和外部信息資源已經(jīng)成為人們關(guān)注的焦點(diǎn),在這一背景下內(nèi)容管理系統(tǒng)CMS(Content Management System)應(yīng)運(yùn)而生,來有效解決用戶網(wǎng)站建設(shè)與信息發(fā)布中常見的問題和需求。對(duì)網(wǎng)站內(nèi)容管理是內(nèi)容管理系統(tǒng)的最大優(yōu)勢(shì),它流程完善、功能豐富,可把內(nèi)容分門別類并授權(quán)給不同用戶進(jìn)行編輯管理。CMS是一種位于Web前端、Web服務(wù)器、以及后端辦公系統(tǒng)或流程(內(nèi)容創(chuàng)作、編輯)之間的軟件系統(tǒng),其功能比較多,模塊通用性比較強(qiáng)強(qiáng),管理起來很方便,應(yīng)用也很廣泛。 目前,國內(nèi)CMS主要有以下幾大類:第一類,面向政府和事

13、業(yè)單位的內(nèi)容管理系統(tǒng),其特點(diǎn)是用戶間的需求差距較大,內(nèi)容管理只是一個(gè)大的系統(tǒng)中的某一個(gè)部分,一個(gè)網(wǎng)站中可能有多個(gè)CMS系統(tǒng)。一般在實(shí)施時(shí)要求訂制開發(fā),不可能用現(xiàn)成產(chǎn)品來滿足需求。這樣的解決方案有:WITS、中關(guān)村軟件、方正祥羽、清華萬博等。第二類,針對(duì)政府、媒體、ICP、大型企業(yè)的內(nèi)容管理系統(tǒng),其特點(diǎn)是維護(hù)內(nèi)容的人數(shù)多,水平有高有低,但是需求比較明確,做各種類型的信息發(fā)布平臺(tái),要求承受產(chǎn)品級(jí)的解決方案。相應(yīng)的產(chǎn)品有:TurboCMS、TRS WCM、龍訊。第三類,針對(duì)企業(yè)、個(gè)人的內(nèi)容管理系統(tǒng),特點(diǎn)為用戶是網(wǎng)站技術(shù)愛好者,喜歡鉆研。需求上可能比較復(fù)雜,比如要跟BBS、用戶注冊(cè)等應(yīng)用集成在一起,滿

14、足個(gè)性化的需求,最好有原代碼,可以自己根據(jù)需要修改等等。國內(nèi)做的比較好的內(nèi)容管理系統(tǒng)有:新浪的CMS,它是用C+制作的,重點(diǎn)強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu)的豐富,功能非常強(qiáng)大;評(píng)論回復(fù)系統(tǒng)做的最好的是網(wǎng)易,延伸閱讀做得也不錯(cuò);搜狐的圖庫系統(tǒng)做得最好。其他的網(wǎng)站功能如搜索引擎、日歷、Web郵件等也會(huì)以第三方插件的形式集成進(jìn)來。 本系統(tǒng)主要是研究面向高校的內(nèi)容管理系統(tǒng)。在高校信息化進(jìn)程中,內(nèi)容管理系統(tǒng)扮演者非常重要的角色,各種教學(xué)資源(課件、視頻、文檔、圖像等)的存儲(chǔ)、各個(gè)門戶網(wǎng)站、各個(gè)教學(xué)輔助系統(tǒng),歸根結(jié)底都是內(nèi)容管理系統(tǒng)。傳統(tǒng)的內(nèi)容管理系統(tǒng)都是單獨(dú)設(shè)計(jì)分散部署的,這樣會(huì)造成大量的資源浪費(fèi),本課題利用面向服務(wù)架構(gòu)

15、設(shè)計(jì)實(shí)現(xiàn)一個(gè)內(nèi)容資源統(tǒng)一存放,WEB前端分布式部署的內(nèi)容管理系統(tǒng),大大提高存儲(chǔ)的效率,降低系統(tǒng)的耦合度,提高系統(tǒng)的靈活性。在當(dāng)今的項(xiàng)目開發(fā)中,需要用到SOA(service-oriented architecture)概念的地方越來越多,比如有些項(xiàng)目會(huì)有這樣的需求:在.net開發(fā)的客戶端系統(tǒng)中訪問java開發(fā)的系統(tǒng),像這樣的需求就需要用到WebService進(jìn)行信息數(shù)據(jù)的操作。面向服務(wù)的體系架構(gòu)是一種比較新的技術(shù)架構(gòu),利用這一架構(gòu)進(jìn)行系統(tǒng)開發(fā)時(shí),首先要從整體上加以理解,SOA的關(guān)鍵是服務(wù),開發(fā)的思路是首先將功能拆分為組件,然后用服務(wù)包裝這些組建,提供給系統(tǒng)終端使用。1.3 系統(tǒng)使用對(duì)象及范圍本

16、系統(tǒng)的用戶主要分為管理員、教師、學(xué)生等角色。下面我們來具體闡述其各自的大致權(quán)限。(1)管理員:管理員擁有自己唯一的登錄賬號(hào),并使用其登陸賬號(hào)登錄系統(tǒng)的后臺(tái),對(duì)各種課程、資源和用戶進(jìn)行管理。(2)教師:本校老師可以有一個(gè)后臺(tái)管理,用已有的ID和密碼登陸,可以管理相應(yīng)的資源,管理個(gè)人信息,查看選課學(xué)生等。(3)學(xué)生:可以用自己的學(xué)號(hào)登陸,查看所有老師的各種資源以及個(gè)人選課情況,還可以修改個(gè)人的一些信息。更加清晰直觀的系統(tǒng)使用對(duì)象及范圍如表1.1所示:表1.1 使用對(duì)象表系統(tǒng)名稱 使用對(duì)象 使用范圍面向服務(wù)架 管理員 允許后臺(tái)登錄,修改、刪除、整理各種資源,管理用戶,修改菜單。構(gòu)的內(nèi)容管 教師 允許

17、登錄,修改個(gè)人信息,上傳圖片、視頻和文檔,編輯和修改已存在的文件理系統(tǒng) 學(xué)生 允許登錄,修改個(gè)人信息,查看選課情況,訪問系統(tǒng)資源,下載文件,留言1.4 論文的組織結(jié)構(gòu)全文共分為九個(gè)部分第一部分是前言,主要介紹系統(tǒng)目的以及開發(fā)背景,闡述了國內(nèi)外相關(guān)技術(shù)的研究現(xiàn)狀,以及該系統(tǒng)的使用對(duì)象及范圍。第二部分是需求分析,主要介紹系統(tǒng)的功能要求、性能要求、可靠性要求、出錯(cuò)處理要求等內(nèi)容。第三部分是概要設(shè)計(jì),主要介紹系統(tǒng)實(shí)現(xiàn)環(huán)境,系統(tǒng)整體架構(gòu),功能模型,數(shù)據(jù)模型,各模塊系統(tǒng)以及E-R圖,對(duì)系統(tǒng)進(jìn)行UML建模。第四部分是詳細(xì)設(shè)計(jì),主要介紹數(shù)據(jù)庫設(shè)計(jì),以及原型設(shè)計(jì)方法。第五部分是技術(shù)總結(jié),主要是對(duì)開發(fā)過程中遇到的

18、技術(shù)問題進(jìn)行總結(jié)。第六部分是編碼與測(cè)試,對(duì)編碼流程進(jìn)行舉例,包括服務(wù)器端開發(fā)和客戶端開發(fā),以及兩端開發(fā)的不同,對(duì)系統(tǒng)進(jìn)行功能測(cè)試。第七部分是結(jié)論,主要對(duì)系統(tǒng)整體設(shè)計(jì)和完成情況進(jìn)行總結(jié)。第八部分是參考文獻(xiàn),列出了做設(shè)計(jì)和寫論文過程中所參考到的中英文的文獻(xiàn)。第九部分是致謝,感謝大學(xué)四年幫助和教育過我的所有人,特別是在做設(shè)計(jì)和寫論文過程中予以指導(dǎo)的老師和同學(xué)們。2 需求分析需求分析即了解用戶的真實(shí)需求,為了開發(fā)出真正滿足用戶需求的系統(tǒng),首先必須知道用戶的需求。對(duì)需求的深入理解是系統(tǒng)開發(fā)成功的前提條件。在需求分析階段要確定系統(tǒng)必須完成的工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。本文從功能

19、要求、性能要求、可靠性要求、出錯(cuò)處理要求等方面來進(jìn)行需求分析,其中功能要求是本文需求分析的重點(diǎn)。2.1 功能要求功能要求是需求分析很重要的一個(gè)部分,這一部分的內(nèi)容對(duì)整個(gè)系統(tǒng)的可用性起著決定性作用,因此對(duì)功能要求要做仔細(xì)認(rèn)真的分析。下面我們將從學(xué)生功能要求、教師功能要求、管理員功能要求三個(gè)方面進(jìn)行分析。2.1.1 學(xué)生功能要求對(duì)本系統(tǒng)來說,學(xué)生這個(gè)角色的功能主要包括選擇要學(xué)習(xí)的課程,這樣就可以通過數(shù)據(jù)庫記錄選課學(xué)生的信息,從而便于統(tǒng)計(jì)和管理。學(xué)生還可以查看系統(tǒng)資源,比如查看系統(tǒng)上的視頻、圖片、文檔等教學(xué)資源。修改個(gè)人信息,學(xué)生登錄系統(tǒng)后,可以修改個(gè)人信息,并更新保存到數(shù)據(jù)庫。這些功能,如表2.1

20、所示。表2.1 學(xué)生功能要求功能功能描述選課功能選擇要學(xué)習(xí)的課程瀏覽資源瀏覽相應(yīng)教學(xué)資源(視頻、圖片、文檔)個(gè)人資料維護(hù)個(gè)人資料2.1.2 教師功能要求對(duì)本系統(tǒng)來說,教師這個(gè)角色的功能主要有對(duì)所教課程進(jìn)行管理,教師對(duì)課程的管理主要是查看所教課程的相關(guān)信息,比如該課程是在哪個(gè)學(xué)期開設(shè)、以及每周幾上課等等一些信息。對(duì)資源進(jìn)行管理,主要是相應(yīng)的教學(xué)資源,如視頻資源、圖片資源以及文檔資源等等進(jìn)行增刪改查等操作,還可以查看其他人上傳的資源。還能查看選擇所教課程的學(xué)生,比如想查看有多少人選本門課程,以及這些學(xué)生的信息,從而便于實(shí)體課堂的管理。最后就是個(gè)人基本信息的維護(hù)了,可以修改個(gè)人相關(guān)信息。如表2.2所

21、示。表2.2 教師功能要求功能功能描述課程管理查看所教課程的相關(guān)信息,如開課學(xué)期等 資源管理管理自己上傳的資源,如增刪改查,查看其他人上傳的資源本門課學(xué)生查看查看選擇本門課程(教師為自己)的學(xué)生個(gè)人資料維護(hù)個(gè)人資料2.1.3 管理員功能要求對(duì)本系統(tǒng)來說,管理員這個(gè)角色是一個(gè)很重要的角色,其功能最多,權(quán)限最大。管理員要對(duì)用戶進(jìn)行管理,比如當(dāng)需要增加用戶時(shí),只有管理員有權(quán)限進(jìn)行用戶的添加,同樣減少用戶也一樣,只有管理員才有權(quán)限刪除相應(yīng)的用戶,因?yàn)樵鰟h用戶這種操作權(quán)限不可以隨便賦予,否則系統(tǒng)會(huì)發(fā)生紊亂。用戶的管理還包括修改用戶信息和搜索指定用戶,這兩個(gè)操作不只是管理員才行,但管理員的權(quán)限最大,因?yàn)楸?/p>

22、如用戶本身也可以修改自己的信息,但是不能修改其他用戶的信息,老師也可以查看學(xué)生信息,但是只能查看選擇相應(yīng)課程的學(xué)生信息。菜單管理是本系統(tǒng)的一種個(gè)性化需求,管理員可以為系統(tǒng)添加新菜單,添加的菜單可以指向特定的網(wǎng)頁,從而使系統(tǒng)內(nèi)容更加豐富,另外在系統(tǒng)使用的過程中,可能有些菜單不合時(shí)宜,那我們還可以將其刪除,或者修改菜單信息,這樣就增加了系統(tǒng)的靈活性,當(dāng)我們想要查看某個(gè)菜單的內(nèi)容是,不需要從頭開始查找,因?yàn)橛兴阉鞑藛蔚墓δ?,只要輸入想要查找的菜單的名稱,就可以很快找到。關(guān)于學(xué)生管理功能,當(dāng)有新學(xué)生要加入系統(tǒng)時(shí),我們可以添加相應(yīng)學(xué)生的信息到數(shù)據(jù)庫中,對(duì)于需要修改的學(xué)生信息,也可以進(jìn)行修改,對(duì)于已經(jīng)畢業(yè)

23、或者退學(xué)的學(xué)生,即要退出本系統(tǒng)的學(xué)生,我們可以將其信息進(jìn)行刪除,當(dāng)我們想要查找某個(gè)學(xué)生的信息時(shí),只要在搜索學(xué)生功能板塊輸入學(xué)生的學(xué)號(hào)即可查詢。管理員還需要對(duì)教師進(jìn)行管理,當(dāng)有新教師要加入系統(tǒng)時(shí),要能夠添加教師信息到數(shù)據(jù)庫,當(dāng)教師信息需要修改時(shí),要能夠?qū)ζ溥M(jìn)行修改并更新保存到數(shù)據(jù)庫,當(dāng)有教師要退出系統(tǒng)時(shí),可以對(duì)其信息進(jìn)行刪除,當(dāng)要查找相應(yīng)教師信息時(shí),可以在系統(tǒng)的教師搜索板塊輸入教工號(hào)進(jìn)行查找。課程管理也是很重要的部分,主要是當(dāng)有新課程要加入該系統(tǒng)時(shí),要能夠添加新課程信息到數(shù)據(jù)庫,當(dāng)課程信息需要修改時(shí),要能夠修改并更新保存到數(shù)據(jù)庫中,當(dāng)課程結(jié)束時(shí),要能夠?qū)⒄n程信息從數(shù)據(jù)庫中刪除,管理員還要能夠查看

24、選課學(xué)生信息,包括有選課人數(shù),選課學(xué)生詳細(xì)信息等,當(dāng)要查看課程信息時(shí),為了方便起見,要有一個(gè)板塊供我們方便的搜索課程,比如輸入課程名或者課程代號(hào)就可以方便的搜索到要找的課程。對(duì)資源進(jìn)行管理,主要有視頻資源、圖片資源和文檔資源,要能夠?qū)@些資源進(jìn)行增刪改查等基本操作。為了更直觀的了解管理員功能要求,方便系統(tǒng)設(shè)計(jì)和開發(fā),特制訂了如下表格,如表2.3所示。表2.3 管理員功能要求功能功能描述用戶管理添加用戶,修改用戶信息,刪除用戶,搜索用戶;菜單管理添加新菜單,修改菜單信息,刪除菜單,搜索菜單;學(xué)生管理添加學(xué)生,修改學(xué)生信息,刪除學(xué)生,搜索學(xué)生;教師管理添加教師,修改教師信息,刪除教師,搜索教師;課

25、程管理添加課程,修改課程,刪除課程,查看選課學(xué)生,搜索課程;視頻資源管理添加視頻資源,修改視頻信息,刪除視頻,播放視頻,搜索視頻;圖片資源管理搜索圖片,查看圖片,添加圖片,修改圖片信息,刪除圖片;課件資源管理課件資源的上傳、刪除、修改、查看、搜索;2.2 性能要求闡述不同應(yīng)用領(lǐng)域?qū)υ搩?nèi)容管理系統(tǒng)性能的要求,并且說明提出需求的原理或者依據(jù),以便開發(fā)時(shí)做出合理的設(shè)計(jì)選擇。(1)基礎(chǔ)平臺(tái)(平臺(tái)管理系統(tǒng)):具備用戶和權(quán)限管理(三類用戶:管理員、教師、學(xué)生)(2)平臺(tái)內(nèi)容管理系統(tǒng):管理員可進(jìn)行用戶管理及角色管理,實(shí)現(xiàn)菜單的增刪改查,教師可登陸系統(tǒng)進(jìn)行對(duì)應(yīng)資源的管理,學(xué)生可以登陸系統(tǒng)進(jìn)行選課和查看相應(yīng)資源

26、。(3)交互系統(tǒng):滿足教師、學(xué)生間相互交流,如留言。 (4)平臺(tái)課件內(nèi)容存儲(chǔ)和管理應(yīng)基于數(shù)據(jù)庫系統(tǒng),實(shí)現(xiàn)動(dòng)態(tài)管理(5)每個(gè)站點(diǎn)都獨(dú)自發(fā)布,互不干涉,根據(jù)自己的資料更新情況進(jìn)行自動(dòng)發(fā)布,不同的站點(diǎn)發(fā)布生成的頁面自動(dòng)部署到不同的Web服務(wù)器上(6)系統(tǒng)必須能運(yùn)行在如下的操作系統(tǒng)及數(shù)據(jù)庫上,最好能適應(yīng)多種操作系統(tǒng),應(yīng)用服務(wù)器的部署需要:操作系統(tǒng)Windows 2000 Advance Server; Windows XP; Linux數(shù)據(jù)庫系統(tǒng)使用MySql通訊接口采用TCP/IP、HTTP網(wǎng)絡(luò)協(xié)議。(7)要求的性能指標(biāo):系統(tǒng)平均無故障運(yùn)行時(shí)間大于99%頁面響應(yīng)時(shí)間在五秒以內(nèi)2.3 可靠性要求(1)

27、 能保證在并發(fā)高峰時(shí),系統(tǒng)的訪問速度不能有明顯的下降。(2)能保證系統(tǒng)長期正常穩(wěn)定的運(yùn)行。2.4 出錯(cuò)處理要求(1) 當(dāng)出現(xiàn)錯(cuò)誤時(shí),有明顯的錯(cuò)誤提示信息。(2)當(dāng)出現(xiàn)硬件當(dāng)機(jī)時(shí),能夠完成對(duì)數(shù)據(jù)的自我保護(hù)。3 概要設(shè)計(jì)3.1 系統(tǒng)實(shí)現(xiàn)環(huán)境(1)前端開發(fā)語言的選擇:Java EE(2)基本框架:Struts2、Spring、Hibernate(3)運(yùn)行服務(wù)器:Apache Tomcat(4)前端開發(fā)工具的選擇:Eclipse(5)后臺(tái)數(shù)據(jù)庫的選擇:MySql3.2 整體架構(gòu)系統(tǒng)的整體架構(gòu)是采用的面向服務(wù)的架構(gòu),之所以選擇此架構(gòu)是因?yàn)槊嫦蚍?wù)架構(gòu)有其獨(dú)特的優(yōu)勢(shì),其特點(diǎn)主要有靈活性強(qiáng)以及較低的耦合度,

28、可以實(shí)現(xiàn)本課題所研究的內(nèi)容資源統(tǒng)一存放,Web前端分布式部署。本課題所研究的系統(tǒng)實(shí)現(xiàn)的架構(gòu)大致為在服務(wù)器端發(fā)布一些服務(wù),在客戶端調(diào)用相應(yīng)的服務(wù),如圖3.1所示,在服務(wù)器端主要發(fā)布的服務(wù)包括基本信息管理服務(wù),資源管理服務(wù),權(quán)限管理服務(wù),登陸管理服務(wù),還有留言管理服務(wù)等:圖3.1 整體架構(gòu)圖3.3 UML建模本系統(tǒng)中的對(duì)象主要有管理員、教師、學(xué)生、用戶、視頻資源、圖片資源等,這些對(duì)象有各自的屬性和方法,比如管理員的基本屬性是Id和名字,其基本方法是對(duì)資源和用戶等進(jìn)行增刪改查等。學(xué)生的基本屬性也是Id和姓名,基本方法是對(duì)選課信息和個(gè)人信息進(jìn)行增刪改查。教師基本信息是Id和姓名,基本方法是對(duì)課程和資源

29、進(jìn)行增刪改查。用戶基本屬性是Id、姓名和密碼,管理員、學(xué)生和教師都是用戶,其基本方法也是增刪改查。課程的基本屬性是Id和課程名以及教師外鍵,基本方法包括增刪改查。視頻資源和圖片資源的基本屬性都是Id和資源名,基本方法也都是增刪改查。這些對(duì)象之間存在的關(guān)系主要有學(xué)生選課、教師教課、用戶管理資源等。對(duì)本系統(tǒng)進(jìn)行UML建模如下,如圖3.2所示。圖3.2 UML類圖從UML類圖中我們可以清楚的了解系統(tǒng)中各個(gè)對(duì)象的屬性、方法、以及它們之間的關(guān)系,對(duì)我們下一步的編碼設(shè)計(jì)有很好的參考和指導(dǎo)作用,另外為了更好的進(jìn)行下一步的設(shè)計(jì),我們最好再畫一個(gè)時(shí)序圖,如圖所示3.3所示,從圖中我們可以很清晰的了解系統(tǒng)用戶使用

30、本系統(tǒng)時(shí)的功能流程。圖3.3 時(shí)序圖3.4 數(shù)據(jù)模型3.4.1 基本實(shí)體本系統(tǒng)主要的實(shí)體有:管理員,教師,學(xué)生,課程,資源,菜單。其中管理員的屬性信息有用戶名、密碼、昵稱、角色、狀態(tài)。教師的屬性信息有教工號(hào)、姓名、性別、所在學(xué)院、電子郵箱、電話號(hào)碼、職稱、備注。學(xué)生的屬性信息有學(xué)號(hào)、姓名、性別、電子郵箱、電話號(hào)碼、手機(jī)號(hào)碼、所在學(xué)院、所在班級(jí)、所屬專業(yè)。課程的屬性信息有課程代號(hào)、課程名稱、開課學(xué)期、學(xué)分、任課教師的Id、所屬學(xué)院、必修選修屬性、最大選課數(shù)、課程介紹。教學(xué)資源的屬性信息有搜索名稱、物理存儲(chǔ)名稱、大小、存儲(chǔ)地址、上傳者、資源類型(視頻、圖片、文檔)、備注。菜單這個(gè)實(shí)體的屬性信息主要

31、有菜單名、對(duì)于網(wǎng)頁地址、圖標(biāo)、上級(jí)菜單的Id、對(duì)用戶的權(quán)限、菜單描述等。作為系統(tǒng)的重要組成部分,這些實(shí)體之間存在特定的關(guān)系,下面我們用E-R圖的形式來展示這些關(guān)系,為了更清晰的了解實(shí)體之間的關(guān)系,這里采用分E-R圖的方式,首先是用戶管理學(xué)生,如圖3.4所示,其中用戶對(duì)學(xué)生的管理主要包括對(duì)學(xué)生信息的增刪改查等操作。用戶管理教師,如圖3.5所示,其中用戶對(duì)教師的管理主要包括對(duì)教師信息的增刪改查等。用戶管理菜單,如圖3.6所示,其中用戶對(duì)菜單的管理主要包括對(duì)菜單信息的增刪改查等。用戶管理資源,如圖3.7所示,其中用戶對(duì)資源的管理主要包括對(duì)資源信息的增刪改查等。老師教課學(xué)生選課,如圖3.8所示,該圖以

32、非常清晰,不在贅述。圖3.4 用戶管理學(xué)生圖3.5 用戶管理教師圖3.6 用戶管理菜單圖3.7 用戶與資源圖3.8 教師教課與學(xué)生選課3.4.2 各模塊系統(tǒng)本系統(tǒng)共分為9個(gè)子系統(tǒng),如圖3.9所示:菜單管理系統(tǒng),用戶管理系統(tǒng),學(xué)生管理系統(tǒng),教師管理系統(tǒng),課程管理系統(tǒng),視頻資源管理系統(tǒng),圖片資源管理系統(tǒng),文檔資源管理系統(tǒng),權(quán)限管理。(1)菜單管理系統(tǒng):用戶可以對(duì)已有菜單進(jìn)行搜索,還可以添加需要的菜單,修改相應(yīng)菜單的信息,刪除相應(yīng)的菜單。 (2)用戶管理系統(tǒng):管理員可以按學(xué)號(hào)或教工號(hào)搜索用戶,還可以添加新用戶,對(duì)用戶信息進(jìn)行修改,刪除用戶。(3)學(xué)生管理系統(tǒng):管理員可以按學(xué)號(hào)搜索學(xué)生,還可以添加學(xué)生

33、,修改學(xué)生信息,刪除學(xué)生。 (4)教師管理系統(tǒng):管理員可以按教工號(hào)搜索教師,還可以添加教師,修改教師信息,刪除教師。(5)課程管理系統(tǒng):管理員可以按課程號(hào)搜索課程,還可以添加課程,修改課程信息,刪除課程,查看選該門課程的所有學(xué)生信息。(6)視頻資源管理系統(tǒng):用戶可以按資源名稱搜索相應(yīng)視頻,還可以添加視頻文件,修改視頻信息,刪除視頻文件,播放視頻。(7)圖片資源管理系統(tǒng):用戶可以按圖片名稱搜索相應(yīng)圖片,查看圖片,添加圖片,修改圖片信息,刪除圖片。(8)文檔資源管理系統(tǒng):用戶可以按文檔名稱搜索相應(yīng)文檔,上傳文檔,下載文檔,刪除文檔,修改文檔信息。 (9)權(quán)限管理:該功能融合在菜單管理內(nèi)容中,在添加

34、菜單時(shí)注明該項(xiàng)菜單對(duì)于各用戶的操作權(quán)限。圖3.9 系統(tǒng)整體功能圖4 詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)庫設(shè)計(jì)4.1.1 數(shù)據(jù)庫命名規(guī)范(1) 表名:對(duì)應(yīng)的英文,比如課程表,命名為course(2)字段:對(duì)應(yīng)的英文,并且字段名為兩個(gè)英文單詞時(shí),第二個(gè)單詞的首字母大寫,比如課程名,命名為courseName(3)外鍵:表名+字段名,字段名首字母大寫 比如,在課程表中,教師ID是教師表中的外鍵,命名為teacherId4.1.2 對(duì)應(yīng)表設(shè)計(jì)課程表設(shè)計(jì),課程是一個(gè)重要實(shí)體,該實(shí)體在數(shù)據(jù)庫中對(duì)應(yīng)的表的詳細(xì)信息如表4.1所示,其屬性信息主要有課程ID,作為唯一標(biāo)示課程的一個(gè)信息;課程號(hào),一般每個(gè)課程都有一個(gè)代號(hào),方便記

35、錄;課程名,每個(gè)課程都應(yīng)該有自己的名稱,方便識(shí)別和記憶;開課學(xué)期,是一個(gè)很重要的屬性,標(biāo)示課程的開課時(shí)間;學(xué)分,自從高校實(shí)行學(xué)分制以來,一般沒門課程都要設(shè)定相應(yīng)的學(xué)分。教師ID,每門課程都要有一個(gè)教師來教,所以課程表與教師表要有個(gè)對(duì)應(yīng),這就是教師ID的作用了。學(xué)院,由于每個(gè)課程都是由指定的學(xué)院開設(shè)的,所以要有學(xué)院信息。屬性,是指課程是必修還是選修。最大選課數(shù),是指為每門課程指定選擇該門課程的學(xué)生數(shù)。課程介紹即對(duì)課程做相應(yīng)的描述,介紹課程的大致內(nèi)容。表4.1課程表(course)名稱屬性名類型長度是否為空說明課程IDidint11否主鍵課程號(hào)courseNumvarchar20否課程名cours

36、eNamevarchar40否開課學(xué)期timevarchar40學(xué)分creditint11教師IDteacherIdint11學(xué)院academyvarchar20屬性propertiesvarchar50最大選課數(shù)maxNumberint10課程介紹introductionvarchar200學(xué)院表的設(shè)計(jì),其詳細(xì)信息如表4.2所示,其中學(xué)院ID作為主鍵唯一標(biāo)示學(xué)院這個(gè)實(shí)體,另外每個(gè)學(xué)院有一個(gè)代號(hào),還有學(xué)院名稱以及學(xué)院的管理員數(shù)。表4.2 學(xué)院表(academy)名稱屬性名類型長度是否為空說明學(xué)院IDidint11否主鍵學(xué)院代號(hào)deptCodevarchar10學(xué)院名稱deptNamevarch

37、ar20學(xué)院管理員數(shù)deptManagerint11登陸表設(shè)計(jì),登陸表里記錄著登陸系統(tǒng)的用戶的信息,如表4.3所示,其中登陸ID唯一標(biāo)示每一位登陸用戶,另外還有登陸賬號(hào)和密碼,每個(gè)用戶還有一個(gè)昵稱,角色是指為每個(gè)用戶指定相應(yīng)的角色,如教師、學(xué)生、管理員等,這樣就可以根據(jù)不同的角色賦予其不同的操作權(quán)限。狀態(tài),是指顯示用戶是否在線。表4.3 登陸表(login)名稱屬性名類型長度是否為空說明登陸IDidint11否主鍵登陸賬號(hào)numbervarchar20否密碼passwordvarchar20昵稱nicknamevarchar50角色rolevarchar11否狀態(tài)statusint11菜單表的

38、設(shè)計(jì),如表4.4所示,其中用菜單ID作為主鍵唯一標(biāo)示每一個(gè)菜單,菜單名便于記憶每一個(gè)菜單,網(wǎng)址是指菜單所鏈接到的網(wǎng)頁的地址,圖標(biāo)是指菜單用到資源里面的哪個(gè)圖片,上級(jí)Id是指菜單的上一級(jí)菜單的Id,權(quán)限是指該菜單對(duì)于不同角色的不同權(quán)限,描述是對(duì)菜單的簡單介紹。表4.4 菜單表(menu)名稱屬性名類型長度是否為空說明菜單IDidint11否主鍵菜單名namevarchar30否網(wǎng)址urlvarchar100圖標(biāo)iconvarchar20上級(jí)IdparentIdint11權(quán)限permissionvarchar10描述descriptionvarchar40資源表的設(shè)計(jì),如表4.5所示,資源ID作為

39、主鍵來唯一標(biāo)示相應(yīng)資源;搜索名即資源的顯示名稱;資源名是指資源在硬盤上存儲(chǔ)時(shí)的名稱,它是由資源存儲(chǔ)時(shí)的時(shí)間加上幾個(gè)隨機(jī)數(shù)組成,這樣在存儲(chǔ)的時(shí)候基本上不會(huì)發(fā)生沖突;資源大小,即資源所占存儲(chǔ)空間的大小;網(wǎng)址,是指資源存儲(chǔ)的地址;用戶賬號(hào)是指上傳資源的用戶的登錄賬號(hào),以便于記錄資源的上傳人;資源類型是用來標(biāo)示資源是圖片、視頻還是文檔;備注,即對(duì)資源的描述和說明。表4.5 資源表(source)名稱屬性名類型長度是否為空說明資源IDidint11否主鍵搜索名searchNamevarchar40資源名sourceNamevarchar40資源大小sizefloat網(wǎng)址urlvarchar200用戶賬號(hào)

40、userNumvarchar20資源類型typevarchar20備注commentvarchar200學(xué)生表的設(shè)計(jì),如表4.6所示,學(xué)生ID 作為主鍵來唯一標(biāo)示每一個(gè)學(xué)生;學(xué)號(hào),學(xué)校為每個(gè)學(xué)生編有學(xué)號(hào);姓名、性別都是學(xué)生的基本信息;電子郵箱、手機(jī)號(hào)和電話號(hào)都是為了方便與學(xué)生聯(lián)系而設(shè)計(jì)的屬性信息;所在學(xué)院、專業(yè)和班級(jí),這些也都是學(xué)生的基本信息。表4.6 學(xué)生表(student)名稱屬性名類型長度是否為空說明學(xué)生IDidint11否學(xué)號(hào)stuNumvarchar20否姓名stuNamevarchar20否性別sexvarchar10電子郵箱emailvarchar20電話號(hào)碼telephonev

41、archar20手機(jī)號(hào)碼handphonevarchar20所在學(xué)院academyvarchar20所在專業(yè)majorvarchar20所在班級(jí)classesvarchar20學(xué)生選課表的設(shè)計(jì),如圖4.7所示,該表主要包括學(xué)生ID和課程ID,該表是用來連接學(xué)生表和課程表的。表4.7 學(xué)生選課表(studentcourse)名稱屬性名類型長度是否為空說明學(xué)生IDstuIdint11否Student表的外鍵課程IDcourseIdint11否course表的外鍵教師表的設(shè)計(jì),如表4.8所示,教師ID作為主鍵唯一標(biāo)示每一位教師;教工號(hào),一般學(xué)校都為每一位教師編定一個(gè)教工號(hào),便于記錄和統(tǒng)計(jì);姓名、性別

42、、所在學(xué)院以及職稱這些都是教師的基本信息;電子郵箱、電話號(hào)和手機(jī)號(hào)都是為了方便聯(lián)系教師而設(shè)定的屬性信息;備注是對(duì)教師的相關(guān)介紹。表4.8 教師表(teacher)名稱屬性名類型長度是否為空說明教師IDteaIdint11否主鍵教工號(hào)teaNumvarchar20否姓名teaNamevarchar20否性別sexvarchar2電子郵箱emailint40 所在學(xué)院academyint40電話號(hào)碼telephone15手機(jī)號(hào)碼handphone15職稱jobTitle40備注content2004.2 原型設(shè)計(jì)原型法設(shè)計(jì)作為軟件開發(fā)的一種開發(fā)方法,有著其獨(dú)特的優(yōu)勢(shì),首先采用原型設(shè)計(jì)法,可以快速適

43、應(yīng)需求的變化,減少因需求變化引起的各種風(fēng)險(xiǎn);另外,該方法的使用可以使需求分析進(jìn)行的更充分,即可以先設(shè)計(jì)出簡單的原型,然后利用原型跟用戶進(jìn)行溝通,這樣的溝通會(huì)更直觀,用戶也會(huì)更明白。本系統(tǒng)在設(shè)計(jì)的時(shí)候,只是利用了原型設(shè)計(jì)的思想,并沒有把原型設(shè)計(jì)很好的融入到系統(tǒng)的設(shè)計(jì)當(dāng)中。但這已經(jīng)為本系統(tǒng)的整體開發(fā)做了不少的貢獻(xiàn)。我的做法是,先設(shè)計(jì)出簡單的用戶操作界面,里面沒有數(shù)據(jù)的交互,甚至只是一些靜態(tài)的頁面,但是正是在這些靜態(tài)頁面的設(shè)計(jì)過程中,我逐步形成了系統(tǒng)整體的一個(gè)框架出來。下面是我做原型時(shí)的一個(gè)頁面,如圖4.1所示:圖4.1 原型設(shè)計(jì)界面舉例5 技術(shù)框架5.1 ExtJs框架首先來認(rèn)識(shí)一下該框架,Ext

44、Js是一個(gè)用來開發(fā)前端用戶界面的技術(shù)框架,是用Javascript編寫的,并且與后臺(tái)技術(shù)實(shí)現(xiàn)無關(guān),不管后面用C#,還是Java或者PHP都沒有關(guān)系。該框架的功能極其豐富,設(shè)計(jì)出來的界面特別美觀,比如它的高亮顯示選中行,還有很多動(dòng)畫效果做的很好,這些都可以提高用戶的感知度。最重要的是使用該框架不僅可以使開發(fā)的界面更加美觀,而且可以簡化我們的界面設(shè)計(jì)工作,為我們省去了設(shè)計(jì)樣式的麻煩,比如它能自動(dòng)生成行號(hào),并支持checkbox全選,還可以動(dòng)態(tài)選擇顯示哪些列,還可以支持本地以及遠(yuǎn)程分頁,可以對(duì)單元格按照自己的想法進(jìn)行渲染,再加上可編輯grid,添加新行,刪除一或多行,提示多行數(shù)據(jù),推拽改變grid大

45、小,grid之間拖拽一行或多行,甚至可以在tree和grid之間進(jìn)行拖拽等等這些功能。ExtJs之所以有這么強(qiáng)大的功能,其主要原因是該框架封裝了一些比較美觀又實(shí)用的組件,比如TreePanel組件,它是用于顯示樹信息的,還有GridPanel及EditorGridPanel組件,它們是用于顯示表格的,另外還有Ext.Window等控件,它代表應(yīng)用程序窗口的ExtJs控件。在使用ExtJs的時(shí)候,掌握其中的核心控件對(duì)于我們來說非常重要,尤其是那些基礎(chǔ)類控件。例如上面提到的那些控件,它們都是繼承于Panel面板,因此我們要對(duì)面板這一核心控件的屬性進(jìn)行重點(diǎn)理解和掌握。下面對(duì)面板這一控件進(jìn)行大概的介紹

46、,面板由以下幾個(gè)部分組成:一個(gè)頂部工具欄(tbar)、一個(gè)底部工具欄(bbar)、面板頭部(header)、面板尾部(bottom)、面板主區(qū)域(body)這幾個(gè)部分組成。另外,面板類中還內(nèi)置了面板展開、關(guān)閉等功能,并提供一系列可重用的工具按鈕,這就使得我們可以輕松實(shí)現(xiàn)自定義的行為,面板還可以放入其它任何容器中,另外面板本身又是一個(gè)容器,它里面又可以包含各種其它組件。如果我們能夠掌握好Panel的應(yīng)用,那么學(xué)習(xí)TreePanel、Window等就會(huì)變得容易得多。一樣的道理,對(duì)于ExtJs的表單字段來說,不管是ComboBox,NumberField、還是DateField,它們類的子類,在它上

47、面定義了表單字段的各種基本操作及特性。所以,在學(xué)習(xí)使用表單字段組件時(shí),F(xiàn)ield這個(gè)類一定要作為研究的重點(diǎn),掌握了它的主要方法、事件等,就能有助于更好的學(xué)習(xí)使用其它的字段。在項(xiàng)目中,Ext本身的華麗外表的確很吸引人,但這僅僅是其外在的美,還有最核心的內(nèi)在美,即:Json(JavaScript Object Notation)。Json是一種數(shù)據(jù)交互格式,一個(gè)不能實(shí)現(xiàn)數(shù)據(jù)交互功能的項(xiàng)目是沒有任何意義的,大多的Ajax框架的數(shù)據(jù)交互都基于Json,如:jQuery、ExtJs等。因此理解Json掌握J(rèn)son并熟練運(yùn)用是很重要的。以目前主流的開發(fā)語言為例,.NET已經(jīng)把Json封裝到類中,無需配置,

48、直接與數(shù)據(jù)庫交互,輕松的封裝直接使用;Java就麻煩些,必須去下一個(gè)Json包,然后再做一些配置,才可以使用;PHP和Java差不多,也必須下載一個(gè)Json插件(和類相似),但是不用配置,直接封裝使用。在實(shí)際的項(xiàng)目中,各自的取舍配置,都基于項(xiàng)目和需求,并不是每個(gè)項(xiàng)目(針對(duì)WEB)都一定要用到。但是,如果想在項(xiàng)目中用到此類的Ajax框架,Json的掌握又是必須的。5.2 CXF框架Apache CXF 是一個(gè)開源的 Services 框架,CXF 可以幫助我們利用 Frontend 編程 API 來構(gòu)建和開發(fā) Services ,比如 JAX-WS 。這些 Services 可以支持多種協(xié)議,例

49、如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多種傳輸協(xié)議上運(yùn)行,比如:HTTP、JMS 或者 JBI,而且CXF 大大簡化了 Services 的創(chuàng)建,同時(shí)它繼承了 XFire 傳統(tǒng),一樣可以天然地和 Spring 進(jìn)行無縫集成。CXF 包含了大量的功能特性,主要集中在以下幾個(gè)方面:支持 Web Services 標(biāo)準(zhǔn):CXF 支持多種 Web Services 標(biāo)準(zhǔn),包含 SOAP、Basic Profile、WS-Addressing、WS-Policy、WS-ReliableMessaging 和 WS-Security。Frontends:C

50、XF 支持多種“Frontend”編程模型,CXF 實(shí)現(xiàn)了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一個(gè)“simple frontend”允許客戶端和 EndPoint 的創(chuàng)建,而不需要 Annotation 注解。CXF 既支持 WSDL 優(yōu)先開發(fā),也支持從 Java 的代碼優(yōu)先開發(fā)模式。容易使用: CXF 設(shè)計(jì)得更加直觀與容易使用。有大量簡單的 API 用來快速地構(gòu)建代碼優(yōu)先的 Services,各種 Maven 的插件也使集成更加容易,支持 JAX-WS API ,支持 Spring 2.0 更加簡化的 XML 配置方式,等等。支持二進(jìn)制和遺留協(xié)議:C

51、XF 的設(shè)計(jì)是一種可插撥的架構(gòu),既可以支持 XML ,也可以支持非 XML 的類型綁定,比如:JSON 和 CORBA。CXF有一些優(yōu)勢(shì),它的開發(fā)簡單,在Stand alone方式下執(zhí)行效率高,可以靈活部署,比如可以部署在一些輕量級(jí)的容器上,像Tomcat或者基于Spring的容器;可以在Java EE應(yīng)用服務(wù)器中部署Services;還可以在獨(dú)立的客戶端或者服務(wù)器端進(jìn)行部署。它能夠支持多種編程語言。另外它還有一個(gè)重要特點(diǎn)是代碼生成的特點(diǎn),分為以下幾種類型:Java to WSDL;WSDL to Java;XSD to WSDL;WSDL to XML;WSDL to SOAP;WSDL t

52、o Service;本系統(tǒng)采用的是其中的Java to WSDL方式。5.3 SSH框架(1)首先對(duì)該框架做大致的介紹:SSH(Spring + Struts +Hibernate)是Java Web輕量級(jí)開發(fā)三大開源框架的首字母的縮寫。Java EE的體系結(jié)構(gòu)有三層:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。開發(fā)一個(gè)SSH項(xiàng)目,也要遵循這三層模式。SSH分別實(shí)現(xiàn)這樣的功能:用Hibernate來完成數(shù)據(jù)的持久層應(yīng)用,用Spring的Bean來管理組件(主要是DAO、業(yè)務(wù)邏輯和Struts的Action),而用Struts來完成頁面的控制跳轉(zhuǎn)。(2)在應(yīng)用SSH框架進(jìn)行開發(fā)時(shí),我們需要運(yùn)用分層的思想,比

53、如在項(xiàng)目中用各個(gè)包來實(shí)現(xiàn)分層:org.action:放置對(duì)應(yīng)的用戶自定義的Action類。由Action類調(diào)用業(yè)務(wù)邏輯來處理用戶請(qǐng)求,然后控制跳轉(zhuǎn)。org.dao:放置DAO(數(shù)據(jù)訪問對(duì)象)的接口,接口中的方法用來和數(shù)據(jù)庫進(jìn)行交互,這些方法由實(shí)現(xiàn)它們的類來實(shí)現(xiàn)。org.dao.imp:放置實(shí)現(xiàn)DAO接口的類。org.model:放置表對(duì)應(yīng)的POJO類及映射文件*..service:放置業(yè)務(wù)邏輯接口。接口中的方法用來處理用戶請(qǐng)求,這些方法由實(shí)現(xiàn)接口的類來實(shí)現(xiàn)。org.service.imp:放置實(shí)現(xiàn)業(yè)務(wù)邏輯接口的類。org.tool:放置公用的工具類,如分頁類。perties:實(shí)現(xiàn)Struts 2和Spring整合。struts.xml:配置Action。applicationContext.xml和web.xml(3)SSH各部分功能如下:Struts框架技術(shù)是Java Web開發(fā)人員逐步深入應(yīng)用需要掌握的一種常用的框架技術(shù),掌握這種技術(shù)將給實(shí)際工程的開發(fā)工作帶來許多方便,成倍的提高開發(fā)效率。比如采用Struts框架技術(shù)的Web應(yīng)用能夠自動(dòng)保留表單中的輸入數(shù)據(jù),能夠自動(dòng)進(jìn)行常見的數(shù)據(jù)校驗(yàn)工作,能夠通過OGNL表達(dá)式簡化JSP頁面的代碼,實(shí)現(xiàn)MVC模式,使系統(tǒng)具

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論