版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p><b> ?。?0 屆)</b></p><p> 基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b> 目錄</b></p><p><b> 摘 要I</b></p>
2、<p> AbstractII</p><p> 1緒 論- 1 -</p><p> 1.1 項目背景- 1 -</p><p> 1.2 項目意義- 1 -</p><p> 1.3 主要技術(shù)介紹- 1 -</p><p> 1.4 項目可行性分析- 2 -</p>
3、<p> 1.4.1.技術(shù)可行性- 2 -</p><p> 1.4.2.操作可行性- 2 -</p><p> 1.4.3.經(jīng)濟可行性- 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è)計- 27 -</p><p> 3.1 系統(tǒng)架構(gòu)架構(gòu)與設(shè)計概述- 27 -</p><p> 3.
5、1.1 系統(tǒng)總體架構(gòu)- 27 -</p><p> 3.1.2 基本類圖分析- 28 -</p><p> 3.1.3 基本流程時序圖- 31 -</p><p> 3.1.4 核心類分析與實現(xiàn)- 33 -</p><p> 3.2 數(shù)據(jù)庫設(shè)計- 38 -</p><p> 3.2.1 數(shù)據(jù)庫概念設(shè)
6、計- 38 -</p><p> 3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計- 38 -</p><p> 3.2.3數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計- 39 -</p><p> 3.2.4表結(jié)構(gòu)描述- 40 -</p><p> 4系統(tǒng)實現(xiàn)- 43 -</p><p> 4.1 界面及功能實現(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 資費管理界面- 46 -</p><p>
8、 4.1.6 業(yè)務(wù)帳號管理界面- 46 -</p><p> 4.1.7 賬單明細管理界面- 47 -</p><p> 4.1.8 個人信息界面- 48 -</p><p> 4.2 系統(tǒng)運行環(huán)境- 48 -</p><p> 5系統(tǒng)測試- 49 -</p><p> 6結(jié)束語- 55 -<
9、;/p><p><b> 致謝- 56 -</b></p><p> 參考文獻- 57 -</p><p> 文獻綜述 …………………………………………………………………………………………附錄</p><p><b> 摘 要</b></p><p> 網(wǎng)絡(luò)資
10、源是當(dāng)今社會的信息來源一個不可缺少的部分,是廣大群體用戶獲取資料的重要途徑之一,現(xiàn)今網(wǎng)絡(luò)資源各出其雜,用戶往往查詢想要的信息而無法得以滿足。</p><p> 在運營商的推動下,將網(wǎng)絡(luò)資源進行整理分類開放出來,方便用戶查詢和使用。如何規(guī)范用戶對網(wǎng)絡(luò)資源的使用成為必須解決的問題,資費管理系統(tǒng)面提出了從資費管理的角度來規(guī)范用戶使用行為,Web在線用戶資費管理系統(tǒng)包括了角色管理,資源管理,資費管理,帳號管理,賬單管理
11、,報表查詢,個人信息管理等功能。由于資費管理系統(tǒng)是系統(tǒng)中不可缺少的部分,是反映資金活動狀況的綜合場所,保證資金鏈的順利運行,對實現(xiàn)費用的有效控制具有重要意義。資費管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)包括前端應(yīng)用程序的開發(fā)和后臺數(shù)據(jù)庫的建立和維護兩個方面。對于前者要求應(yīng)用程序功能完備,易使用等特點,而對于后者則要求建立起數(shù)據(jù)一致性和完善性強,數(shù)據(jù)安全性好的庫。</p><p> 經(jīng)過分析,本系統(tǒng)使用SUN公司的J
12、AVA語言,利用其提供的各種面向?qū)ο蟮慕涌谶M行編程,尤其是SSH開源框架功能方便而簡潔操縱數(shù)據(jù)量,短期內(nèi)可以開發(fā)用戶滿意的可行系統(tǒng)。</p><p> 關(guān)鍵詞:資費管理 網(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 項目背景</b></p><p> 網(wǎng)絡(luò)資源是當(dāng)今社會的一個不可缺少的組成部分,是廣
19、大群體用戶獲取資料的重要途徑之一。人們查閱某一主題的網(wǎng)絡(luò)資源時,習(xí)慣鏈接到其相關(guān)主題的文獻信息,擴大檢索范圍,以防漏檢所需信息。因而,網(wǎng)絡(luò)信息的超鏈接將位于不同頁面及其上面的各種文獻信息(文字、圖像、表格等)有效連接起來,具有很大的靈活性,方便用戶檢索相關(guān)文獻信息。而且,查找網(wǎng)絡(luò)資源,最終是為了利用,而用戶所需要的文獻信息是否具有易檢性,檢索途徑是否方便,利用起來是否順暢等等,這些都會影響到用戶對文獻質(zhì)量的選擇和評價。網(wǎng)絡(luò)資源雜論現(xiàn)象是
20、一個嚴(yán)重的問題,不利于用戶查找或者用戶查找不能得到理想需要的信息。</p><p><b> 1.2 項目意義</b></p><p> 為了改變當(dāng)前現(xiàn)狀,運營商將對網(wǎng)絡(luò)資源進行合理整理,如果全依靠人力來解決,即繁瑣又浪費時間,而不同網(wǎng)站上的資料不能統(tǒng)一。該系統(tǒng)的實現(xiàn),在資源管理,用戶體驗上都能有效提升為廣大用戶提供了方便。該系統(tǒng)是針對廣大群體以及運營商的,Web
21、在線用戶資費管理系統(tǒng)就是為了讓用戶更加方便的查找資料,學(xué)習(xí),以及資源的管理。用戶能輕松的查找需要的資源,以及對資料資費情況一目了然,運營商方便的對資料數(shù)據(jù)進行管理,能輕松的進行信息查詢、管理、統(tǒng)計等。</p><p> 1.3 主要技術(shù)介紹</p><p> Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺的總稱。是當(dāng)前比較主流的
22、面向?qū)ο笳Z言,他擁有安全性良好,支持多線程,跨平臺等良好特性。SSH(Struts,Spring,Hibernate) Struts進行流程控制,Spring</p><p> 進行業(yè)務(wù)流轉(zhuǎn),Hibernate進行數(shù)據(jù)庫操作的封裝。</p><p> 1.4 項目可行性分析</p><p> 1.4.1.技術(shù)可行性</p><p>
23、為了確定現(xiàn)有技術(shù)能否實現(xiàn)目標(biāo)系統(tǒng),MyEclipse自帶的工具和空間、SQL擁有的表操作(建立、修改、刪除等)以及它協(xié)調(diào)操作完全可以實現(xiàn)本系統(tǒng)要求達到的功能,因此技術(shù)上可行。</p><p> 1.4.2.操作可行性</p><p> 基于Web的在線用戶資費管理系統(tǒng)的建設(shè)是基于java平臺開發(fā)的,java是被廣泛應(yīng)用與數(shù)據(jù)庫開發(fā)和操作的一套成熟的軟件平臺,而且它對于一個大型的數(shù)據(jù)庫處
24、理具有不可比擬的優(yōu)點和簡單方便。所以操作可行性方面是可行的。</p><p> 1.4.3.經(jīng)濟可行性</p><p> 資費管理如果光靠完全人工來操作執(zhí)行,不僅存在信息延后的問題,而且需要花費大量的人力物力,通訊費,各類表格通知打印費等開資,而且這筆開銷還將一直無限的擴大下去,所以一次性的建設(shè)投入資費管理系統(tǒng)不僅方便管理而且可以節(jié)約大筆費用。顯然,從長遠考慮在軟件有效期內(nèi)預(yù)期經(jīng)濟效益
25、大于開發(fā)成本,經(jīng)濟性收益明顯,有廣闊市場前景。有以上分析我們可以確定本系統(tǒng)在經(jīng)濟可行性上行得通。</p><p><b> 2系統(tǒng)需求分析</b></p><p> 軟件工程導(dǎo)論提出,在軟件生命周期中,需求分析(Requirements Analysis)是最重要的一個階段。軟件需求分析的質(zhì)量對軟件開發(fā)的影響是深遠的、全局性的,高質(zhì)量需求對軟件開發(fā)往往起到事半功倍
26、的效果,所謂“磨刀不誤砍柴功”。在后續(xù)階段改正需求分析階段產(chǎn)生的錯誤將付出高昂的代價?,F(xiàn)在人們越來越認(rèn)識到軟件工程在軟件開發(fā)中的重要作用。目前國內(nèi)軟件在開發(fā)中還沒有對軟件開發(fā)的過程進行明確規(guī)定,文檔不完整,也不規(guī)范,軟件項目的成功往往歸功于軟件開發(fā)組的一些杰出個人或小組的努力。這種依賴于個別人員上的成功并不能為全組織的軟件生產(chǎn)率和質(zhì)量的提高奠定有效的基礎(chǔ),只有通過建立全過程的改善,采用嚴(yán)格的軟件工程方法和管理,并且堅持不懈地付諸實踐,才
27、能取得全組織的軟件過程能力的不斷提高,使軟件開發(fā)更規(guī)范合理。</p><p><b> 2.1 功能概述</b></p><p> 整個系統(tǒng)大致角色管理,資源管理,資費管理,業(yè)務(wù)帳號,賬單管理,報表等管理模塊。</p><p> 本系統(tǒng)根據(jù)用戶的權(quán)限等級限制訪問系統(tǒng)功能,系統(tǒng)主要包括角色管理,資源管理,資費管理,業(yè)務(wù)帳號管理,賬單管理,報
28、表查詢,個人信息管理等</p><p> 圖2-1 是系統(tǒng)功能結(jié)構(gòu)圖</p><p> 圖2-1系統(tǒng)功能結(jié)構(gòu)圖</p><p> 用戶登錄成功后可以進行的操作完全取決與其所擁有的權(quán)限。WUOLOSS系統(tǒng)會內(nèi)置一個“超級管理員”,作為使用該系統(tǒng)的第一超級管理員用戶。成功登錄系統(tǒng)后,進入系統(tǒng)主頁。主頁是系統(tǒng)的功能導(dǎo)航頁,根據(jù)登錄的管理員的權(quán)限的不同所顯示的功能操作
29、也各不相同。如果是超級管理員,則可以操作系統(tǒng)的所以功能模塊。如果是普通管理員,則其登錄成功后只能操作資源管理,個人信息和修改密碼功能模塊。如果是普通用戶,則其登錄成功后只能操作資源瀏覽,資費辦理,個人信息和修改密碼功能。如果操作者在瀏覽器點擊無權(quán)訪問的頁面地址,則將定位到無權(quán)訪問的錯誤提示頁。操作者在訪問網(wǎng)站的過程中,如果發(fā)生異常或者錯誤,者將顯示系統(tǒng)的錯誤頁。如果用戶在瀏覽器地址欄直接輸入訪問鏈接,這先判斷該用戶是否已經(jīng)成功登錄,如果
30、成功登錄,則跳轉(zhuǎn)到相應(yīng)鏈接,否則跳轉(zhuǎn)登錄頁面。</p><p><b> 2.2 系統(tǒng)流程</b></p><p> 因為不同權(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> 詳細流程:</b></p><p> 1 超級管理員登錄成功后,可以進行個人信息和密碼的維護;</p><p> 2 可以進行角色管理,創(chuàng)建不同的角色以操作相應(yīng)的功能模塊;</p><p> 3 然后進行資源管理,即上傳資源供用戶使用;</p><
32、;p> 4 進行資費管理,創(chuàng)建不同的資費供客戶選擇使用;</p><p> 5 進行業(yè)務(wù)帳號管理,開通、暫停和刪除</p><p> 6 定期進行報表管理;</p><p> 如果是其他用戶,則根據(jù)權(quán)限的不同,進行相應(yīng)的操作。</p><p><b> 2.3 功能需求</b></p>&l
33、t;p> 普通用戶能夠為未注冊用戶注冊,為登錄用戶提供信息管理,信息查詢,辦理資費等。以下為普通用戶用例圖(圖2-3-1):</p><p> 圖2-3-1 普通用戶用例分析圖</p><p> 為登錄的管理員提供信息查詢和資源管理等功能。以下圖為管理員用例圖(圖2-3-2):</p><p> 圖2-3-2 管理員用例分析圖</p>&
34、lt;p> 為登錄的超級管理員提供資費管理,管理員管理,賬單管理,收入查詢和報表瀏覽等。以下為超級管理員用例圖(圖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> 超級管理員------資費管理</p><p> 圖2-3-3-3 資費管理用例分析圖</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ù)功能模塊的劃分,通過分析,大致提取出一下用例,和各個用例所對應(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查看個人信息</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 資費瀏覽</p><p> 表2-2-15資費排序</p>
39、<p> 表2-2-16啟用資費</p><p> 表2-2-17刪除資費</p><p> 表2-2-18資費詳細</p><p> 表2-2-19添加資費</p><p> 表2-2-20修改資費</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ù)帳號詳細</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賬單明細瀏覽</p><p> 表2-2-32業(yè)務(wù)詳單瀏覽</p><p><b> 3 系統(tǒng)設(shè)計</b></p><p> 3
42、.1 系統(tǒng)架構(gòu)架構(gòu)與設(shè)計概述</p><p> 系統(tǒng)設(shè)計是根據(jù)需求制定出來的,首先對系統(tǒng)的總體框架進行了設(shè)計,采用了MVC設(shè)計模式使得系統(tǒng)能夠滿足各方面的需求,然后再對各個功能進行詳細設(shè)計,系統(tǒng)還重點對前端界面及交互進行了深入的研究和設(shè)計使得系統(tǒng)的界面更加的美觀、交互更加的易用</p><p> 3.1.1 系統(tǒng)總體架構(gòu)</p><p> MVC設(shè)計模式是目前
43、非常常見的設(shè)計模式。該模式將應(yīng)用分為三層:視圖(View)層、模型(Model)層、控制器(Controller)層。它們每一層之間是相互獨立的,這樣就使得MVC模式具有以下優(yōu)點:</p><p> 高內(nèi)聚。系統(tǒng)內(nèi)部各個功能高度聚合,使得各個功能更加緊湊,邏輯性強,不松散。</p><p> 低耦合。系統(tǒng)內(nèi)部各個功能之間以組件的形式進行解耦合,使得各個功能模塊之間相互獨立。</p
44、><p> 易維護。面向?qū)ο蟮脑O(shè)計思想,各個功能模塊相互獨立,使得代碼維護更加方面,有效的降低了成本。</p><p> 可移植。整個系統(tǒng)是以Web的方式展示,使得能夠在大多數(shù)平臺中使用。</p><p> 首先是視圖層。視圖層主要負(fù)責(zé)接收用戶數(shù)據(jù)和向用戶輸入數(shù)據(jù)結(jié)果。本系統(tǒng)該層主要使用JSP實現(xiàn)。</p><p> 其次是模型層。模型層
45、主要是封裝了數(shù)據(jù)對象以及對數(shù)據(jù)對象的操作邏輯。本系統(tǒng)該層使用的hibernate把數(shù)據(jù)對象的封裝到了DB類,這樣大大的提高了編程的便利性,也使得自己可以編寫model類對DB類進行拓展。</p><p> 最后是控制器層??刂破鲗邮沁B接視圖層和模型層的橋梁,控制器層接收視圖層傳來的數(shù)據(jù)經(jīng)過處理傳給模型層存入數(shù)據(jù)庫。本系統(tǒng)該層主要使用Struts2實現(xiàn)。</p><p> 本系統(tǒng)中模型層
46、和控制器層中實際還包括了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> 在項目開發(fā)過程中,項目架構(gòu)的設(shè)計好壞決定著系統(tǒng)的質(zhì)量。在實際需求功能完成的基礎(chǔ)上,系
47、統(tǒng)還需要考慮到系統(tǒng)的拓展性、可維護性和代碼的可重用性?;谶@些原則以及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ù)覽資源計費類圖如圖3-1-2-2所示:</p><p&
49、gt; 圖3-1-2-2 用戶預(yù)覽資源計費類圖</p><p> 3.1.3 基本流程時序圖</p><p> 用戶點擊頁面登錄時,頁面會將請求發(fā)送到toLgin.action 當(dāng)跳轉(zhuǎn)到該頁面時,頁面調(diào)用Ajax技術(shù)想后臺發(fā)送請求獲取驗證碼圖片并將起顯示到登錄頁面</p><p> 圖3-1-3-1用戶登打開登錄頁面時序圖:,</p><
50、p> 圖3-1-3-1 用戶打開登錄頁面時序圖</p><p> 當(dāng)用戶輸入相關(guān)信息后,點擊登錄時,瀏覽器發(fā)出login.action請求,并將form表達發(fā)送到login.action,通過Spring 的掃描機制將IUsersDAO注入,如果驗證碼正確,系統(tǒng)調(diào)用dao的getUser(String name)方法,如果成功,將返回的Users user賦值個user,并驗證用戶的密碼是否正確,如果正
51、確,將user保存到session中,并跳轉(zhuǎn)到主頁。用戶登錄時序圖如3-1-3-2所示:</p><p> 圖3-1-3-2用戶登錄時序圖</p><p> 用戶點擊業(yè)務(wù)帳號時,會將頁面信息封裝成form表達的形式發(fā)送給請求findListService.action, findListService.action, 通過Spring 的掃描機制將所需要的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的查詢時序圖:</p><p> 圖3-1-3-2 service的查詢時序圖</p><p> 3.1.4 核心類分析與實現(xiàn)</p><p> 由于系統(tǒng)需要根據(jù)用戶進行部分相關(guān)查詢,所以采用了session技術(shù)對用戶登錄進行保存。登錄成功后,將登錄信息記錄到Session。ActionContext.g
54、etContext().getSession(),它返回的Session不是原始的HttpSession類型,而是一個Map<String,Object>類型,目的是簡化我們的開發(fā)。ServletActionContext.getRequest().getSession(),它返回的是HttpSession。讓Action實現(xiàn)接口SessionAware,該接口需要實現(xiàn)一個void setSession(Map<Str
55、ing,Object> map),該方法的目的是將session傳入給Action。即,當(dāng)Action被實例化以后,Struts2會自動判斷其是否實現(xiàn)了SessionAware接口,如果是則自動調(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時 ,只需要繼承與此類。</p><p> 由于本系統(tǒng)是采用SSH框架設(shè)計的,采用Spring+Hibernate方式實現(xiàn)DAO,根據(jù)表編寫實體類和hbm.xml文件,編寫DAO實現(xiàn)類,繼承HibernateDaoSupport利用HibernateTemplate完成操作;將DAO交給Spring容器管理定義dataSource,sessionFactory,將sessionF
59、actory給DAO注入。采用Spring+Struts2方式實現(xiàn)Action將Action交給Spring容器管理,將容器中DAO給Action對象注入引入struts2-spring-plugin.jar (將struts.xml配置<action>的class屬性改為Spring容器中Action對象的id值)在web.xml中需要定義Listener,負(fù)責(zé)實例化Spring容器對象,啟動服務(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)限進行了劃分,通過角色不同跟不同角色給定權(quán)限用戶每次發(fā)出請求,都通過攔截器檢測當(dāng)前請求URL是否在該用戶分配的權(quán)限URL列表中。如果不存在跳轉(zhuǎn)到無權(quán)限提示頁面;如果存在就允許繼續(xù)執(zhí)行操作。(檢測權(quán)限)在用戶登錄時
83、,將用戶允許的權(quán)限URL列表(XML配置文件中)以List存入session中,然后在攔截器檢測時取出。</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> 這只是一個樣本格式,管理用戶可配置。</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)限分配實體如下代碼所示:</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è)計</b></p&g
106、t;<p> 系統(tǒng)在服務(wù)端用的是oracle數(shù)據(jù)庫</p><p> 3.2.1 數(shù)據(jù)庫概念設(shè)計</p><p> 在系統(tǒng)的數(shù)據(jù)庫設(shè)計中,先要對系統(tǒng)需求分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲過程進行分析,分析各數(shù)據(jù)存儲之間的關(guān)系,然后得出系統(tǒng)的關(guān)系模式。該系統(tǒng)采用實體-聯(lián)系圖(簡稱E-R圖)來描述系統(tǒng)的概念模型。E-R圖由實體、屬性、聯(lián)系三部分組成,其符號如圖3-4所示:<
107、;/p><p> 圖3-4 E-R圖符號說明</p><p> 3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p> 數(shù)據(jù)庫的邏輯設(shè)計是將各局部的E-R圖進行分解、合并后重新組織起來形成數(shù)據(jù)庫全局邏輯結(jié)構(gòu),包括所確定的關(guān)鍵字和屬性、重新確定的記錄結(jié)構(gòu)、所建立的各個數(shù)據(jù)之間的相互關(guān)系。其任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的E-R圖轉(zhuǎn)換成與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符
108、合的邏輯結(jié)構(gòu)。</p><p> E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型所要解決的問題是如何將實體和實體間的聯(lián)系轉(zhuǎn)換成關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼,而數(shù)據(jù)庫中兩實體間1:n聯(lián)系轉(zhuǎn)換為一個與n端對應(yīng)的關(guān)系模式合并的關(guān)系模式的方法是將聯(lián)系的屬性與1端的碼加入n端作為屬性,主碼為n端實體的主碼。</p><p> 本系統(tǒng)在確定了各個表主鍵字段的基礎(chǔ)上,依據(jù)表與表相關(guān)字段之間的聯(lián)系建立了個表之
109、間的關(guān)系,CDM圖如3-5所示:</p><p><b> 圖3-5 CDM</b></p><p> 3.2.3數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計</p><p> 數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取一個最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計。信息的管理離
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)資費表cost:</p><p> 表3-2-4資費表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)實現(xiàn)</b></p><p> 4.1 界面及功能實現(xiàn)</p><p> 4.1.1 登錄界面</p>&l
115、t;p> 系統(tǒng)資源加載完成過后,首先進入登陸界面,已注冊用戶可以從這里登錄系統(tǒng),未注冊用戶可以點擊注冊用戶進入用戶注冊界面?;蛘咄顺鱿到y(tǒng)。</p><p> 圖3-3-1 登錄界面</p><p> 4.1.2 注冊界面</p><p> 用戶注冊,用戶填寫相應(yīng)信息點擊完成,頁面對帳號進行查重處理以及帳號密碼的格式驗證。</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ù)進行操作,當(dāng)用戶點擊角色管理時 如3-3-4圖所示,可對角色進行權(quán)限修改,和刪除角色。</p><p>
117、 4.1.3 角色管理界面</p><p> 可對角色進行修改刪除和增加功能。</p><p> 圖3-3-4 用戶管理界面</p><p> 4.1.4 資源管理界面</p><p> 當(dāng)用戶點擊資源管理進行操作是出現(xiàn)如圖3-3-5圖所示:</p><p> 圖3-3-5 資源管理界面</p>
118、<p> 用可以對資源進行上傳和刪除,點擊資源名稱是對資源進行訪問,并開始產(chǎn)生費用,當(dāng)用戶關(guān)閉預(yù)覽窗口是停止計費。</p><p> 4.1.5 資費管理界面</p><p> 當(dāng)用點擊資費管理時,可查看相關(guān)資費信息,管理資費信息。如圖3-3-5所示:</p><p> 圖3-3-6 資費管理界面</p><p> 4.
119、1.6 業(yè)務(wù)帳號管理界面</p><p> 當(dāng)用戶點擊業(yè)務(wù)帳號時,可對業(yè)務(wù)帳號進行管理,如圖3-3-7所示:</p><p> 圖3-3-7 業(yè)務(wù)帳號管理界面</p><p> 4.1.7 賬單明細管理界面</p><p> 當(dāng)用戶完成一次資源訪問后,可對產(chǎn)生的費用進行查詢,如圖3-3-8所示</p><p>
120、 圖3-3-8 賬單清單界面</p><p> 4.1.8 個人信息界面</p><p> 當(dāng)用戶點擊個人信息是,可對個人信息進行修改,如托3-3-9所示:</p><p> 圖3-3-9 個人信息管理界面</p><p> 4.2 系統(tǒng)運行環(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ā)中,難免會因為一些疏忽造成系統(tǒng)功能的一些缺陷和問題,而這些缺陷和問題往往在開發(fā)的過程中并沒有被發(fā)現(xiàn),如果這些缺陷和問題如
122、果不檢查出來改正,就好比是軟件中的一顆定時炸彈,如果在上線實際使用中觸發(fā)了“炸彈”,往往造成無法彌補的問題,小點可能只是造成功能使用異常,重點就有可能造成經(jīng)濟的損失。所以,在軟件上線實際使用之前,都必須要經(jīng)過嚴(yán)格的測試,盡量發(fā)現(xiàn)和解決系統(tǒng)的缺陷和問題,使用戶在使用本軟件時候的風(fēng)險降到最低,所以軟件測試非常有必要</p><p><b> 測試用例:</b></p><p
123、> 表5-1 為資費瀏覽測試用例表:</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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)
- 基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計(論文)開題報告.doc
- 基于struts框架的web在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(改).doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(改).doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(改).doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(2改) .doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(終稿).doc
- 基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計文獻綜述.doc
- 基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計(論文)任務(wù)書.doc
- 基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計(論文)文獻翻譯封面.doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(2改) .doc
- 【zs精品】【畢業(yè)論文】11003080130-顏羽杰-基于web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)(全套)
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(終稿).doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(終稿).doc
- 《基于Web的在線用戶資費管理系統(tǒng)的設(shè)計與實現(xiàn)》(2改) .doc
- 畢業(yè)論文 基于web在線考試系統(tǒng)的設(shè)計與實現(xiàn)
- 基于web的畢業(yè)論文管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文--基于web的商場管理系統(tǒng)的設(shè)計與實現(xiàn)
- 基于web的畢業(yè)論文管理系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計】
評論
0/150
提交評論