2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩61頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ?。?0 屆)</b></p><p>  基于Web的在線用戶資費(fèi)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  目錄</b></p><p><b>  摘 要I</b></p>

2、<p>  AbstractII</p><p>  1緒 論- 1 -</p><p>  1.1 項(xiàng)目背景- 1 -</p><p>  1.2 項(xiàng)目意義- 1 -</p><p>  1.3 主要技術(shù)介紹- 1 -</p><p>  1.4 項(xiàng)目可行性分析- 2 -</p>

3、<p>  1.4.1.技術(shù)可行性- 2 -</p><p>  1.4.2.操作可行性- 2 -</p><p>  1.4.3.經(jīng)濟(jì)可行性- 2 -</p><p>  2系統(tǒng)需求分析- 3 -</p><p>  2.1 功能概述- 3 -</p><p>  2.2 系統(tǒng)流程- 5 -

4、</p><p>  2.3 功能需求- 6 -</p><p>  2.4 系統(tǒng)用例清單- 9 -</p><p>  2.5 用例描述- 10 -</p><p>  3 系統(tǒng)設(shè)計(jì)- 27 -</p><p>  3.1 系統(tǒng)架構(gòu)架構(gòu)與設(shè)計(jì)概述- 27 -</p><p>  3.

5、1.1 系統(tǒng)總體架構(gòu)- 27 -</p><p>  3.1.2 基本類圖分析- 28 -</p><p>  3.1.3 基本流程時(shí)序圖- 31 -</p><p>  3.1.4 核心類分析與實(shí)現(xiàn)- 33 -</p><p>  3.2 數(shù)據(jù)庫設(shè)計(jì)- 38 -</p><p>  3.2.1 數(shù)據(jù)庫概念設(shè)

6、計(jì)- 38 -</p><p>  3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)- 38 -</p><p>  3.2.3數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)- 39 -</p><p>  3.2.4表結(jié)構(gòu)描述- 40 -</p><p>  4系統(tǒng)實(shí)現(xiàn)- 43 -</p><p>  4.1 界面及功能實(shí)現(xiàn)- 43 -</p&g

7、t;<p>  4.1.1 登錄界面- 43 -</p><p>  4.1.2 注冊界面- 43 -</p><p>  4.1.3 角色管理界面- 44 -</p><p>  4.1.4 資源管理界面- 45 -</p><p>  4.1.5 資費(fèi)管理界面- 46 -</p><p> 

8、 4.1.6 業(yè)務(wù)帳號管理界面- 46 -</p><p>  4.1.7 賬單明細(xì)管理界面- 47 -</p><p>  4.1.8 個(gè)人信息界面- 48 -</p><p>  4.2 系統(tǒng)運(yùn)行環(huán)境- 48 -</p><p>  5系統(tǒng)測試- 49 -</p><p>  6結(jié)束語- 55 -<

9、;/p><p><b>  致謝- 56 -</b></p><p>  參考文獻(xiàn)- 57 -</p><p>  文獻(xiàn)綜述 …………………………………………………………………………………………附錄</p><p><b>  摘 要</b></p><p>  網(wǎng)絡(luò)資

10、源是當(dāng)今社會(huì)的信息來源一個(gè)不可缺少的部分,是廣大群體用戶獲取資料的重要途徑之一,現(xiàn)今網(wǎng)絡(luò)資源各出其雜,用戶往往查詢想要的信息而無法得以滿足。</p><p>  在運(yùn)營商的推動(dòng)下,將網(wǎng)絡(luò)資源進(jìn)行整理分類開放出來,方便用戶查詢和使用。如何規(guī)范用戶對網(wǎng)絡(luò)資源的使用成為必須解決的問題,資費(fèi)管理系統(tǒng)面提出了從資費(fèi)管理的角度來規(guī)范用戶使用行為,Web在線用戶資費(fèi)管理系統(tǒng)包括了角色管理,資源管理,資費(fèi)管理,帳號管理,賬單管理

11、,報(bào)表查詢,個(gè)人信息管理等功能。由于資費(fèi)管理系統(tǒng)是系統(tǒng)中不可缺少的部分,是反映資金活動(dòng)狀況的綜合場所,保證資金鏈的順利運(yùn)行,對實(shí)現(xiàn)費(fèi)用的有效控制具有重要意義。資費(fèi)管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)包括前端應(yīng)用程序的開發(fā)和后臺數(shù)據(jù)庫的建立和維護(hù)兩個(gè)方面。對于前者要求應(yīng)用程序功能完備,易使用等特點(diǎn),而對于后者則要求建立起數(shù)據(jù)一致性和完善性強(qiáng),數(shù)據(jù)安全性好的庫。</p><p>  經(jīng)過分析,本系統(tǒng)使用SUN公司的J

12、AVA語言,利用其提供的各種面向?qū)ο蟮慕涌谶M(jìn)行編程,尤其是SSH開源框架功能方便而簡潔操縱數(shù)據(jù)量,短期內(nèi)可以開發(fā)用戶滿意的可行系統(tǒng)。</p><p>  關(guān)鍵詞:資費(fèi)管理 網(wǎng)絡(luò)資源 規(guī)范化</p><p><b>  Abstract</b></p><p>  Network resources are sources of informa

13、tion in today's society is an indispensable part of the majority population is an important way users access to information, from each of its current hybrid network resources, users often want to query information ca

14、n not be met.</p><p>  Under the operator's push to open network resources to sort out the classification, user-friendly query and use. How to regulate the use of network resources users become must solv

15、e problems, face tariff management system proposed tariff management from the perspective of the user to regulate behavior, Web users online tariff management system, including the role of management, resource management

16、, tariff management, account management , billing management, report queries, personal information m</p><p>  After analysis, the system uses the company's SUN JAVA language, using a variety of object-or

17、iented interface for programming it provides, in particular, open source SSH framework features simple and easy to manipulate data, can develop a viable system of customer satisfaction in the short term.</p><p

18、>  Keywords: tariff management system Network resources standardization</p><p><b>  1緒 論</b></p><p><b>  1.1 項(xiàng)目背景</b></p><p>  網(wǎng)絡(luò)資源是當(dāng)今社會(huì)的一個(gè)不可缺少的組成部分,是廣

19、大群體用戶獲取資料的重要途徑之一。人們查閱某一主題的網(wǎng)絡(luò)資源時(shí),習(xí)慣鏈接到其相關(guān)主題的文獻(xiàn)信息,擴(kuò)大檢索范圍,以防漏檢所需信息。因而,網(wǎng)絡(luò)信息的超鏈接將位于不同頁面及其上面的各種文獻(xiàn)信息(文字、圖像、表格等)有效連接起來,具有很大的靈活性,方便用戶檢索相關(guān)文獻(xiàn)信息。而且,查找網(wǎng)絡(luò)資源,最終是為了利用,而用戶所需要的文獻(xiàn)信息是否具有易檢性,檢索途徑是否方便,利用起來是否順暢等等,這些都會(huì)影響到用戶對文獻(xiàn)質(zhì)量的選擇和評價(jià)。網(wǎng)絡(luò)資源雜論現(xiàn)象是

20、一個(gè)嚴(yán)重的問題,不利于用戶查找或者用戶查找不能得到理想需要的信息。</p><p><b>  1.2 項(xiàng)目意義</b></p><p>  為了改變當(dāng)前現(xiàn)狀,運(yùn)營商將對網(wǎng)絡(luò)資源進(jìn)行合理整理,如果全依靠人力來解決,即繁瑣又浪費(fèi)時(shí)間,而不同網(wǎng)站上的資料不能統(tǒng)一。該系統(tǒng)的實(shí)現(xiàn),在資源管理,用戶體驗(yàn)上都能有效提升為廣大用戶提供了方便。該系統(tǒng)是針對廣大群體以及運(yùn)營商的,Web

21、在線用戶資費(fèi)管理系統(tǒng)就是為了讓用戶更加方便的查找資料,學(xué)習(xí),以及資源的管理。用戶能輕松的查找需要的資源,以及對資料資費(fèi)情況一目了然,運(yùn)營商方便的對資料數(shù)據(jù)進(jìn)行管理,能輕松的進(jìn)行信息查詢、管理、統(tǒng)計(jì)等。</p><p>  1.3 主要技術(shù)介紹</p><p>  Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺的總稱。是當(dāng)前比較主流的

22、面向?qū)ο笳Z言,他擁有安全性良好,支持多線程,跨平臺等良好特性。SSH(Struts,Spring,Hibernate) Struts進(jìn)行流程控制,Spring</p><p>  進(jìn)行業(yè)務(wù)流轉(zhuǎn),Hibernate進(jìn)行數(shù)據(jù)庫操作的封裝。</p><p>  1.4 項(xiàng)目可行性分析</p><p>  1.4.1.技術(shù)可行性</p><p>  

23、為了確定現(xiàn)有技術(shù)能否實(shí)現(xiàn)目標(biāo)系統(tǒng),MyEclipse自帶的工具和空間、SQL擁有的表操作(建立、修改、刪除等)以及它協(xié)調(diào)操作完全可以實(shí)現(xiàn)本系統(tǒng)要求達(dá)到的功能,因此技術(shù)上可行。</p><p>  1.4.2.操作可行性</p><p>  基于Web的在線用戶資費(fèi)管理系統(tǒng)的建設(shè)是基于java平臺開發(fā)的,java是被廣泛應(yīng)用與數(shù)據(jù)庫開發(fā)和操作的一套成熟的軟件平臺,而且它對于一個(gè)大型的數(shù)據(jù)庫處

24、理具有不可比擬的優(yōu)點(diǎn)和簡單方便。所以操作可行性方面是可行的。</p><p>  1.4.3.經(jīng)濟(jì)可行性</p><p>  資費(fèi)管理如果光靠完全人工來操作執(zhí)行,不僅存在信息延后的問題,而且需要花費(fèi)大量的人力物力,通訊費(fèi),各類表格通知打印費(fèi)等開資,而且這筆開銷還將一直無限的擴(kuò)大下去,所以一次性的建設(shè)投入資費(fèi)管理系統(tǒng)不僅方便管理而且可以節(jié)約大筆費(fèi)用。顯然,從長遠(yuǎn)考慮在軟件有效期內(nèi)預(yù)期經(jīng)濟(jì)效益

25、大于開發(fā)成本,經(jīng)濟(jì)性收益明顯,有廣闊市場前景。有以上分析我們可以確定本系統(tǒng)在經(jīng)濟(jì)可行性上行得通。</p><p><b>  2系統(tǒng)需求分析</b></p><p>  軟件工程導(dǎo)論提出,在軟件生命周期中,需求分析(Requirements Analysis)是最重要的一個(gè)階段。軟件需求分析的質(zhì)量對軟件開發(fā)的影響是深遠(yuǎn)的、全局性的,高質(zhì)量需求對軟件開發(fā)往往起到事半功倍

26、的效果,所謂“磨刀不誤砍柴功”。在后續(xù)階段改正需求分析階段產(chǎn)生的錯(cuò)誤將付出高昂的代價(jià)。現(xiàn)在人們越來越認(rèn)識到軟件工程在軟件開發(fā)中的重要作用。目前國內(nèi)軟件在開發(fā)中還沒有對軟件開發(fā)的過程進(jìn)行明確規(guī)定,文檔不完整,也不規(guī)范,軟件項(xiàng)目的成功往往歸功于軟件開發(fā)組的一些杰出個(gè)人或小組的努力。這種依賴于個(gè)別人員上的成功并不能為全組織的軟件生產(chǎn)率和質(zhì)量的提高奠定有效的基礎(chǔ),只有通過建立全過程的改善,采用嚴(yán)格的軟件工程方法和管理,并且堅(jiān)持不懈地付諸實(shí)踐,才

27、能取得全組織的軟件過程能力的不斷提高,使軟件開發(fā)更規(guī)范合理。</p><p><b>  2.1 功能概述</b></p><p>  整個(gè)系統(tǒng)大致角色管理,資源管理,資費(fèi)管理,業(yè)務(wù)帳號,賬單管理,報(bào)表等管理模塊。</p><p>  本系統(tǒng)根據(jù)用戶的權(quán)限等級限制訪問系統(tǒng)功能,系統(tǒng)主要包括角色管理,資源管理,資費(fèi)管理,業(yè)務(wù)帳號管理,賬單管理,報(bào)

28、表查詢,個(gè)人信息管理等</p><p>  圖2-1 是系統(tǒng)功能結(jié)構(gòu)圖</p><p>  圖2-1系統(tǒng)功能結(jié)構(gòu)圖</p><p>  用戶登錄成功后可以進(jìn)行的操作完全取決與其所擁有的權(quán)限。WUOLOSS系統(tǒng)會(huì)內(nèi)置一個(gè)“超級管理員”,作為使用該系統(tǒng)的第一超級管理員用戶。成功登錄系統(tǒng)后,進(jìn)入系統(tǒng)主頁。主頁是系統(tǒng)的功能導(dǎo)航頁,根據(jù)登錄的管理員的權(quán)限的不同所顯示的功能操作

29、也各不相同。如果是超級管理員,則可以操作系統(tǒng)的所以功能模塊。如果是普通管理員,則其登錄成功后只能操作資源管理,個(gè)人信息和修改密碼功能模塊。如果是普通用戶,則其登錄成功后只能操作資源瀏覽,資費(fèi)辦理,個(gè)人信息和修改密碼功能。如果操作者在瀏覽器點(diǎn)擊無權(quán)訪問的頁面地址,則將定位到無權(quán)訪問的錯(cuò)誤提示頁。操作者在訪問網(wǎng)站的過程中,如果發(fā)生異?;蛘咤e(cuò)誤,者將顯示系統(tǒng)的錯(cuò)誤頁。如果用戶在瀏覽器地址欄直接輸入訪問鏈接,這先判斷該用戶是否已經(jīng)成功登錄,如果

30、成功登錄,則跳轉(zhuǎn)到相應(yīng)鏈接,否則跳轉(zhuǎn)登錄頁面。</p><p><b>  2.2 系統(tǒng)流程</b></p><p>  因?yàn)椴煌瑱?quán)限的用戶登錄系統(tǒng)后可執(zhí)行的操作不同,因此,為方便系統(tǒng)流程將就,我們以超級管理員登錄為例。</p><p>  超級管理員登錄系統(tǒng)后,系統(tǒng)業(yè)務(wù)流圖如(圖2-2)所示:</p><p>  圖

31、2-2 系統(tǒng)業(yè)務(wù)流圖</p><p><b>  詳細(xì)流程:</b></p><p>  1 超級管理員登錄成功后,可以進(jìn)行個(gè)人信息和密碼的維護(hù);</p><p>  2 可以進(jìn)行角色管理,創(chuàng)建不同的角色以操作相應(yīng)的功能模塊;</p><p>  3 然后進(jìn)行資源管理,即上傳資源供用戶使用;</p><

32、;p>  4 進(jìn)行資費(fèi)管理,創(chuàng)建不同的資費(fèi)供客戶選擇使用;</p><p>  5 進(jìn)行業(yè)務(wù)帳號管理,開通、暫停和刪除</p><p>  6 定期進(jìn)行報(bào)表管理;</p><p>  如果是其他用戶,則根據(jù)權(quán)限的不同,進(jìn)行相應(yīng)的操作。</p><p><b>  2.3 功能需求</b></p>&l

33、t;p>  普通用戶能夠?yàn)槲醋杂脩糇?,為登錄用戶提供信息管理,信息查詢,辦理資費(fèi)等。以下為普通用戶用例圖(圖2-3-1):</p><p>  圖2-3-1 普通用戶用例分析圖</p><p>  為登錄的管理員提供信息查詢和資源管理等功能。以下圖為管理員用例圖(圖2-3-2):</p><p>  圖2-3-2 管理員用例分析圖</p>&

34、lt;p>  為登錄的超級管理員提供資費(fèi)管理,管理員管理,賬單管理,收入查詢和報(bào)表瀏覽等。以下為超級管理員用例圖(圖2-3-3):</p><p>  圖2-3-3 超級管理員用例分析圖</p><p>  以下為超級管理員功能具體用例圖:</p><p>  超級管理員 ------ 收入查詢</p><p>  圖2-3-3-1

35、 收入查詢用例分析圖</p><p>  超級管理員 --------管理員管理</p><p>  圖2-3-3-2 管理員管理用例分析圖</p><p>  超級管理員------資費(fèi)管理</p><p>  圖2-3-3-3 資費(fèi)管理用例分析圖</p><p>  超級管理員-----賬單管理</p>

36、;<p>  圖2-3-3-4 賬單管理用例分析圖</p><p>  2.4 系統(tǒng)用例清單</p><p>  表 2-1 功能清單</p><p><b>  2.5 用例描述</b></p><p>  根據(jù)功能模塊的劃分,通過分析,大致提取出一下用例,和各個(gè)用例所對應(yīng)的描述(表2-2):</p

37、><p>  表 2-2 用例清單</p><p><b>  表2-2-1登錄</b></p><p><b>  表2-2-2主頁</b></p><p>  表2-2-3修改密碼</p><p>  表2-2-4查看個(gè)人信息</p><p>  表2

38、-2-5修改人信息</p><p>  表2-2-6角色瀏覽</p><p>  表2-2-7添加角色</p><p>  表2-2-8修改角色</p><p>  表2-2-9刪除角色</p><p>  表2-2-14 資費(fèi)瀏覽</p><p>  表2-2-15資費(fèi)排序</p>

39、<p>  表2-2-16啟用資費(fèi)</p><p>  表2-2-17刪除資費(fèi)</p><p>  表2-2-18資費(fèi)詳細(xì)</p><p>  表2-2-19添加資費(fèi)</p><p>  表2-2-20修改資費(fèi)</p><p>  表2-2-21業(yè)務(wù)帳號瀏覽</p><p>  表

40、2-2-22查詢業(yè)務(wù)帳號</p><p>  表2-2-23暫停業(yè)務(wù)帳號</p><p>  表2-2-24開通業(yè)務(wù)帳號</p><p>  表2-2-25刪除業(yè)務(wù)帳號</p><p>  表2-2-26業(yè)務(wù)帳號詳細(xì)</p><p>  表2-2-27添加業(yè)務(wù)帳號</p><p>  表2-2-

41、28修改業(yè)務(wù)帳號</p><p>  表2-2-29賬單瀏覽</p><p>  表2-2-30查詢賬單</p><p>  表2-2-31賬單明細(xì)瀏覽</p><p>  表2-2-32業(yè)務(wù)詳單瀏覽</p><p><b>  3 系統(tǒng)設(shè)計(jì)</b></p><p>  3

42、.1 系統(tǒng)架構(gòu)架構(gòu)與設(shè)計(jì)概述</p><p>  系統(tǒng)設(shè)計(jì)是根據(jù)需求制定出來的,首先對系統(tǒng)的總體框架進(jìn)行了設(shè)計(jì),采用了MVC設(shè)計(jì)模式使得系統(tǒng)能夠滿足各方面的需求,然后再對各個(gè)功能進(jìn)行詳細(xì)設(shè)計(jì),系統(tǒng)還重點(diǎn)對前端界面及交互進(jìn)行了深入的研究和設(shè)計(jì)使得系統(tǒng)的界面更加的美觀、交互更加的易用</p><p>  3.1.1 系統(tǒng)總體架構(gòu)</p><p>  MVC設(shè)計(jì)模式是目前

43、非常常見的設(shè)計(jì)模式。該模式將應(yīng)用分為三層:視圖(View)層、模型(Model)層、控制器(Controller)層。它們每一層之間是相互獨(dú)立的,這樣就使得MVC模式具有以下優(yōu)點(diǎn):</p><p>  高內(nèi)聚。系統(tǒng)內(nèi)部各個(gè)功能高度聚合,使得各個(gè)功能更加緊湊,邏輯性強(qiáng),不松散。</p><p>  低耦合。系統(tǒng)內(nèi)部各個(gè)功能之間以組件的形式進(jìn)行解耦合,使得各個(gè)功能模塊之間相互獨(dú)立。</p

44、><p>  易維護(hù)。面向?qū)ο蟮脑O(shè)計(jì)思想,各個(gè)功能模塊相互獨(dú)立,使得代碼維護(hù)更加方面,有效的降低了成本。</p><p>  可移植。整個(gè)系統(tǒng)是以Web的方式展示,使得能夠在大多數(shù)平臺中使用。</p><p>  首先是視圖層。視圖層主要負(fù)責(zé)接收用戶數(shù)據(jù)和向用戶輸入數(shù)據(jù)結(jié)果。本系統(tǒng)該層主要使用JSP實(shí)現(xiàn)。</p><p>  其次是模型層。模型層

45、主要是封裝了數(shù)據(jù)對象以及對數(shù)據(jù)對象的操作邏輯。本系統(tǒng)該層使用的hibernate把數(shù)據(jù)對象的封裝到了DB類,這樣大大的提高了編程的便利性,也使得自己可以編寫model類對DB類進(jìn)行拓展。</p><p>  最后是控制器層??刂破鲗邮沁B接視圖層和模型層的橋梁,控制器層接收視圖層傳來的數(shù)據(jù)經(jīng)過處理傳給模型層存入數(shù)據(jù)庫。本系統(tǒng)該層主要使用Struts2實(shí)現(xiàn)。</p><p>  本系統(tǒng)中模型層

46、和控制器層中實(shí)際還包括了Spring,Spring接管了Struts2和hibernate某些功能。</p><p>  圖3-1是系統(tǒng)的技術(shù)架構(gòu)圖:</p><p>  圖3-1 系統(tǒng)架構(gòu)圖</p><p>  3.1.2 基本類圖分析</p><p>  在項(xiàng)目開發(fā)過程中,項(xiàng)目架構(gòu)的設(shè)計(jì)好壞決定著系統(tǒng)的質(zhì)量。在實(shí)際需求功能完成的基礎(chǔ)上,系

47、統(tǒng)還需要考慮到系統(tǒng)的拓展性、可維護(hù)性和代碼的可重用性?;谶@些原則以及Web系統(tǒng)的特征,本系統(tǒng)采用了MVC模式搭建,系統(tǒng)采用了SSH框架,不僅僅降低了耦合度,訪問數(shù)據(jù)庫也變得更加的方便。</p><p>  系統(tǒng)action全部類圖如3-2圖所示:</p><p>  圖3-2 系統(tǒng)全部Action類圖</p><p>  系統(tǒng)dao全部接口類圖如3-3所示:<

48、;/p><p>  圖3-3 系統(tǒng)dao接口類圖</p><p>  以下是具體功能類圖:</p><p>  服務(wù)器查找所有業(yè)務(wù)帳號類圖如圖3-1-2-1所示:</p><p>  圖3-1-2-1 查找所有業(yè)務(wù)帳號類圖</p><p>  用戶預(yù)覽資源計(jì)費(fèi)類圖如圖3-1-2-2所示:</p><p&

49、gt;  圖3-1-2-2 用戶預(yù)覽資源計(jì)費(fèi)類圖</p><p>  3.1.3 基本流程時(shí)序圖</p><p>  用戶點(diǎn)擊頁面登錄時(shí),頁面會(huì)將請求發(fā)送到toLgin.action 當(dāng)跳轉(zhuǎn)到該頁面時(shí),頁面調(diào)用Ajax技術(shù)想后臺發(fā)送請求獲取驗(yàn)證碼圖片并將起顯示到登錄頁面</p><p>  圖3-1-3-1用戶登打開登錄頁面時(shí)序圖:,</p><

50、p>  圖3-1-3-1 用戶打開登錄頁面時(shí)序圖</p><p>  當(dāng)用戶輸入相關(guān)信息后,點(diǎn)擊登錄時(shí),瀏覽器發(fā)出login.action請求,并將form表達(dá)發(fā)送到login.action,通過Spring 的掃描機(jī)制將IUsersDAO注入,如果驗(yàn)證碼正確,系統(tǒng)調(diào)用dao的getUser(String name)方法,如果成功,將返回的Users user賦值個(gè)user,并驗(yàn)證用戶的密碼是否正確,如果正

51、確,將user保存到session中,并跳轉(zhuǎn)到主頁。用戶登錄時(shí)序圖如3-1-3-2所示:</p><p>  圖3-1-3-2用戶登錄時(shí)序圖</p><p>  用戶點(diǎn)擊業(yè)務(wù)帳號時(shí),會(huì)將頁面信息封裝成form表達(dá)的形式發(fā)送給請求findListService.action, findListService.action, 通過Spring 的掃描機(jī)制將所需要的IServiceDAO 注入給

52、Action,Action調(diào)用dao的findService(Integer page , Integer pageSize , String realName , String user.name , String idCardNo , String status) 方法,將dao返回的List<Service> list 賦值給services ,通過service_list.jsp 顯示給用戶。</p>

53、<p>  圖3-1-3-2是service的查詢時(shí)序圖:</p><p>  圖3-1-3-2 service的查詢時(shí)序圖</p><p>  3.1.4 核心類分析與實(shí)現(xiàn)</p><p>  由于系統(tǒng)需要根據(jù)用戶進(jìn)行部分相關(guān)查詢,所以采用了session技術(shù)對用戶登錄進(jìn)行保存。登錄成功后,將登錄信息記錄到Session。ActionContext.g

54、etContext().getSession(),它返回的Session不是原始的HttpSession類型,而是一個(gè)Map<String,Object>類型,目的是簡化我們的開發(fā)。ServletActionContext.getRequest().getSession(),它返回的是HttpSession。讓Action實(shí)現(xiàn)接口SessionAware,該接口需要實(shí)現(xiàn)一個(gè)void setSession(Map<Str

55、ing,Object> map),該方法的目的是將session傳入給Action。即,當(dāng)Action被實(shí)例化以后,Struts2會(huì)自動(dòng)判斷其是否實(shí)現(xiàn)了SessionAware接口,如果是則自動(dòng)調(diào)用其setSession方法。需要在Action中定義全局變量來記錄傳入的Session對象。</p><p><b>  示例代碼如下:</b></p><p>  

56、package com.yyj.action;</p><p>  import java.util.Map;</p><p>  import org.apache.struts2.interceptor.SessionAware;</p><p>  public class BaseAction implements SessionAware {</p&

57、gt;<p>  protected Map<String, Object> session;</p><p>  public void setSession(Map<String, Object> arg0) {session = arg0;}</p><p><b>  }</b></p><p> 

58、 其他類需要使用當(dāng)session時(shí) ,只需要繼承與此類。</p><p>  由于本系統(tǒng)是采用SSH框架設(shè)計(jì)的,采用Spring+Hibernate方式實(shí)現(xiàn)DAO,根據(jù)表編寫實(shí)體類和hbm.xml文件,編寫DAO實(shí)現(xiàn)類,繼承HibernateDaoSupport利用HibernateTemplate完成操作;將DAO交給Spring容器管理定義dataSource,sessionFactory,將sessionF

59、actory給DAO注入。采用Spring+Struts2方式實(shí)現(xiàn)Action將Action交給Spring容器管理,將容器中DAO給Action對象注入引入struts2-spring-plugin.jar (將struts.xml配置<action>的class屬性改為Spring容器中Action對象的id值)在web.xml中需要定義Listener,負(fù)責(zé)實(shí)例化Spring容器對象,啟動(dòng)服務(wù)器,瀏覽器發(fā)請求測試。Sp

60、ring的配置如下xml文件所示:</p><p>  <beans xmlns="http://www.springframework.org/schema/beans"</p><p>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </p><p> 

61、 xmlns:tx="http://www.springframework.org/schema/tx"</p><p>  xmlns:aop="http://www.springframework.org/schema/aop"</p><p>  xmlns:context="http://www.springframework.or

62、g/schema/context"</p><p>  xmlns:jee="http://www.springframework.org/schema/jee"</p><p>  xsi:schemaLocation=" http://www.springframework.org/schema/tx </p><p> 

63、 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd </p><p>  http://www.springframework.org/schema/aop </p><p>  http://www.springframework.org/schema/aop/spring-aop-2.5.xsd </p>

64、<p>  http://www.springframework.org/schema/beans </p><p>  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd </p><p>  http://www.springframework.org/schema/context </p&

65、gt;<p>  http://www.springframework.org/schema/context/spring-context-2.5.xsd </p><p>  http://www.springframework.org/schema/jee </p><p>  http://www.springframework.org/schema/jee/sprin

66、g-jee-2.5.xsd"></p><p>  <!—掃描組件 --></p><p>  <context:component-scan base-package="com.yyj"/></p><p>  <!-- 定義連接池對象 --></p><p>  &l

67、t;bean id="c3p0DS" class="com.mchange.v2.c3p0.ComboPooledDataSource"></p><p>  <property name="user" value="web_ol"></property></p><p>  &l

68、t;property name="password" value="123"></property></p><p>  <property name="driverClass" value="oracle.jdbc.OracleDriver"></property></p>&

69、lt;p>  <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe"></property></p><p><b>  </bean></b></p><p>  <!-- 定義SessionFac

70、tory對象 --></p><p>  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></p><p>  <!-- dataSource連接池 --></p>&l

71、t;p>  <property name="dataSource" ref="c3p0DS"></property></p><p>  <!-- 框架參數(shù) --></p><p>  <property name="hibernateProperties"></p>

72、;<p><b>  <props></b></p><p>  <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop></p><p>  <prop key="hibernate.show_

73、sql">true</prop></p><p>  <prop key="hibernate.format_sql">true</prop></p><p><b>  </props></b></p><p>  </property></

74、p><p>  <!-- hbm.xml參數(shù) --></p><p>  <property name="mappingResources"></p><p><b>  <list></b></p><p>  <value>com/yyj/entity/

75、Authority.hbm.xml</value></p><p>  <value>com/yyj/entity/Bill.hbm.xml</value></p><p>  <value>com/yyj/entity/ServiceDetail.hbm.xml</value></p><p>  <

76、;value>com/yyj/entity/Cost.hbm.xml</value></p><p>  <value>com/yyj/entity/MonthDuration.hbm.xml</value></p><p>  <value>com/yyj/entity/RasourceInfo.hbm.xml</value&g

77、t;</p><p>  <value>com/yyj/entity/Service.hbm.xml</value></p><p>  <value>com/yyj/entity/BillItem.hbm.xml</value></p><p>  <value>com/yyj/entity/Servi

78、ceUpdateBak.hbm.xml</value></p><p>  <value>com/yyj/entity/Users.hbm.xml</value></p><p><b>  </list></b></p><p>  </property></p>&l

79、t;p><b>  </bean></b></p><p>  <!-- Spring聲明式事務(wù)管理 --></p><p>  <!-- 定義管理事務(wù)的方面組件 --></p><p>  <bean id="txManager" class="org.spring

80、framework.orm.hibernate3.HibernateTransactionManager"></p><p>  <property name="sessionFactory" ref="sessionFactory"></p><p>  </property></p><

81、p><b>  </bean></b></p><p>  <!-- 開啟事務(wù)的注解配置 --></p><p>  <tx:annotation-driven transaction-manager="txManager"/></p><p>  <!-- 只需要在目標(biāo)組件定

82、義中使用@Transactional標(biāo)記即可 --></p><p><b>  </beans></b></p><p>  系統(tǒng)對用戶權(quán)限進(jìn)行了劃分,通過角色不同跟不同角色給定權(quán)限用戶每次發(fā)出請求,都通過攔截器檢測當(dāng)前請求URL是否在該用戶分配的權(quán)限URL列表中。如果不存在跳轉(zhuǎn)到無權(quán)限提示頁面;如果存在就允許繼續(xù)執(zhí)行操作。(檢測權(quán)限)在用戶登錄時(shí)

83、,將用戶允許的權(quán)限URL列表(XML配置文件中)以List存入session中,然后在攔截器檢測時(shí)取出。</p><p><b>  配置文件示例如下:</b></p><p>  <previleges></p><p>  <privilege id="1"></p><p&g

84、t;  <name>普通用戶</name></p><p><b>  <urls></b></p><p>  <url>reg</url></p><p><b>  </urls></b></p><p>  </p

85、rivilege></p><p>  </previleges></p><p>  這只是一個(gè)樣本格式,管理用戶可配置。</p><p>  讀取配置文件類代碼如下:</p><p>  package com.yyj.uitl;</p><p>  import java.io.InputStr

86、eam;</p><p>  import java.util.ArrayList;</p><p>  import java.util.List;</p><p>  import org.dom4j.Document;</p><p>  import org.dom4j.DocumentException;</p>&l

87、t;p>  import org.dom4j.Element;</p><p>  import org.dom4j.io.SAXReader;</p><p>  import com.yyj.entity.Privilege;</p><p>  public class PrivilegeReader {</p><p>  pr

88、ivate static List<Privilege> modules = new ArrayList<Privilege>();</p><p>  static {InputStream xml = PrivilegeReader.class.getClassLoader()</p><p>  .getResourceAsStream("privi

89、leges.xml");</p><p>  modules = toModuleList(xml);}</p><p>  public static List<Privilege> getModules(){return modules;}</p><p>  public static String getModuleNameById(i

90、nt id){</p><p>  List<Privilege> modules = getModules();</p><p>  for(Privilege module : modules){</p><p>  if(module.getId() == id){return module.getModuleName();}</p>

91、<p>  }return "";}</p><p>  public static List<String> getModulUrlsById(int id){</p><p>  for(Privilege module : modules){</p><p>  if(module.getId() == id){re

92、turn module.getUrls();}</p><p>  }return null;}</p><p>  @SuppressWarnings("unchecked")</p><p>  protected static List<Privilege> toModuleList(</p><p> 

93、 InputStream xml){</p><p>  List<Privilege> modules = new ArrayList<Privilege>();</p><p><b>  try {</b></p><p>  SAXReader reader = new SAXReader();&l

94、t;/p><p>  Document doc = reader.read(xml);</p><p>  Element root = doc.getRootElement();</p><p>  List<Element> moduleElements = root.elements("privilege");</

95、p><p>  for (Element moduleElement : moduleElements) {</p><p>  Privilege module = new Privilege();</p><p>  module.setId(Integer.parseInt(moduleElement.attributeValue("id

96、")));</p><p>  module.setModuleName(moduleElement.elementText("name"));</p><p>  Element urlElement = moduleElement.element("urls");</p><p>  List<Elem

97、ent> urlElements = urlElement.elements();</p><p>  List<String> urls = new ArrayList<String>();</p><p>  for (Element element : urlElements) {urls.add(element.getText());}<

98、/p><p>  module.setUrls(urls);</p><p>  modules.add(module);</p><p><b>  }</b></p><p>  return modules;</p><p>  } catch (DocumentEx

99、ception e) {</p><p>  e.printStackTrace();</p><p>  throw new RuntimeException("", e);</p><p><b>  }</b></p><p><b>  }</b></p>

100、<p><b>  }</b></p><p>  權(quán)限分配實(shí)體如下代碼所示:</p><p>  package com.yyj.entity;</p><p>  import java.util.List</p><p>  public class Privilege implements java.i

101、o.Serializable {</p><p>  private int id;</p><p>  private String moduleName;</p><p>  private List<String> urls;</p><p>  public int getId() {</p><p&g

102、t;  return id;</p><p><b>  }</b></p><p>  public void setId(int id) {</p><p>  this.id = id;</p><p><b>  }</b></p><p>  public Stri

103、ng getModuleName() {</p><p>  return moduleName;</p><p><b>  }</b></p><p>  public void setModuleName(String moduleName) {</p><p>  this.moduleName = module

104、Name;</p><p><b>  }</b></p><p>  public List<String> getUrls() {</p><p>  return urls;</p><p><b>  }</b></p><p>  public void

105、 setUrls(List<String> urls) {</p><p>  this.urls = urls;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.2 數(shù)據(jù)庫設(shè)計(jì)</b></p&g

106、t;<p>  系統(tǒng)在服務(wù)端用的是oracle數(shù)據(jù)庫</p><p>  3.2.1 數(shù)據(jù)庫概念設(shè)計(jì)</p><p>  在系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)中,先要對系統(tǒng)需求分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲(chǔ)過程進(jìn)行分析,分析各數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后得出系統(tǒng)的關(guān)系模式。該系統(tǒng)采用實(shí)體-聯(lián)系圖(簡稱E-R圖)來描述系統(tǒng)的概念模型。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成,其符號如圖3-4所示:<

107、;/p><p>  圖3-4 E-R圖符號說明</p><p>  3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫的邏輯設(shè)計(jì)是將各局部的E-R圖進(jìn)行分解、合并后重新組織起來形成數(shù)據(jù)庫全局邏輯結(jié)構(gòu),包括所確定的關(guān)鍵字和屬性、重新確定的記錄結(jié)構(gòu)、所建立的各個(gè)數(shù)據(jù)之間的相互關(guān)系。其任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)換成與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符

108、合的邏輯結(jié)構(gòu)。</p><p>  E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型所要解決的問題是如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換成關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼,而數(shù)據(jù)庫中兩實(shí)體間1:n聯(lián)系轉(zhuǎn)換為一個(gè)與n端對應(yīng)的關(guān)系模式合并的關(guān)系模式的方法是將聯(lián)系的屬性與1端的碼加入n端作為屬性,主碼為n端實(shí)體的主碼。</p><p>  本系統(tǒng)在確定了各個(gè)表主鍵字段的基礎(chǔ)上,依據(jù)表與表相關(guān)字段之間的聯(lián)系建立了個(gè)表之

109、間的關(guān)系,CDM圖如3-5所示:</p><p><b>  圖3-5 CDM</b></p><p>  3.2.3數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。信息的管理離

110、不開數(shù)據(jù)庫的支持,我們采用Oracle 9i數(shù)據(jù)庫管理系統(tǒng)。</p><p>  系統(tǒng)的PDM圖如圖3-6所示</p><p><b>  圖3-6 PDM</b></p><p>  3.2.4表結(jié)構(gòu)描述</p><p>  表3-2-1所示為系統(tǒng)權(quán)限表authority:</p><p>  

111、表3-2-1權(quán)限表authority</p><p>  表3-2-2所示為系統(tǒng)賬單信息表bill:</p><p>  表3-2-2賬單信息表bill</p><p>  表3-2-3所示為系統(tǒng)賬單條目表bill_item:</p><p>  表3-2-3賬單條目表bill_item</p><p>  表3-2-

112、4所示為系統(tǒng)資費(fèi)表cost:</p><p>  表3-2-4資費(fèi)表cost</p><p>  表3-2-5所示為系統(tǒng)資源信息表rasource_info:</p><p>  表3-2-5資源信息表rasource_info</p><p>  表3-2-6所示為系統(tǒng)業(yè)務(wù)帳號service:</p><p>  表

113、3-2-6業(yè)務(wù)帳號service</p><p>  表3-2-7所示為系統(tǒng)業(yè)務(wù)詳單表service_detail:</p><p>  表3-2-7業(yè)務(wù)詳單表service_detail</p><p>  表3-2-8所示為系統(tǒng)業(yè)務(wù)更新備份表service_update_bak:</p><p>  表3-2-8業(yè)務(wù)更新備份表servic

114、e_update_bak</p><p>  表3-2-9所示為系統(tǒng)用戶表users:</p><p>  表3-2-9用戶表users</p><p><b>  4系統(tǒng)實(shí)現(xiàn)</b></p><p>  4.1 界面及功能實(shí)現(xiàn)</p><p>  4.1.1 登錄界面</p>&l

115、t;p>  系統(tǒng)資源加載完成過后,首先進(jìn)入登陸界面,已注冊用戶可以從這里登錄系統(tǒng),未注冊用戶可以點(diǎn)擊注冊用戶進(jìn)入用戶注冊界面。或者退出系統(tǒng)。</p><p>  圖3-3-1 登錄界面</p><p>  4.1.2 注冊界面</p><p>  用戶注冊,用戶填寫相應(yīng)信息點(diǎn)擊完成,頁面對帳號進(jìn)行查重處理以及帳號密碼的格式驗(yàn)證。</p><

116、p>  圖3-3-2注冊界面</p><p>  當(dāng)用戶注冊完成并成功登錄后跳轉(zhuǎn)到主頁如圖3-3-3所示</p><p><b>  圖3-3-3 主頁</b></p><p>  用戶在主頁可以對主要上的業(yè)務(wù)進(jìn)行操作,當(dāng)用戶點(diǎn)擊角色管理時(shí) 如3-3-4圖所示,可對角色進(jìn)行權(quán)限修改,和刪除角色。</p><p> 

117、 4.1.3 角色管理界面</p><p>  可對角色進(jìn)行修改刪除和增加功能。</p><p>  圖3-3-4 用戶管理界面</p><p>  4.1.4 資源管理界面</p><p>  當(dāng)用戶點(diǎn)擊資源管理進(jìn)行操作是出現(xiàn)如圖3-3-5圖所示:</p><p>  圖3-3-5 資源管理界面</p>

118、<p>  用可以對資源進(jìn)行上傳和刪除,點(diǎn)擊資源名稱是對資源進(jìn)行訪問,并開始產(chǎn)生費(fèi)用,當(dāng)用戶關(guān)閉預(yù)覽窗口是停止計(jì)費(fèi)。</p><p>  4.1.5 資費(fèi)管理界面</p><p>  當(dāng)用點(diǎn)擊資費(fèi)管理時(shí),可查看相關(guān)資費(fèi)信息,管理資費(fèi)信息。如圖3-3-5所示:</p><p>  圖3-3-6 資費(fèi)管理界面</p><p>  4.

119、1.6 業(yè)務(wù)帳號管理界面</p><p>  當(dāng)用戶點(diǎn)擊業(yè)務(wù)帳號時(shí),可對業(yè)務(wù)帳號進(jìn)行管理,如圖3-3-7所示:</p><p>  圖3-3-7 業(yè)務(wù)帳號管理界面</p><p>  4.1.7 賬單明細(xì)管理界面</p><p>  當(dāng)用戶完成一次資源訪問后,可對產(chǎn)生的費(fèi)用進(jìn)行查詢,如圖3-3-8所示</p><p>

120、  圖3-3-8 賬單清單界面</p><p>  4.1.8 個(gè)人信息界面</p><p>  當(dāng)用戶點(diǎn)擊個(gè)人信息是,可對個(gè)人信息進(jìn)行修改,如托3-3-9所示:</p><p>  圖3-3-9 個(gè)人信息管理界面</p><p>  4.2 系統(tǒng)運(yùn)行環(huán)境</p><p>  服務(wù)器操作系統(tǒng)平臺: Winows7 32

121、位操作系統(tǒng)。</p><p>  編程語言平臺:JDK1.6或以上版本</p><p>  數(shù)據(jù)庫:Oracle 10g</p><p><b>  5系統(tǒng)測試</b></p><p>  在系統(tǒng)的開發(fā)中,難免會(huì)因?yàn)橐恍┦韬鲈斐上到y(tǒng)功能的一些缺陷和問題,而這些缺陷和問題往往在開發(fā)的過程中并沒有被發(fā)現(xiàn),如果這些缺陷和問題如

122、果不檢查出來改正,就好比是軟件中的一顆定時(shí)炸彈,如果在上線實(shí)際使用中觸發(fā)了“炸彈”,往往造成無法彌補(bǔ)的問題,小點(diǎn)可能只是造成功能使用異常,重點(diǎn)就有可能造成經(jīng)濟(jì)的損失。所以,在軟件上線實(shí)際使用之前,都必須要經(jīng)過嚴(yán)格的測試,盡量發(fā)現(xiàn)和解決系統(tǒng)的缺陷和問題,使用戶在使用本軟件時(shí)候的風(fēng)險(xiǎn)降到最低,所以軟件測試非常有必要</p><p><b>  測試用例:</b></p><p

123、>  表5-1 為資費(fèi)瀏覽測試用例表:</p><p><b>  表5-1</b></p><p>  表5-2 為業(yè)務(wù)帳號瀏覽測試用例表:</p><p>  表5-2業(yè)務(wù)帳號瀏覽</p><p>  表5-3 為查詢業(yè)務(wù)帳號測試用例表:</p><p>  表5-3 查詢業(yè)務(wù)帳號<

溫馨提示

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

最新文檔

評論

0/150

提交評論