javaa小區(qū)ADSL上網(wǎng)記費系統(tǒng)論文_第1頁
javaa小區(qū)ADSL上網(wǎng)記費系統(tǒng)論文_第2頁
javaa小區(qū)ADSL上網(wǎng)記費系統(tǒng)論文_第3頁
javaa小區(qū)ADSL上網(wǎng)記費系統(tǒng)論文_第4頁
javaa小區(qū)ADSL上網(wǎng)記費系統(tǒng)論文_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 摘 要 本小區(qū)ADSL上網(wǎng)記費系統(tǒng)是一個應(yīng)用于小區(qū)ADSL上網(wǎng)管理的軟件,實現(xiàn)了向ADSL用戶提供各種各樣的滿足個性化需求的應(yīng)用服務(wù)的功能 。本設(shè)計完成了系統(tǒng)中的用戶自查詢模塊,實現(xiàn)了用戶對個人需求查詢的功能。 該系統(tǒng)使用Java語言,采用Oracle(10g)、PL-Sql、Hibernate,Spring,Struts,Jsp,Javascript,Html等技術(shù),基于 Tomcat + Eclipse + Sun OS 5.8開發(fā)平臺開發(fā)設(shè)計的,整個系統(tǒng)基于MVC模式(M-模型層,V-視圖層,C-控制器)完成了程序界面的設(shè)計及自查詢功能模塊的具體實現(xiàn).使用Oracle(10g)完成了數(shù)

2、據(jù)庫具體設(shè)計,進行從而完成了整個系統(tǒng)的開發(fā)。 用戶通過本模塊可以在線查詢自身的信息(個人信息、上網(wǎng)記錄、記費帳單、使用品牌)。它具有良好的可操作性,可靠性高、健壯性好,可擴充性和可維護性的特點。完全可以滿足用戶自助服務(wù)的需求。關(guān)鍵詞:Java Jsp Hibernate Struts Oracle(10g)Abstract This NetCT OSS is a soft applied to the management of the Telecommunication enterprise. It provides the enterprise administrator kinds of

3、 services by establishing a whole system platform ,it can provider the different users with different application services, meets the requirements of different users. The system uses the Java language eclipse environment for development,using the technology of JSP,Oracle,Html, Servlet, JDBC,EJB, bas

4、ed on the platform ofWeblogic + Eclipse + JBuider + Sun OS 5.8 .Complying with the MVC Model it accomplishes the design of the framework of the program and the select function ,Using Oracle to accomplish the detail design of the Database , by the Jdbc and EJB to link Database . By the combination of

5、 all the techniques,makes the system credible, expandable, strong, and friendly .The System support the function of selection information after get the power by the right user name and password . It accomplishes select the all the information of users. Therefore,the users can get their consumption i

6、nformation efficiently and easily. The good features of the system is its security, credibility and strong . It can accomplish the purpose to meet the personality requirement of the user。Key Words:Java Jsp Hibernate Struts Oracle(10g) 目 錄 TOC f o 1-9 t 標題 3;3;標題 2;2;標題 1;1;標題 1;1;標題 1;1;標題 1;1;標題 1;

7、1;標題 1;1;標題 1;1;標題 1;1;標題 1;1;標題 2;2;標題 2;2;標題 2;2;標題 2;2;標題 2;2;標題 2;2;標題 2;2;標題 2;2;標題 3;3;標題 3;3;標題 3;3;標題 3;3;標題 3;3;標題 3;3;標題 3;3;標題 3;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標題 3 + 宋體 五號 非加粗;3;樣式 標

8、題 3 + 宋體 五號 非加粗;3 摘 要IAbstractII1.1 Java技術(shù)簡介V1.1.1 Java語言的特點V1.1.2 Java開發(fā)工具VI1.2 Struts技術(shù)簡介VII1.2.1 什么是Struts?VII1.2.2 Struts的功能VIII1.3 Hibernate技術(shù)簡介IX1.3.1 Hibernate概述 IX1.3.2 Hibernate的特點IX第2章 系統(tǒng)分析和總體規(guī)劃102.1系統(tǒng)的必要性和可行性 102.2 需求分析102.3 總體設(shè)計112.3.1系統(tǒng)功能設(shè)計112.3.2 運行過程設(shè)計122.3.3系統(tǒng)流程圖13 132.3.4 數(shù)據(jù)庫設(shè)計14第3章

9、 系統(tǒng)具體設(shè)計153.1 數(shù)據(jù)庫表設(shè)計153.2 系統(tǒng)界面設(shè)計21第4章 運行與測試354.1 軟件測試的目的和原則354.2 軟件的運行與安裝364.2.1 J2EE應(yīng)用程序的構(gòu)建與部署 364.2.2 具體運行過程以及的期維護36結(jié) 論38參考文獻39謝 辭40前 言近年來,隨著計算機走進千家萬戶,標志著現(xiàn)代社會已經(jīng)進入了信息時代,單獨的一臺孤立的計算機已不能滿足人民日益增長的需求,于是,互聯(lián)的進入了人民的生活、工作,使得人與人之間的信息交流突破了地域,國界的限制。因此,在數(shù)字化通訊的時代里,互聯(lián)網(wǎng)運營也受到了極大的挑戰(zhàn)。在小區(qū)物業(yè)管理方面,面臨著成本的增高的狀況。從市場的角度看,通信領(lǐng)域

10、競爭在不斷加劇,傳統(tǒng)的單純出售基礎(chǔ)的通話服務(wù)的利潤正在逐步減少,未來市場的競爭將不只是基礎(chǔ)的通話服務(wù)的競爭,更是服務(wù)方式和服務(wù)種類的競爭。 為了更好的為用戶服務(wù),小區(qū)物業(yè)都會提供戶管理系統(tǒng),來對客戶資料進行管自理,使管理突破時空限制,提高管理效率與水平,使用戶在時候任何地點都可以通過網(wǎng)絡(luò)進行與電信運營系統(tǒng)的信息交流,滿足用戶需求,實現(xiàn)電信運營管理系統(tǒng)朝碰上網(wǎng)絡(luò)化,信息化,現(xiàn)代化方向發(fā)展。本課題就試圖使用java技術(shù)來實現(xiàn)一個最基本的小區(qū)ADSL上網(wǎng)記費系統(tǒng)。本系統(tǒng)通過設(shè)計和建設(shè)網(wǎng)絡(luò)拓撲架構(gòu)、網(wǎng)絡(luò)安全系統(tǒng)、數(shù)據(jù)庫基礎(chǔ)結(jié)構(gòu)、信息共享與管理、信息的發(fā)布與管理,從而方便電信運營商和客戶之間的信息交流和

11、信息共享。第1章 開發(fā)語言和開發(fā)工具簡介 Java技術(shù)簡介Java是近代出現(xiàn)的新一代面向?qū)ο蟪绦蛟O(shè)計語言,由Sun公司推出,起初用于家電產(chǎn)品上的軟件編程。后來,經(jīng)過Sun公司的不斷推出新的版本,目前版本已達到1.6。Java是一種簡單的、面向?qū)ο蟮摹⒎植际降?、解釋的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的語言。 Java語言的特點 1.簡單Java與C的區(qū)別是C是面向過程的語言,而Java是面向?qū)ο蟮恼Z言,Java與C+語言非常相近,但比C+簡單,在Java中取消息了對指針的操作,拋棄了C+中的一些不是絕對必要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運算符重載、

12、多重繼承以及自動強迫同型。Java實現(xiàn)了自動的垃圾收集,簡化了內(nèi)存管理的工作。2. 面向?qū)ο?Java是面向?qū)ο蟮恼Z言,將世間萬物都看成對象,將對象所具有的共性抽取出來,就是對象的類。Java提供了簡單的類機制和動態(tài)的構(gòu)架模型。對象中封裝了它的狀態(tài)變量和方法,很好地實現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,通過繼承和重載機制,子類可以使用或重新定義父類或超類所提供的方法,從而既實現(xiàn)了代碼的復(fù)用。3. 多線程 多線程的實現(xiàn)方式可以通過軟件或硬件實現(xiàn),Java是語言級別的多線程,通過JVM實現(xiàn),多線程使應(yīng)用程序可以同時進行不同的操作,處理不同的事件。在多線程機制中,不同的線程處理不同的任

13、務(wù),他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。4. 分布式Java是面向網(wǎng)絡(luò)的語言。通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便的訪問其他對象。5. 跨平臺Java是通過JVM實現(xiàn)其跨平臺的,JVM通過不同的接口與操作系統(tǒng)交互,上層通過相同的接口與Java語言交互,Java是一種網(wǎng)絡(luò)語言,為使Java程序能在網(wǎng)絡(luò)的任何地方運行,Java解釋器生成與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)的文件格式。Java語言環(huán)境還提供了用于訪問底層操作系統(tǒng)功能的類組成的包,當(dāng)程序使用這些包時,可以確保它能運行在各種支持Java的平臺上。6. 安全性用

14、于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵,Java不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。 Java開發(fā)工具JDKJDK(Java Development Kit)是一個寫Java的applet和應(yīng)用程序的程序開發(fā)環(huán)境。它由一個處于操作系統(tǒng)層之上的運行環(huán)境還有開發(fā)者編譯,調(diào)試和運行用Java語言寫的applet和應(yīng)用程序所需的工具組成。1. Java編譯器(Javac命令)Java編譯器將Java源代碼文件編譯成可執(zhí)行的Java字節(jié)碼。Java源代碼文件的擴展名為 .java,J

15、ava編譯器把這種擴展名的文件編譯成擴展名為.class的文件。源文件中的每個類在編譯后都將產(chǎn)生一個class文件,這意味一個Java源代碼文件可能編譯生成多個class文件。2. Java解釋器(java命令)Java解釋器對編譯生成的字節(jié)碼格式的可執(zhí)行程序的運行提供支持,它是運行非圖形Java程序的命令行工具。ECLIPSE根據(jù)需求分析及功能分析,選用Eclipse集成開發(fā)工具及Oracle數(shù)據(jù)庫來開發(fā)此系統(tǒng)。1.Eclipse的起源和發(fā)展Eclipse的前身是IBM的Visual Age。由于意識到Visual Age存在難以擴展、底層技術(shù)較為脆弱、很難與WebSphere Studio

16、軟件集成等諸多問題,進一步發(fā)展甚為困難,同時也面臨包括Symantec公司的Visual Caf、Borland公司的JBuilder等開發(fā)工具的競爭壓力,IBM決定創(chuàng)建一個更開放的,并且可以為IBM其他開發(fā)工具提供支持的一體化開發(fā)平臺。1998年11月,IBM專門成立了一個項目開發(fā)小組,開始開發(fā)該平臺,2000年新一代開發(fā)平臺誕生,這就是大家所熟悉的Eclipse。2000年11月,IBM做出了一個重大決定,將Eclipse采用開放源碼的授權(quán)和運作模式發(fā)布,以增強業(yè)界對Eclipse的關(guān)注度并加快其推廣應(yīng)用速度。隨后,IBM于2001年12月向外界宣布,捐贈價值4千萬美元的Eclipse源碼

17、給開源社區(qū);成立由成員公司組成的Eclipse協(xié)會(Eclipse Consortium),以便支持并促進Eclipse開源項目。事實證明,IBM的決策非常英明。Eclipse受到廣泛關(guān)注,蜂擁而至的用戶使得其下載服務(wù)器一度阻塞,給業(yè)界帶來了久違的震撼!IBM趁熱打鐵,在EclipseCon 2004上宣布成立一個獨立的、非盈利性的基金會,由該基金會負責(zé)管理和指導(dǎo)Eclipse開發(fā),目前其成員多達近百家知名公司,其中包括Borland、Rational Software、Red Hat、Sybase、Google和Oracle等業(yè)界巨頭。Eclipse開發(fā)狀態(tài)非?;钴S,目前成熟穩(wěn)定的版本是3.

18、2,正在開發(fā)的版本是3.3,已經(jīng)成為業(yè)界主要的非微軟軟件開發(fā)平臺。2.Eclipse的優(yōu)勢目前全球有上百萬人在使用Eclipse進行開發(fā)。為什么Eclipse擁有如此眾多的用戶?這與Eclipse集眾多特性于一身有很大關(guān)系。Eclipse是開放源代碼的軟件。這意味著Eclipse不僅可以免費使用,還可以通過研究源代碼學(xué)習(xí)世界上頂尖開發(fā)人員的編程技術(shù),并可以共享遍布全球的開發(fā)人員所貢獻的公共開放源代碼庫。Eclipse是真正可擴展并可配置的。Eclipse采用插件機制,猶如一個花瓶,你可以隨時向花瓶里面插花,也可以很容易將不再需要的花取出。Eclipse支持眾多的開發(fā)語言而不僅僅是Java。Ec

19、lipse只是給開發(fā)人員提供了一個能夠擴展系統(tǒng)功能的最小核心,基于擴展點的插件體系結(jié)構(gòu)使得Eclipse支持多種語言成為可能。只要安裝相應(yīng)語言的插件,Eclipse就可以支持該種語言的開發(fā)。目前,Eclipse已經(jīng)可以支持C、COBOL、PHP、Perl、Python等多種語言。Eclipse提供了對多重平臺特性的支持。開發(fā)者可以使用他們感覺最舒適、最熟悉的平臺,例如Windows、Linux等。Eclipse對每個平臺都有其單獨的圖形工具包,這使得應(yīng)用程序具有接近本地操作系統(tǒng)的外觀和更好的性能。 Struts技術(shù)簡介1.2.1 什么是Struts?Struts是Apache軟件基金支持下的開

20、源的MVC框架,在多年的WEB應(yīng)用開發(fā)實踐中,Struts作為一個經(jīng)典的Web應(yīng)用開發(fā)框架始終一枝獨秀.。用Struts實現(xiàn)MVC架構(gòu)。MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。根據(jù)界面設(shè)計可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器三部分。6模型(Model)是軟件所處理問題邏輯在獨立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問題的核心數(shù)據(jù)、邏輯和功能的計算關(guān)系,獨立于具體的界面表達和I/O操作。視圖(View)把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及

21、特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖。控制器(Controller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進而實現(xiàn)對模型的計算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個視圖對應(yīng)一個控制器。模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論 何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實際上是一種模型的變化

22、傳播機制。Struts框架最早是作為Apache Jakarta項目的組成部分問世運做,它繼承了MVC的各項特性,并根據(jù)J2EE的特點,做了相應(yīng)的變化與擴展。Struts框架很好的結(jié)合了Jsp,Java Servlet,Java Bean,Taglib等技術(shù)。在Struts中,承擔(dān)MVC中控制器角色的是ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發(fā)送到Struts的HTTP請求的入口點。它截取和分發(fā)這些請求到相應(yīng)的動作類(這些動作類都是Action類的子 類)。另外控制組件也負責(zé)用相應(yīng)的請求參數(shù)填充Action Form(FromBea

23、n),并傳給動作類(ActionBean)。動作類訪問核心商業(yè)邏輯,即訪問Java Bean或調(diào)用EJB。最后動作類把控制權(quán)傳給后續(xù)的JSP文件,由JSP文件生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。在Struts框架中,視圖主要由JSP生成頁面完成,Struts提供豐富的JSP標簽庫,這有利于分開表現(xiàn)邏輯和程序邏輯。模型以一個或多個Java Bean的形式存在。在Struts中,主要存在三種Bean,分別是:Action,ActionForm,EJB或者Java Bean。Struts框架沒有具體定義模型層的實現(xiàn),在實際開發(fā)中,模型層通常是和業(yè)務(wù)邏輯緊密相連

24、的,并且要對底層數(shù)據(jù)進行操作。下面介紹一種開發(fā)策略,將Hibernate引入到Struts框架的模型層中,使用它來進行數(shù)據(jù)封裝和映射,提供持久化的支持。1.2.2 Struts的功能(1) 在顯示層,Struts使用Jsp頁面和用戶進行交互,Struts具有豐富的標簽提供給用戶使用。 (2) 在控制層,對于用戶的.do請求統(tǒng)一由RequestServlet處理,用戶只要繼承Action父類即可。 (3) 在模型層,使用Javabean封裝業(yè)務(wù)邏輯。 (4) 對于客戶端提交到服務(wù)器端的數(shù)據(jù),用戶可以使用ActionForm進行封裝。 (5) Struts對于國際化的處理相當(dāng)容易,使用自帶的標簽就

25、可以實現(xiàn)。 (6) Struts對于表單的驗證也很簡單,即可在客戶端實現(xiàn),也可在服務(wù)器端實現(xiàn)。 1.3 Hibernate技術(shù)簡介1.3.1 Hibernate概述 在今日的企業(yè)環(huán)境中,把面向?qū)ο蟮能浖完P(guān)系數(shù)據(jù)庫一起使用可能是相當(dāng)麻煩和浪費時間的。Hibernate是一個面向JAVA的對象/關(guān)系數(shù)據(jù)庫的映射工具,用來把對象模型表示的對象映射到基于SQL關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。Hibernate不僅僅管理JAVA類到數(shù)據(jù)庫表的映射(包括JAVA數(shù)據(jù)類型SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和數(shù)據(jù)獲取的方法,可以大幅度減少開發(fā)時人工使用SQL和JDBC處理數(shù)據(jù)的時間。Hibernate的目標是對于

26、開發(fā)者通常的數(shù)據(jù)持久化相關(guān)的編程任務(wù),解放其中的95%。對于以數(shù)據(jù)為中心的程序來說,它們往往只在數(shù)據(jù)庫中使用存儲過程來實現(xiàn)商業(yè)邏輯。Hibernate可能不是最好的解決方案。但對于那些基于JAVA中間層應(yīng)用中實現(xiàn)面向消息的業(yè)務(wù)模型和商業(yè)邏輯的應(yīng)用,Hibernate是最有用的。1.3.2 Hibernate的特點(1)程序開發(fā)者不需要自己編寫SQL語句,以面向?qū)ο蟮男问胶蛿?shù)據(jù)庫交互。(2)Hibernate對Jdbc進行了輕量級的封裝。但是,效率不如Jdbc。(3)通過臟檢查和延遲加載機制減少和數(shù)據(jù)庫的交互次數(shù),提高效率。(4)對JDBC事物和JTA的分布式事物和JNDI也做了封裝。(5)可使

27、用Criteria進行動態(tài)查詢。小區(qū)ADSL上網(wǎng)記費系統(tǒng) PAGE 37 系統(tǒng)分析和總體規(guī)劃系統(tǒng)的必要性和可行性 一、必要性: 隨著人們生活水平的不斷提高,信息技術(shù)的飛速發(fā)展,傳統(tǒng)的通訊業(yè)務(wù)服務(wù)已不能滿足人們的生活節(jié)奏。對于物業(yè)管理部門來說,由于服務(wù)種類的增多,必須急于降低成本。對于電信行業(yè),未來市場的競爭將不只是基礎(chǔ)的通話服務(wù)的競爭,更是服務(wù)方式和服務(wù)種類的競爭。由于IP技術(shù)在通信領(lǐng)域中統(tǒng)治地位的確立,未來通信市場的競爭,將圍繞著互聯(lián)網(wǎng)及其相關(guān)服務(wù)展開,并且由于信息時代個性化需求的特征。目前電信運營商面對日益激烈的全方位市場競爭,提高競爭力、增加客戶滿意度、減少客戶流失、提高效益成為電信運營

28、商必須要考慮的問題。因此,設(shè)計這個系統(tǒng), 通過網(wǎng)絡(luò)資源的整合,使電信運營商需要在提供基礎(chǔ)服務(wù)的同時,廣泛開拓增值服務(wù)市場,向用戶提供各種各樣的滿足個性化需求的應(yīng)用服務(wù),是有其必要性的。 二、可行性: (1)經(jīng)濟可行性:該系統(tǒng)需要兩臺服務(wù)器,一臺NAS網(wǎng)絡(luò)接入服務(wù)器,一臺AAA服務(wù)器,運行安裝TOMCAT服務(wù)器即可,但對于物業(yè)管理部門來說,其產(chǎn)生的效益是完全可行的。 (2)操作可行性:計算機在生活小區(qū)居民的家庭中已有一定的比例,而這些計算機已不在單單是一個孤立的計算機,而是網(wǎng)絡(luò)中的一個結(jié)點,而此系統(tǒng)可方便這些用戶查詢自身的上網(wǎng)記錄和自身信息等,所以是可行的。 (3)技術(shù)可行性:本系統(tǒng)采用Java

29、語言,基于Tomcat+ Eclipse + Sun OS 5.8開發(fā)平臺,采用JSP,Oracle,Hibernate技術(shù),使用Struts框架,開發(fā)者掌握這些技術(shù)就可以具備開發(fā)此系統(tǒng)的能力,這些技術(shù)都是公開的,且開發(fā)者容易掌握的。所以,技術(shù)方面也是可行的。 需求分析1. 數(shù)據(jù)需求: 此系統(tǒng)主要完成用戶自身信息的查詢功能,因此,需要的數(shù)據(jù)信息包括:用戶信息:包括用戶帳號和密碼等信息。帳單信息,包括用戶日帳單信息,月帳單信息,年帳單信息。品牌信息,包括包月,流量,小時等。2.功能需求: 功能需求分析的任務(wù)是弄清用戶對目標系統(tǒng)數(shù)據(jù)處理功能所提出的需求。本系統(tǒng)的功能需求有: (1)用戶通過自已的用

30、戶名和密碼進入系統(tǒng)。 (2)用戶可以查詢自已的上網(wǎng)記錄。 (3)用戶可以查詢?nèi)請蟊怼?(4)用戶可以查詢月報表。(5)用戶可以查詢年報表。(6)用戶可以查詢品牌類型信息。 總體設(shè)計系統(tǒng)功能設(shè)計1. 功能定義:(1)日報表:按小時從RadAcct流水帳表中整合到UserDay。 (2)月報表:按天合并日報表UserDay生成所有用戶計費數(shù)據(jù)月表UserMonth (3)年報表:按月合并月表UserMonth生成所有用戶計費數(shù)據(jù)年表UserYear;2. 系統(tǒng)功能:本模塊的主要功能是客戶端通過個人用戶帳號和密碼登錄系統(tǒng),實現(xiàn)對個人所有信息的查詢,是用戶利用網(wǎng)絡(luò)通過此系統(tǒng)對用戶個人信息查詢的主要途徑

31、。 其主要功能如下:(1)用戶登錄ADSL用戶通過合法帳號和密碼進入系統(tǒng),實現(xiàn)對用戶信息的查詢操作。通過設(shè)置用戶密碼保證用戶信息的安全性。(2)日清單查詢查詢用戶在某一時段的上網(wǎng)歷史記錄。(3)日帳單查詢用戶可以輸入指定的某天查詢某日的消費情況(4)月帳單查詢用戶可以輸入指定的月份查詢某月的消費情況(5)年帳單查詢用戶可以查詢輸入指定的年份查詢某年的總的消費情況(6) 品牌查詢 用戶可以查詢品牌類型信息3 .系統(tǒng)功能結(jié)構(gòu)圖:此系統(tǒng)基于Struts框架進行設(shè)計,利用JSP+JavaBean+Action進行編程。通過對所做模塊的功能需求分析,該模塊主要功能可分為六大部分,系統(tǒng)用例如圖2-1所示。

32、 圖2-1 系統(tǒng)用例圖 運行過程設(shè)計 本系統(tǒng)使用Struts框架搭建而成,基于MVC的模式,在客戶端使用jsp和用戶進行交互,對于用戶的請求由action進行處理,轉(zhuǎn)而調(diào)用相應(yīng)的模型層。在模型層調(diào)用業(yè)務(wù)邏輯層,對于處理后的結(jié)果再由action轉(zhuǎn)發(fā)到相應(yīng)的jsp,呈現(xiàn)給用戶??蛻舳说卿洠海?)jsp頁面接收用戶轉(zhuǎn)入的用戶名、密碼等信息。(2)通過http發(fā)送到服務(wù)器端。(3)服務(wù)器端接收用戶的請求,交給WEB容器,由容器調(diào)用相就的Action。(4)服務(wù)器端驗證通過后,將處理的結(jié)果返回給客戶端。.圖2-2 Struts模型圖系統(tǒng)流程圖 開始進入用戶登錄界面填寫身份驗證信息身份驗證是否通過進入用戶

33、主界面結(jié)束圖2-3 系統(tǒng)流程圖流程圖詳解:ADSL用戶打開瀏覽器,輸入網(wǎng)址,進入登陸界面,輸入用戶名和密碼,點擊登陸后,由瀏覽器發(fā)出一個登陸請求,容器獲得請求后,轉(zhuǎn)發(fā)到相應(yīng)的action中,在action中調(diào)用登陸的業(yè)務(wù)邏輯層中的方法,判斷用戶身份的合法性,如果用戶為合法用戶,在action中跳轉(zhuǎn)到用戶主界面,如果不成功而返回到登陸界面,并提示用戶錯誤信息。用戶進行重新登陸。 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計就是設(shè)計程序所需數(shù)據(jù)的類型、格式、長度和組織方式。因為數(shù)據(jù)庫應(yīng)用系統(tǒng)主要是處理大量的數(shù)據(jù),所以數(shù)據(jù)庫設(shè)計的優(yōu)劣,直接影響整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能和執(zhí)行速率。 根據(jù)本系統(tǒng)的功能需求分析,本系統(tǒng)的數(shù)據(jù)庫可

34、包括七個表,分別是用戶表(users),帳單明細表(radacct),日帳單信息表(userday), 月帳單信息表(usermonth), 年帳單信息表(useryear),品牌信息表(products),品牌類型表(productstype),用戶帳號表(radcheck)。第3章 系統(tǒng)具體設(shè)計3.1 數(shù)據(jù)庫表設(shè)計1. 年帳單信息表 該表包含用戶登錄名,登錄服務(wù)器名,退出時間,資費代號,登錄時間長度等信息。具體如表31。表 3-1 UserYear 表字段名類型字段寬度小數(shù)位數(shù)索引Login_name字符型20Login_ip字符型32logout_date日期型8lab_ip字符型32t

35、ime_duration數(shù)值型82建表語句:create table USERYEAR( ID NUMBER primary key, USERNAME VARCHAR2(30) not null,/用戶名 NASIPADDRESS VARCHAR2(15),/IP地址 ONDATE DATE,/登陸時間 TIME_DURATION NUMBER,/時長 FLUX NUMBER/流量);2. 月帳單信息表 該表包含用戶登錄名,登錄服務(wù)器名,退出時間,資費代號,登錄時間長度等信息。具體如表32表3-2 UserMonth 表 字段名類型字段寬度小數(shù)位數(shù)索引Login_name字符型20Login

36、_ip字符型32logout_date日期型8lab_ip字符型32time_duration數(shù)值型82建表語句:create table USERMONTH( ID NUMBER primary key, USERNAME VARCHAR2(30) not null, /用戶名 NASIPADDRESS VARCHAR2(15),/ip地址 ONDATE DATE,/時間 TIME_DURATION NUMBER,/時長 FLUX NUMBER/流量);3. 日帳單信息表 該表包含用戶登錄名,登錄服務(wù)器名,退出時間,資費代號,登錄時間長度等信息。具體如表33。表3-3 UserDay 表字段

37、名類型字段寬度小數(shù)位數(shù)索引Login_name字符型20Login_ip字符型32logout_date日期型8lab_ip字符型32time_duration數(shù)值型82建表語句:create table USERDAY( ID NUMBER primary key, USERNAME VARCHAR2(30) not null,/用戶名 NASIPADDRESS VARCHAR2(15),/IP地址 ONDATE DATE,/登陸時間 TIME_DURATION NUMBER,/時長 FLUX NUMBER/流量 );4. 資費信息表 該表包含資費號,資費名,月租費base_fee,資費單價

38、,折扣等信息;其中資費號作為主鍵,資費名唯一。具體如表34。表3-4 Product 表字段名類型字段寬度小數(shù)位數(shù)索引price_id數(shù)值型10主鍵pricing_name字符型32唯一base_fee數(shù)值型82rate_fee數(shù)值型42pricing_Desc字符型642建表語句:create table PRODUCTS( ID NUMBER primary key, NAME VARCHAR2(32) not null unique,/品牌名 BASE_FEE NUMBER(8,2) default 0,/基本費率 RATE_FEE NUMBER(8,2) default 0,/費率 D

39、AILY_LIMIT NUMBER,/每日限制時長 MONTH_LIMIT NUMBER,/月限制時長 UP_LIMIT NUMBER,/上行限制 DOWN_LIMIT NUMBER,/下行速率 SFEE NUMBER(8,2), REMARK VARCHAR2(2000),/備注 PRODUCTSTYPEID NUMBER references PRODUCTSTYPE(ID);5. 用戶表 該表包含用戶號,用戶名,用戶登錄名,用戶登錄密碼等用戶的詳細信息。用戶號作為主鍵,不可重復(fù),不為空;用戶登錄名是用戶登錄的唯一標識,唯一;登錄密碼和用戶登錄名一起,作為安全性驗證。只有用戶登錄名和密碼都

40、正確才可以登錄系統(tǒng)。具體如表35。表3-5 User 表字段名類型字段寬度小數(shù)位數(shù)索引user_id數(shù)值型20主鍵user_name字符型32login_name字符型10唯一login_password字符型32user_status數(shù)值型2user_phone字符型32user_email字符型32enroll_date日期型close_date日期型payment_style數(shù)值型2career數(shù)值型2nationality數(shù)值型2sex數(shù)值型2company字符型32mail_address字符型32phone_code字符型16建表語句:create table USERS( ID

41、NUMBER primary key, LOGIN_NAME VARCHAR2(20) not null unique,/登陸名 REAL_NAME VARCHAR2(20) ,/真實姓名 LOGIN_PASSWORD VARCHAR2(20) not null,/登陸密碼 EMAIL VARCHAR2(50) not null unique,/EMAIL地址 SEX NUMBER(1),/性別 ADDRESS VARCHAR2(200) not null,/住址 REGISTER_DATE DATE,/注冊日期 TELEPHONE VARCHAR2(20),/電話 POSTCODE VARC

42、HAR2(10),/郵編 REMARK VARCHAR2(1000),/備注 ROLEID NUMBER(10) references ROLES(ID);6. 品牌類型表 該表包含品牌名,注釋。具體如表36。表3-6 ProductsType 表字段名類型字段寬度小數(shù)位數(shù)索引id數(shù)值型10主鍵name字符型10remark字符型32建表語句:create table PRODUCTSTYPE( ID NUMBER primary key, NAME VARCHAR2(32) not null unique,/品牌類型名 REMARK VARCHAR2(2000)/備注);7. 帳單明細表 該

43、表包含用戶登錄號,登錄時間,離開時間,服務(wù)器名,和登錄時間長度等信息。具體如表37。表3-7 RadAcct 表字段名類型字段寬度小數(shù)位數(shù)索引login_ip字符型32login_date日期型logout_date日期型lab_ip字符型42time_duration數(shù)值型82建表語句: create table RADACCT( RADACCTID INTEGER primary key, ACCTSESSIONID VARCHAR2(32) not null, ACCTUNIQUEID VARCHAR2(32), USERNAME VARCHAR2(32) not null, REALM

44、 VARCHAR2(30), NASIPADDRESS VARCHAR2(15) not null,/IP地址 NASPORTID NUMBER(12),/NAS端口地址 NASPORTTYPE VARCHAR2(32),/NAS端口類型 ACCTSTARTTIME DATE,/上線時間 ACCTSTOPTIME DATE,/下線時間 ACCTSESSIONTIME NUMBER(12), ACCTAUTHENTIC VARCHAR2(32), CONNECTINFO_START VARCHAR2(32), CONNECTINFO_STOP VARCHAR2(32), ACCTINPUTOCT

45、ETS NUMBER(12), ACCTOUTPUTOCTETS NUMBER(12), CALLEDSTATIONID VARCHAR2(50), CALLINGSTATIONID VARCHAR2(50), ACCTTERMINATECAUSE VARCHAR2(32), SERVICETYPE VARCHAR2(32), FRAMEDPROTOCOL VARCHAR2(32), FRAMEDIPADDRESS VARCHAR2(15), ACCTSTARTDELAY NUMBER(12), ACCTSTOPDELAY NUMBER(12);7. 用戶帳號表在USERS表中保存的是用戶的信

46、息,在此表中保存的是帳號信息,一個用戶可以有多個帳號。具體如表38。表3-7 RadCheck 表字段名類型字段寬度小數(shù)位數(shù)索引id字符型32username字符型30attribute字符型30op字符型42userid字符型productid字符型value字符型40建表語句:create table RADCHECK( ID INTEGER primary key, USERNAME VARCHAR2(30) not null, ATTRIBUTE VARCHAR2(30),/屬性 OP VARCHAR2(2) not null,/操作符 VALUE VARCHAR2(40),/值 US

47、ERSID NUMBER references USERS(ID),/用戶ID PRODUCTSID NUMBER references PRODUCTS(ID)/產(chǎn)品ID);3.2 系統(tǒng)界面設(shè)計1. 登錄界面實現(xiàn)過程:本頁面主要實現(xiàn)接收用戶帳號和用戶密碼,并發(fā)送到服務(wù)器進行身份驗證,返回驗證結(jié)果后判斷是否進入主頁面。界面如圖3-1所示: 圖31 登錄界面public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRe

48、quest request, HttpServletResponse response)throws Exception LoginForm loginForm = (LoginForm) form;/獲得登陸用戶名String loginName = loginForm.getLoginName();/獲得登陸密碼String loginPassword = loginForm.getLoginPassword();/獲得驗證碼String verifyCode_client = loginForm.getVerifyCode();HttpSession session = request.

49、getSession();try String verifyCode_server = (String) session.getAttribute(verifyCode);/判斷驗證碼是否正確if (verifyCode_client.equals(verifyCode_server) IService iService = BeanFactory.getService();/判斷用戶是否是管理員if (loginForm.isManager() /管理員登陸 Adminadmin=iService.adminLogin(loginName, loginPassword);List roles

50、 = iService.getAllRoles();List products = iService.getAllProducts();session.setAttribute(products, products);session.setAttribute(roles, roles);session.setAttribute(admin, admin);return mapping.findForward(admin); else /普通用戶登陸User user = iService.userLogin(loginName, loginPassword);List roles = iSer

51、vice.getAllRoles();session.setAttribute(roles, roles);session.setAttribute(user, user);return mapping.findForward(customer); else session.setAttribute(message, 驗證碼錯誤!);return mapping.findForward(failed); catch (Exception e) e.printStackTrace();session.setAttribute(message, e.getMessage();return mapp

52、ing.findForward(failed);2. 用戶界面用戶信息驗證通過后,直接進入用戶操作界面,該界面包含用戶所有可操作信息。包括私人信息查詢和帳單查詢,資費查詢,本系統(tǒng)主要實現(xiàn)用戶對帳單的查詢。用戶單擊鏈接“帳單查詢”,即可進入帳單查詢界面。界面如圖32所示:圖32 用戶界面3.帳單查詢界面 用戶通過單擊“帳單查詢”進入此界面。該界面包括用戶對個人帳單查詢的所有操作,用戶可以日清單查詢,日報表,月報表,年帳單等的查詢。 單擊日清單查詢的提交按鈕,進入日清單查詢界面,可以查詢用戶每日的登錄次數(shù)和個人消費。 單擊日報表查詢的提交按鈕,進入月報表查詢界面,查詢用戶每日24小時的登錄次數(shù),并

53、統(tǒng)計出該日總計登錄時長,和用戶個人消費。 單擊月報表查詢的提交按鈕,進入月報表查詢界面,查詢用戶每個月31天中各天的登錄時長,并且統(tǒng)計該用戶一個月總的消費。單擊年帳單查詢的提交按鈕,進入月報表查詢界面,查詢用戶一年12個月每月的登錄時長,并且統(tǒng)計一年內(nèi)用戶的總消費。界面如圖33所示:圖33 帳單查詢界面具體實現(xiàn)代碼如下: public class DoReckonAction extends Action public ActionForward execute(try /通過用戶名獲得用戶定購的所有服務(wù)userServices = service.findUserServices(user.

54、getUserId();Collection labLoginName = new Vector();/使用迭代器循環(huán)輸出到界面各個標簽里對應(yīng)的帳務(wù)帳號,業(yè)務(wù)帳號和登錄的服務(wù)器for(Iterator it = userServices.iterator();it.hasNext();) UserService userService = (UserService)it.next();labLoginName.add(new LabelValueBean(userService.getLabLoginName()+:+ userService.getLabIp(),userService.ge

55、tLabLoginName();request.setAttribute(labLoginName,labLoginName);/通過request 服務(wù)器讀取用戶提交的內(nèi)容 Collectionresult=service.getUserreckon(user.getUserId(), rockdexForm.getYear(),rockdexForm.getMonth();request.setAttribute(userreckon,result);double totalCost = 0.0;for(Iterator it=result.iterator();it.hasNext();

56、) totalCost += (UserReckon)it.next().getCost();/取得用戶的消費總計 request.setAttribute(totalcost,new Double(totalCost);Calendar c = Calendar.getInstance();/創(chuàng)建日歷類的實例,實現(xiàn)統(tǒng)計日期顯示 if(c.get(Calendar.YEAR)=rockdexForm.getYear()& (c.get(Calendar.MONTH)+1)=rockdexForm.getMonth() request.setAttribute(currDay,Integer.t

57、oString (c.get(Calendar.DAY_OF_MONTH);else c.set(rockdexForm.getYear(),rockdexForm.getMonth()-1,1); request.setAttribute(currDay,Integer.toString (c.getActualMaximum(Calendar.DAY_OF_MONTH);return mapping.findForward(success); catch (Exception e) e.printStackTrace();return mapping.findForward(failure

58、);4.年報表查詢界面用戶通過單擊“帳單查詢”界面的年報表查詢列的“提交”按鈕,即進入此界面。界面顯示出用戶一年內(nèi)各月的時長統(tǒng)計和該年費用總計等信息。界面如圖34所示:圖34 年報表界面主要實現(xiàn)過程代碼如下:public class ShowUserYearAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ShowUserMonthForm showU

59、serMonthForm = (ShowUserMonthForm) form;String year = showUserMonthForm.getYear();String name = showUserMonthForm.getBusinessName();List useryears = null;Radcheck radcheck = null;Double totalTime = 0D;/總時長Double totalFlux = 0D;/總流量Double totalFee = 0D;/總費用try IService iService = BeanFactory.getServi

60、ce();List list = iService.showUserYear(name, year);if (list.size() = 2) radcheck = (Radcheck) list.get(0);useryears = (List) list.get(1);Long productType = radcheck.getProduct().getProductType().getId();Iterator iter = useryears.iterator();while (iter.hasNext() Useryear useryear = (Useryear) iter.ne

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論