版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
31/39學(xué)號7密級_______________大學(xué)本科畢業(yè)論文基于J2EE框架的電子商務(wù)在線支付平臺的設(shè)計與實現(xiàn)院(系)名稱:國際軟件學(xué)院專業(yè)名稱:軟件工程學(xué)生姓名:學(xué)程指導(dǎo)教師:江聰世廖廣志二○○九年五月BACHELOR'SDEGREETHESISOFWUHANUNIVERSITYTheDesignandImplementationofE-businessOnlinePaymentSystemBasedonJ2EECollege:InternationalschoolofsoftwareSubject:SoftwareEngineeringName:XuechengZhangDirectedby:CongshiJiangGuangzhiLiaoMay2009重聲明本人呈交的學(xué)位論文,是在導(dǎo)師的指導(dǎo)下,獨立進行研究工作所取得的成果,所有數(shù)據(jù)、圖片資料真實可靠。盡我所知,除文中已經(jīng)注明引用的容外,本學(xué)位論文的研究成果不包含他人享有著作權(quán)的容。對本論文所涉與的研究工作做出貢獻的其他個人和集體,均已在文中以明確的方式標(biāo)明。本學(xué)位論文的知識產(chǎn)權(quán)歸屬于培養(yǎng)單位。本人簽名:日期:摘要伴隨著電子商務(wù)的快速發(fā)展,網(wǎng)上支付業(yè)務(wù)也逐步興起。作為電子商務(wù)活動的重要環(huán)節(jié),在線支付網(wǎng)上支付的參與,可以使電子商務(wù)由網(wǎng)上信息搜索和協(xié)議草簽的階段,轉(zhuǎn)入實質(zhì)性的交易階段,形成完整的電子商務(wù)。通過對電子商務(wù)支付系統(tǒng)的研究,明確電子商務(wù)支付流程以與支付系統(tǒng)功能特點,提供系統(tǒng)的理論研究,設(shè)計并實現(xiàn)一個網(wǎng)上支付系統(tǒng)。關(guān)鍵字:電子商務(wù);在線支付;設(shè)計;實現(xiàn)ABSTRACTConcomitantwithrapiddevelopmentofe-commerce,onlinepaymenttransactionsgrowgradually.Asakeylinkine-businesscommerce,onlinepaymentmakestransactionschangefrompaperystatetototallyonlinetrading.Bystudyingfromsomeonlinepaymentsystems,wegainaclearideaaboute-commercialpaymentstreamandfunctionalbehavioursofpaymentsystem.Sowecanprovidesystemicknowledgeaboutdesignandimplementationofanonlinepaymentsystem.Keywords:e-commerce;onlinepayment;design;implement目錄TOC\o"1-3"\h\u25513摘要I3989ABSTRACTII15433第1章緒論1246291.1研究背景 110321.2研究現(xiàn)狀與發(fā)展趨勢 11811.2.1研究現(xiàn)狀 1198241.2.2發(fā)展趨勢 2280121.3項目研究的目的和意義 2203821.3.1研究目的 293451.3.2研究意義 2116791.4論文的主要容 3195571.5本章小結(jié) 33430第2章開發(fā)技術(shù)與開發(fā)環(huán)境4203152.1開發(fā)技術(shù) 491522.1.1J2EE 472142.1.2應(yīng)用框架 5175982.1.3Struts,Spring,Hibernate 6321152.2運行環(huán)境 9174962.3本章小結(jié) 917424第3章系統(tǒng)設(shè)計1044503.1系統(tǒng)需求分析 1099603.1.1系統(tǒng)用戶特征 1012993.1.2系統(tǒng)依賴關(guān)系 1022533.1.3系統(tǒng)功能需求 11295953.2系統(tǒng)模塊設(shè)計 1379843.2.1系統(tǒng)結(jié)構(gòu)描述 13119403.2.2面向客戶子系統(tǒng) 1418303.2.3面向管理者子系統(tǒng) 15288523.2.4系統(tǒng)管理子系統(tǒng) 169533.3本章小結(jié) 178395第4章數(shù)據(jù)庫設(shè)計18142404.1數(shù)據(jù)庫需求分析 1860624.2數(shù)據(jù)庫詳細設(shè)計 19322084.2.1關(guān)系實體 1973514.2.2實體關(guān)系 20244564.3本章小結(jié) 2115925第5章子系統(tǒng)實現(xiàn)與驗證22234915.1系統(tǒng)實現(xiàn) 2224475.1.1清單查詢的實現(xiàn) 2249175.1.2導(dǎo)出Excel的實現(xiàn) 23177305.1.3分頁功能的實現(xiàn) 24264445.1.4簡單安全控制的實現(xiàn) 25116615.2系統(tǒng)驗證 2664975.2.1清單查詢的驗證 2638515.2.2導(dǎo)出到Excel的驗證 26255455.2.3分頁功能的驗證 27247795.2.4簡單安全控制的驗證 27252865.3本章小結(jié) 2829127第6章總結(jié)2917949參考文獻3017535致316364附錄數(shù)據(jù)庫表的設(shè)計說明32第1章緒論本章將介紹論文的研究背景,研究現(xiàn)狀和發(fā)展趨勢,論文研究的目的與意義以與論文主要容的介紹。1.1研究背景隨著計算機、網(wǎng)絡(luò)、信息技術(shù)的發(fā)展和日益融合,Internet已進入我們生活的各個領(lǐng)域和各個環(huán)節(jié),無論是機關(guān)、單位還是家庭、個人,都可以通過Internet獲取和共享資源信息。在Internet的廣闊聯(lián)系與傳統(tǒng)信息技術(shù)系統(tǒng)的豐富資源相互結(jié)合的背景下,一種相互關(guān)聯(lián)的動態(tài)商務(wù)活動應(yīng)運而生--電子商務(wù),這種基于Internet的電子商務(wù)給傳統(tǒng)的交易方式帶來了一場革命。據(jù)統(tǒng)計截至2008年底,中國電子商務(wù)市場交易額達到24000億元[1],是2004年交易額的5倍。電子商務(wù)市場發(fā)展如此迅猛,網(wǎng)絡(luò)交易平臺在滿足顧客需求的設(shè)計上顯得尤為重要。對于電子商務(wù)交易,解決網(wǎng)上支付是最關(guān)鍵問題之一。如果沒有網(wǎng)上支付的參與,電子商務(wù)就停留在網(wǎng)上信息搜索和協(xié)議草簽的階段,無法進入實質(zhì)性的交易階段,因而不能形成完整的電子商務(wù)。目前我國消費者網(wǎng)上購物的主要付款方式還是貨到付款或事先郵政匯款,這破壞了電子商務(wù)的完整性,而且造成很多不必要的麻煩。進行電子商務(wù)就是為了方便、提高效率、降低成本,一旦缺少了網(wǎng)上支付,電子商務(wù)的很多優(yōu)勢無法體現(xiàn)。此外,我們必須清醒認識到,網(wǎng)上支付的基礎(chǔ)環(huán)境還有許多的問題是值得我們關(guān)注和改善的:網(wǎng)上支付的安全,社會性、體系狀況以與網(wǎng)上支付相關(guān)的法規(guī)等等,都是現(xiàn)在制約網(wǎng)上支付發(fā)展的重要因素。網(wǎng)上支付成了我國發(fā)展電子商務(wù)的瓶頸問題。1.2研究現(xiàn)狀與發(fā)展趨勢1.2.1研究現(xiàn)狀電子商務(wù)于90年代初興起于美國、加拿大等國,但在直到近幾年,電子支付才被人們普遍接受。隨著電子商務(wù)的發(fā)展,各種法規(guī)隨之健全。兩大國際信用卡組織VISA和MasterCard合作制訂的安全電子交易(SET)協(xié)議定義了一種電子支付過程標(biāo)準(zhǔn),其目的就是保護萬維網(wǎng)上支付卡交易的每一個環(huán)節(jié)。而國,各大城市都處于實驗探索階段。各銀行相繼推出網(wǎng)上銀行業(yè)務(wù)。信用卡是目前最流行的支付方式,用卡付款代替?zhèn)鹘y(tǒng)的現(xiàn)金付款已越來越被人們所接受。電子支付為用戶提供了很大的方便,目前國網(wǎng)上支付主要有三種業(yè)務(wù)形態(tài):銀行或銀聯(lián)的電子支付平臺;第三方支付服務(wù)商的電子支付平臺;企業(yè)部自行建設(shè)的電子支付平臺。1.2.2發(fā)展趨勢電子商務(wù)的一個瓶頸問題就是實現(xiàn)電子化的支付問題。電子化的支付手段的出現(xiàn)已有一段時間,只是應(yīng)用圍主要在金融機構(gòu)之間,大企業(yè)間和信用卡消費等對交易環(huán)境有限制的局部領(lǐng)域[2]。隨著電子商務(wù)的廣泛應(yīng)用,因特網(wǎng)上的商品銷售額迅猛增長,網(wǎng)上的資金流動已經(jīng)成為電子商務(wù)發(fā)展的主要障礙之一,迫切需要金融業(yè)提供完善的網(wǎng)上支付中介服務(wù)。作為買賣雙方交易過程中的“中間橋梁”,第三方支付平臺的崛起已是不崢的事實,大浪淘沙后,十大電子支付平臺如支付寶,paypal,掌上通等已從中商家中脫穎而出,以其特定的技術(shù)優(yōu)勢,細分的服務(wù)市場,獨特的經(jīng)營處方,在電子支付市場各顯身手,發(fā)展迅猛。這不僅帶給人們快捷便利的支付服務(wù),還推動電子支付產(chǎn)業(yè)鏈日益成熟,從十大支付平臺的創(chuàng)業(yè)背景,應(yīng)用特色,經(jīng)營現(xiàn)狀可以看出,電子支付市場正如般冉冉升起[3]。1.3項目研究的目的和意義1.3.1研究目的本項目的研究主要基于以下幾方面考慮:第一,系統(tǒng)了解電子商務(wù)支付流程以與存在問題;第二,明確電子商務(wù)支付的功能與特點;第三,設(shè)計并實現(xiàn)一個電子商務(wù)在線支付系統(tǒng);1.3.2研究意義自九十年代以來,因特網(wǎng)技術(shù)的飛速發(fā)展正在迅速地改變著人們的生活方式,因特網(wǎng)正在由科學(xué)工作者的工具變?yōu)槠胀ò傩斋@取信息、進行交流的場所,而因特網(wǎng)的商業(yè)應(yīng)用則尤為引人注目。全新的電子商務(wù)是指貿(mào)易活動各環(huán)節(jié)的電子化,它覆蓋了與商務(wù)活動有關(guān)的所有方面。它突出的標(biāo)志就是增加貿(mào)易機會,降低貿(mào)易成本,簡化貿(mào)易流程,提高貿(mào)易效率。伴隨著電子商務(wù)的快速發(fā)展,網(wǎng)上支付業(yè)務(wù)也逐步興起。所謂網(wǎng)上支付就是交易過程中的資金轉(zhuǎn)移環(huán)節(jié),使貨幣友有形流動變?yōu)闊o形信用信息在網(wǎng)上流通,消費者可以跨越時間和地域的限制。網(wǎng)上支付的參與,可以使電子商務(wù)由網(wǎng)上信息搜索和協(xié)議草簽的階段,轉(zhuǎn)入實質(zhì)性的交易階段,形成完整的電子商務(wù)。本文作者希望通過對電子商務(wù)支付系統(tǒng)的研究,明確電子商務(wù)支付系統(tǒng)功能特點以與存在的問題,提供系統(tǒng)的理論研究,設(shè)計并實現(xiàn)一個網(wǎng)上支付系統(tǒng)。1.4論文的主要容以前人的研究為基礎(chǔ),了解并熟悉在線支付的整個流程,架構(gòu)設(shè)計基于J2EE框架的電子商務(wù)在線支付平臺的架構(gòu)設(shè)計,并實現(xiàn)面向管理者子系統(tǒng)。本文以電子商務(wù)網(wǎng)上支付系統(tǒng)的實現(xiàn)過程為主線,分別對各個實現(xiàn)階段作說明。其中主要包括初期系統(tǒng)技術(shù)調(diào)研,需求分析,架構(gòu)設(shè)計,界面設(shè)計,子系統(tǒng)系統(tǒng)實現(xiàn)與驗證測試。首先,確定開發(fā)語言,然后去支付寶等進行調(diào)研,了解在線支付的整個流程,并參照系統(tǒng)簡介,分析系統(tǒng)需求,并同時進行知識儲備,學(xué)習(xí)鞏固J2EE相關(guān)知識,并學(xué)習(xí)Struts,Spring和Hibernate應(yīng)用框架。然后,需求分析的基礎(chǔ)上,抽象出本系統(tǒng)與其他系統(tǒng)的接口,再設(shè)計出本系統(tǒng)部的接口和函數(shù),界面設(shè)計,并設(shè)計好數(shù)據(jù)庫。搭建好系統(tǒng)框架,并編碼實現(xiàn)面向管理者功能模塊,同時進行單元測試,然后集成各個單元模塊進行集成測試驗證。1.5本章小結(jié)本章第一節(jié)介紹項目的研究背景,隨后兩節(jié)介紹項目的研究現(xiàn)狀、發(fā)展趨勢、目的以與意義所在。最后一節(jié)對論文項目的主要容做了介紹。第2章開發(fā)技術(shù)與開發(fā)環(huán)境本章主要介紹項目的開發(fā)技術(shù),開發(fā)工具以與環(huán)境配置。2.1開發(fā)技術(shù)2.1.1J2EEJ2EE簡介目前,Java2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)、適用于桌面系統(tǒng)的Java2平臺標(biāo)準(zhǔn)版(Java2PlatformStandardEdition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺企業(yè)版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。它是一套不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)應(yīng)用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。J2EE的優(yōu)勢J2EE為搭建具有可伸縮性、靈活性、易維護性的商務(wù)系統(tǒng)提供了良好的機制:=1\*GB2⑴保留現(xiàn)存的IT資產(chǎn),由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進的方式建立在已有系統(tǒng)之上的服務(wù)器端平臺機制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資。每一個供應(yīng)商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。=2\*GB2⑵高效的開發(fā),J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時間。=3\*GB2⑶支持異構(gòu)環(huán)境,J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序。基于J2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。=4\*GB2⑷可伸縮性,企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新客戶?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器(這是NT服務(wù)器所望塵莫與的)。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。穩(wěn)定的可用性,一個服務(wù)器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為Internet是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴(yán)重損失。若是意外停機,那會有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇[4]。2.1.2應(yīng)用框架1.什么是應(yīng)用框架Spring框架的設(shè)計者RodJohnson對框架技術(shù)的描述是:框架是可重用的、半成品的應(yīng)用程序模塊,它可以用來產(chǎn)生專門的定制程序。比如Sun公司的J2EE技術(shù)規(guī)和標(biāo)準(zhǔn)其實也就是一個框架體系、Microsoft公司的VS.Net技術(shù)平臺其實也是一個框架體系[5]。2.為什么應(yīng)用框架軟件系統(tǒng)發(fā)展到今天,已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,涉與到的知識、容、問題太多。在某些方面使用別人成熟的框架,相當(dāng)于別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計。而且框架一般是成熟穩(wěn)健的,可以處理系統(tǒng)中的很多細節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問題。還有框架一般都經(jīng)過很多人使用,結(jié)構(gòu)和擴展性都很好,而且它是不斷升級的,你可以直接享受別人升級代碼帶來的好處。軟件工程中。強調(diào)一個很重要的概念:高聚,低耦合。為了實現(xiàn)“高聚、低耦合”,把問題劃分開來,對軟件進行分層,各個解決,易于控制,易于延展,易于分配資源。框架一般處在低層應(yīng)用平臺(如J2EE)和高層業(yè)務(wù)邏輯之間的中間層。2.1.3Struts,Spring,Hibernate本項目中采用的是Struts2.0+Spring2.5+Hibernate3.0的整合:1.Struts框架--基于MVC的Web應(yīng)用經(jīng)典框架MVC模式,Model-View-Control的縮寫,模型(Model)封裝數(shù)據(jù)和所有基于對這些數(shù)據(jù)的操作,視圖(View)封裝對數(shù)據(jù)的顯示,即用戶界面。控制(Control)封裝外界作用于模型的操作和對數(shù)據(jù)流向的控制等。MVC模式將業(yè)務(wù)處理與顯示分離,運用MVC的應(yīng)用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想你能構(gòu)造良好的低偶合的構(gòu)件。Struts最早是作為ApacheJakarta項目的組成部分,項目的創(chuàng)立者希望通過對該項目的研究,改進和提高JavaServerPages、Servlet、標(biāo)簽庫以與面向?qū)ο蟮募夹g(shù)水準(zhǔn)。它采用MVC模式,能夠很好地幫助Java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts也是面向?qū)ο笤O(shè)計,將MVC模式“分離顯示邏輯和業(yè)務(wù)邏輯”的能力發(fā)揮得淋漓盡致。利用Struts框架進行Web應(yīng)用系統(tǒng)開發(fā)時,不僅從整體上能夠減輕構(gòu)建J2EEWeb應(yīng)用系統(tǒng)項目的設(shè)計和開發(fā)實現(xiàn)的負擔(dān),也為Web應(yīng)用系統(tǒng)提供國際化、異常處理和數(shù)據(jù)庫連接池等方面的技術(shù)支持。開發(fā)者使用Struts之類的框架是為了隱藏諸如對、CGI以與JSP之類技術(shù)應(yīng)用的煩瑣技術(shù)實現(xiàn)細節(jié)。=1\*GB2⑴“填空”式地開發(fā)實現(xiàn)應(yīng)用系統(tǒng)。Struts框架本身實現(xiàn)了MVC模式,也發(fā)展了MVC模式;應(yīng)用系統(tǒng)的開發(fā)者可以采用“填空”式的方式來進行開發(fā),因為Struts框架將一個標(biāo)準(zhǔn)的MVC的具體實現(xiàn)中的各個組件部分已經(jīng)劃分清晰和組件分離了。另外Struts框架還把標(biāo)準(zhǔn)的Servlet、JSP、自定義標(biāo)簽(TagLib)和信息資源(MessageResources)等整合到一個統(tǒng)一的應(yīng)用框架中,開發(fā)人員利用該應(yīng)用框架進行應(yīng)用系統(tǒng)的開發(fā)時,不用再自己設(shè)計和編碼實現(xiàn)MVC模式中的各個層的核心組件和應(yīng)用系統(tǒng)的體系架構(gòu)的正確性,因此能夠節(jié)省開發(fā)時間和降低實現(xiàn)的風(fēng)險。=2\*GB2⑵降低應(yīng)用系統(tǒng)中的各個層組件之間的耦合度。采用Struts框架技術(shù),可以加快應(yīng)用系統(tǒng)的開發(fā)速度、增強應(yīng)用系統(tǒng)的靈活性、降低應(yīng)用系統(tǒng)中的各個層組件之間的耦合度。因為它將應(yīng)用系統(tǒng)中的表示層和控制層彼此松散地耦合在一起,這主要得益于采用struts-config.xml配置文件進行各個組件的配置管理;這樣的設(shè)計方案也易于對系統(tǒng)的維護和功能擴展。=3\*GB2⑶各個開發(fā)人員之間的分工明確。由于基于Struts框架技術(shù)實現(xiàn)的Web應(yīng)用系統(tǒng)中的控制層、業(yè)務(wù)層與表示層三者之間各自相互分離,所以這樣的設(shè)計方案能夠使應(yīng)用系統(tǒng)中的表示層的開發(fā)者(網(wǎng)頁設(shè)計人員)與后臺業(yè)務(wù)功能具體實現(xiàn)的Java程序員各司其職和分工明確,并且可以并行開發(fā),提高開發(fā)效率。=4\*GB2⑷簡化表示層頁面的設(shè)計和實現(xiàn)。在Struts框架中,應(yīng)用系統(tǒng)的開發(fā)者可以在表示層的頁面量地使用Struts框架中所提供的定制標(biāo)簽庫技術(shù),以實現(xiàn)在頁面中把業(yè)務(wù)邏輯處理的功能實現(xiàn)代碼分離開。從而簡化系統(tǒng)中表示層的設(shè)計和開發(fā)實現(xiàn),進而避免在頁面中出現(xiàn)大量的Java腳本代碼[6]。本項目采用的是Struts2.0--號稱全新的框架,但這僅僅是相對Struts1而言。Struts2與Struts1相比,確實有很多革命性的改進,但它并不是新發(fā)布的新框架,而是在另一個赫赫有名的框架:WebWork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,Struts2沒有繼承Struts1的血統(tǒng),而是繼承WebWork的血統(tǒng)?;蛘哒f,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因為Struts2是WebWork的升級,而不是一個全新的框架,穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了Struts1和WebWork兩者的優(yōu)勢,是一個非常值得學(xué)習(xí)的框架。2.Spring框架Spring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由E完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。傳統(tǒng)J2EE應(yīng)用的開發(fā)效率低,應(yīng)用服務(wù)器廠商對各種技術(shù)的支持并沒有真正統(tǒng)一,導(dǎo)致J2EE的應(yīng)用沒有真正實現(xiàn)WriteOnce與RunAnywhere的承諾。Spring作為開源的中間件,獨立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)等。Spring致力于J2EE應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案??梢哉fSpring是企業(yè)應(yīng)用開發(fā)的“一站式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層與持久層。然而,Spring并不想取代那些已有的框架,而與它們無縫地整合。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。Spring提供的控制反轉(zhuǎn)和面向切面編程插件式架構(gòu)降低了應(yīng)用組件之間的依賴性。借助于XML定義文件,開發(fā)者能夠在運行時連接不同的應(yīng)用組件,這對于單元測試特別有用,特別是那些需要針對不同客戶實施不同的配置而言[7]。輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的、典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進了低耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計和事務(wù)管理)進行聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。容器——Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例——以與它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的E容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣堋猄pring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你[8]。=3\*GB2⑶Hibernate框架Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用E的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任[9]。2.2開發(fā)環(huán)境操作系統(tǒng)::MicrosoftWindowsXPProfessionalSP2數(shù)據(jù)庫:MySQL5.0服務(wù)器:ApacheTomcat6.0開發(fā)平臺:Myeclipse7.0建模設(shè)計工具:StarUML,PowerDesigner2.3本章小結(jié)本章第一小節(jié)主要對項目所用的J2EE技術(shù)以與基于J2EE的開源應(yīng)用框架Struts,Spring,Hibernate作介紹;并隨后在第二小節(jié)說明項目所用的軟硬件配置環(huán)境。第3章系統(tǒng)設(shè)計本章主要介紹項目的架構(gòu)設(shè)計過程,包括需求分析,系統(tǒng)設(shè)計以與界面設(shè)計三部分。3.1系統(tǒng)需求分析電子商務(wù)網(wǎng)上支付系統(tǒng)的用戶主要為為消費者和商家提供一個安全、快捷的網(wǎng)上交易平臺。3.1.1系統(tǒng)用戶特征電子商務(wù)網(wǎng)上支付系統(tǒng)包含面向客戶,面向管理者和系統(tǒng)管理三部分,根據(jù)功能分布特點,將系統(tǒng)用戶劃分為議以下三種:1.客戶展使用網(wǎng)上支付系統(tǒng)進行付款、收款、賬戶和交易管理的客戶。2.管理者使用后臺管理系統(tǒng)進行報表清單查詢。3.超級管理員負責(zé)對管理者進行增、刪、維護。3.1.2系統(tǒng)依賴關(guān)系在原始設(shè)計上,本系統(tǒng)不是獨立的,與銀行卡系統(tǒng)和網(wǎng)上購物系統(tǒng)都有接口進行交互。系統(tǒng)依賴關(guān)系如圖3.1所示。賬戶充值時,通過銀行卡系統(tǒng)接口實現(xiàn)對賬戶進行充值。為了更具有商業(yè)價值,應(yīng)該提供各大大型的接口,方便用戶適用本系統(tǒng)進行支付。圖3.1系統(tǒng)上下文依賴關(guān)系示意圖3.1.3系統(tǒng)功能需求這里只作需求的概括描述,具體需求規(guī)約可參見軟件需求規(guī)格說明書。1.需求描述客戶模塊=1\*GB2⑴用戶注冊:注冊并確認。=2\*GB2⑵用戶登錄:輸入用戶名和密碼以與驗證碼登入。=3\*GB2⑶賬戶管理:包括查詢賬戶,我的賬戶以與賬戶充值。我的賬戶包括個人信息、賬戶信息,安全信息。=4\*GB2⑷網(wǎng)上支付:包括擔(dān)保交易付款,即時到帳付款。=5\*GB2⑸網(wǎng)上收款:包括擔(dān)保交易收款,即時到帳收款。=6\*GB2⑹交易管理:包括個人交易查詢,交易處理和交易地址管理。 個人交易包括買入交易,賣出交易,買入賣出交易。每種交易 分:所有交易,進行中的交易,等待發(fā)貨的交易,成功的交易,失敗的交易,退款的交易,合并付款。交易處理是對查詢的交易執(zhí)行的操作 管理模塊報表查詢:包括日報、月報、年報以與某時間段報表查詢。 系統(tǒng)管理模塊管理員用戶管理:包括管理員賬戶的添加,刪除以與維護。2.Usecase為了更直觀的了解系統(tǒng)需求,通過用戶圖對系統(tǒng)用戶以與每種用戶對應(yīng)的功能直觀描述。本系統(tǒng)的三類用戶:客戶,管理者,超級管理員,客戶與管理者和超級管理員相對獨立,其中客戶模塊用例圖如圖3.2所示,管理模塊以與系統(tǒng)管理總用例圖如圖3.3所示。圖3.2客戶模塊用例圖而超級管理員是繼承自管理者,擁有管理者的所有功能,另外擁有自己特有的功能:對管理者的增、刪、維護操作:圖3.3管理模塊以與系統(tǒng)管理總用例圖3.2系統(tǒng)模塊設(shè)計3.2.1系統(tǒng)結(jié)構(gòu)描述本系統(tǒng)按照不同的使用者來劃分子系統(tǒng),分為面向客戶子系統(tǒng),面向管理者子系統(tǒng),系統(tǒng)管理子系統(tǒng)。其中,面向客戶子系統(tǒng)是本系統(tǒng)的核心部分,是本系統(tǒng)存在的意義所在。面向客戶子系統(tǒng):該子系統(tǒng)向網(wǎng)上購物的客戶和商家提供網(wǎng)上付款和收款的功能,有擔(dān)保交易和即時到賬交易的選擇,同時提供個人賬戶管理和交易管理等功能,個人賬戶管理可以進行賬戶信息的修改,如用戶名、密碼的修改,網(wǎng)上充值,交易管理可以對相應(yīng)交易進行處理,修改交易地址等。保障電子商務(wù)的正常進行。面向管理者子系統(tǒng):該子系統(tǒng)向管理者提供對交易報表查詢以與交易總額查詢,是管理者對使用該系統(tǒng)進行交易的資金流動情況有詳細和總體的了解,以便做出相應(yīng)調(diào)整和決策。系統(tǒng)管理子系統(tǒng):該子系統(tǒng)主要向超級管理員提供對管理者的增、刪以與維護。3.2.2面向客戶子系統(tǒng)1.業(yè)務(wù)流程面向客戶子系統(tǒng)從客戶注冊開始,客戶只有通過注冊之后才可以登錄此系統(tǒng)。賬戶管理、交易管理、網(wǎng)上付款、收款無先后執(zhí)行之分,超時需要重新登錄。業(yè)務(wù)流程如圖3.4所示。圖3.4面向客戶子系統(tǒng)業(yè)務(wù)流程2.模塊設(shè)計客戶通過系統(tǒng)提供的平臺進行擔(dān)保交易和即時到賬兩種方式的付款和收款、對信息進行查看和修改、對交易的查詢和處理等操作。其主要功能與功能描述如表3.1所示。表3.1客戶管理模塊設(shè)計功能模塊功能描述潛在客戶注冊在注冊頁面輸入注冊信息,確認激活后才能登陸使用系統(tǒng)客戶登陸在登陸頁面輸入登陸名與密碼信息,驗證成功則登陸本系統(tǒng)即時到賬付款、收款買家付賬,資金立即充到賣方的賬戶擔(dān)保交易付款、收款買家付賬,交易資金先由支付系統(tǒng)保管,買家收到貨物以后,資金才付給賣方我的賬戶查詢的個人信息,信息,安全信息修改修改相關(guān)信息,包括登錄密碼充值提供網(wǎng)上銀行和支付卡兩種方式的充值交易查詢按條件查詢交易交易處理對查詢出的信息進行相應(yīng)的處理交易地址管理添加修改交易地址退出點擊安全退出按鈕退出本系統(tǒng)3.2.3面向管理者子系統(tǒng)1.業(yè)務(wù)流程管理者也需要登錄并且賬號處于激活狀態(tài)才可以進入管理系統(tǒng),操作過程如果session超時則需要重新登錄。面向管理者子系統(tǒng)業(yè)務(wù)流程如圖3.5所示。圖3.5面向管理者子系統(tǒng)業(yè)務(wù)流程2.模塊設(shè)計管理者查詢注冊、充值、交易三種情況的日報表,月報表,年報表,時間段報表,并提供導(dǎo)出到Excel功能。其主要功能與功能描述如表3.2所示。表3.2面向管理模塊設(shè)計功能模塊功能描述注冊用戶清單查詢根據(jù)日、月、年、時間段等條件選擇查詢注冊用戶清單充值用戶清單查詢根據(jù)日、月、年、時間段等條件選擇查詢充值用戶清單交易用戶清單查詢根據(jù)日、月、年、時間段等條件選擇查詢交易用戶清單導(dǎo)出Excel表點擊導(dǎo)出Excel,將數(shù)據(jù)導(dǎo)出到Excel3.2.4系統(tǒng)管理子系統(tǒng)1.業(yè)務(wù)流程系統(tǒng)管理子系統(tǒng)中,超級管理員可以進行系統(tǒng)管理員的所有操作,另外特有的功能是對普通管理者的增、刪、改、查操作。系統(tǒng)管理子系統(tǒng)業(yè)務(wù)流程如圖3.6所示。圖3.6系統(tǒng)管理子系統(tǒng)業(yè)務(wù)流程系統(tǒng)管理者對管理者進行增、刪、改、查等操作。其主要功能與功能描述如表3.2所示。表3.3系統(tǒng)管理模塊功能模塊功能描述查詢管理者根據(jù)查詢條件查詢出符合條件的管理者增加管理者填寫相應(yīng)信息添加管理者刪除管理者根據(jù)查詢結(jié)果選擇相應(yīng)管理者進行刪除維護管理者修改管理者密碼,權(quán)限,等信息報表查詢同管理者子系統(tǒng)功能3.3本章小結(jié)本章是主要討論系統(tǒng)的架構(gòu)設(shè)計。第一節(jié)描述系統(tǒng)的需求分析,包括系統(tǒng)的用戶特征,系統(tǒng)上下文依賴關(guān)系,以與系統(tǒng)功能需求;第二節(jié)描述系統(tǒng)的結(jié)構(gòu)描述以與面向客戶、面向管理者、系統(tǒng)管理子系統(tǒng)模塊的業(yè)務(wù)流程以與模塊設(shè)計。第4章數(shù)據(jù)庫設(shè)計本章主要介紹數(shù)據(jù)庫層的設(shè)計,包括實體的以與實體之間關(guān)系的分析。4.1數(shù)據(jù)庫需求分析根據(jù)系統(tǒng)的需求,初步可以抽象出以下實體:客戶基本信息,信息,充值記錄信息,交易地址信息,交易記錄;管理者信息??梢杂成涑蓴?shù)據(jù)庫中對應(yīng)的表。因交易地址記錄中省份和城市有大量重復(fù)容,不滿足第二式,因此分出另一城市表,因心分出的城市表中省份字段也有大量重復(fù)容,為滿足第二式,因此再分出一表省份表。本系統(tǒng)數(shù)據(jù)庫設(shè)計概念模型中的實體包括客戶登錄信息,客戶基本信息,賬戶信息,交易地址,充值記錄,交易記錄,管理者信息,權(quán)限信息。它們在數(shù)據(jù)庫中分別對應(yīng)客戶登錄信息表,客戶基本信息表,賬戶信息表,交易地址表,充值記錄表,交易記錄表,管理者信息表和權(quán)限信息表:客戶信息表表存儲客戶登錄名,登錄密碼、支付密碼以與用戶名,openId登錄名,狀態(tài),證件號(或護照)、、安全保護問題以與答案、注冊日期以與最后登錄時間;賬戶信息表存儲客戶的可用余額以與凍結(jié)資金;激活碼表存儲客戶編號和激活碼;交易地址表存儲交易的相關(guān)信息,包括,通信地址(地區(qū),街道,),聯(lián)系方式;省份表存儲省份編號以與對應(yīng)省份名稱;城市表存儲隸屬某一省份的城市列表編號和對應(yīng)名稱;充值記錄表存儲客戶充值方式,時間,金額以與銀行等信息;交易記錄表存儲交易的訂單號、商品編號、交易相關(guān)信息(起始時間、場所、金額、狀態(tài)、)、買方、賣方、送貨方式、備注描述。商品信息表存儲商品編號,商品名稱,單價,數(shù)量,展示以與商品介紹;送貨信息表存儲交易編號,送貨方式,郵費承擔(dān)方,郵費金額以與收貨地址;管理者信息表存儲管理者的登錄名,密碼,用戶名,權(quán)限類型(普通管理員、超級管理員),,注冊時間,狀態(tài)4.2數(shù)據(jù)庫詳細設(shè)計4.2.1關(guān)系實體根據(jù)數(shù)據(jù)庫需求分析,確定以下表以與對應(yīng)的字段:客戶信息表(客戶ID,客戶登錄名,openid登錄名,登錄密碼,支付密碼,用戶名,狀態(tài),證件號,證件類型,,手機號,注冊日期,安全問題,安全問題答案,最后登錄時間):Customer(CID,userName,openID,userpsd,payPSD,name,enabled,identifyNo,identifyType,phoneNo,mobileNo,registerDate,psdQuestion,psdQAnswer,lastLoginTime)賬戶信息表(客戶ID,可用余額,凍結(jié)資金)Account(CID,availAcc,frozenAcc)激活碼表(客戶ID,激活碼)customer_activate_code(CIDm,activateCode)交易地址表(地址編號,客戶ID,,城市編號,街道地址,,,手機號)adress_list(addID,CID,trueName,cityID,streetAdd,postalNo,phoneNo,mobileNo)省份表(省份編號,中文名稱)province(provinceID,provinceName)城市表(城市編號,城市名稱,所屬省份編號)city(cityID,cityName,provinceID)充值記錄表(充值記錄ID,客戶ID,充值類型,充值金額,充值時間,充值銀行)prepaid_rec(dpositRecID,CID,dpositType,dpositSum,dposiTime,dpositBank)交易記錄表(交易記錄編號,產(chǎn)品ID,交易開始時間,交易結(jié)束時間,交易狀態(tài),買家ID,賣家id,交易金額,送貨方式,備注說明)trade_rec(tradeID,prodID,tradeSTime,tradeETime,tradeState,buyerID,sellerID,tradeSum,deliverType,details)商品信息表(產(chǎn)品編號,產(chǎn)品名稱,單價,數(shù)量,展示,產(chǎn)品介紹)product(proId,proName,unitPrice,quantity,proNet,intro)送貨信息表(交易編號,送貨方式,郵費承擔(dān)方,郵費金額,地址記錄編號)deliver(tradeID,deliverType,postagePayer,postage,addID)管理者信息表(管理者ID,管理者登錄名,密碼,管理者類型,電子,創(chuàng)建時間,狀態(tài))admin(adminID,adminName,adminPsd,adminType,email,createTime,status)4.2.2實體關(guān)系在上節(jié)描述的實體中,激活碼表,信息表,充值記錄表,信息表,地址信息表,交易記錄表均依賴于客戶的存在,通過CID外鍵關(guān)聯(lián)客戶信息表customer;交易記錄中的商品信息依賴產(chǎn)品表,通過外鍵產(chǎn)品ID關(guān)聯(lián)product表;送貨信息表deliver依賴于交易的存在,通過交易記錄編號關(guān)聯(lián)trade_rec;而送貨信息表中的地址信息依賴于地址信息表,通過外鍵地址編號關(guān)聯(lián)地址信息表address_list,地址信息表中的地址中的城市依賴于城市表中的城市,通過外鍵cityID關(guān)聯(lián)城市表city,而城市表又通過外鍵provinceID與省份表province關(guān)聯(lián)。各表關(guān)系如圖4.1所示。圖4.1實體關(guān)系示意圖4.3本章小結(jié)本章第一節(jié)主要分析數(shù)據(jù)庫需求,根據(jù)數(shù)據(jù)庫設(shè)計規(guī)劃分出實體,第二節(jié)主要描述關(guān)系實體以與他們之間的關(guān)系,給出了關(guān)系圖。第5章子系統(tǒng)實現(xiàn)與驗證本章描述面向管理者子系統(tǒng)的實現(xiàn),主要講述關(guān)鍵技術(shù)點的實現(xiàn),包括清單查詢,Excel導(dǎo)出,分頁功能以與簡單安全控制的實現(xiàn)。5.1系統(tǒng)實現(xiàn)本系統(tǒng)采用Struts2+Spring+Hibernate框架,頁面數(shù)據(jù)包含在Action中,通過Getter和Setter方法獲取。大多時候,實現(xiàn)Action,都會繼承com.opensymphony.xwork2.ActionSupport類,并重寫類里的Stringexecute()方法。execute()方法中調(diào)用service層的接口中的方法,service層的實現(xiàn)類則調(diào)用Hibernate層中的DAO類中的相應(yīng)方法。Spring框架的引入,IoC(控制反轉(zhuǎn))技術(shù)的應(yīng)用,在服務(wù)器啟動時,所有類和對象均實例化,為調(diào)用做好準(zhǔn)備。5.1.1清單查詢的實現(xiàn)本系統(tǒng)中的清單查詢涉與到日,月,年,以與時間段四種類型,經(jīng)過分析,四種類型其實都是一個時間段,因此查詢時在Hibernate層調(diào)用DAO里自定義了同一個函數(shù):PublicListfindByPeriod(Timestampsdate,Timestampedate){//opensessionSessionsession=this.getHibernateTemplate().getSessionFactory().openSession(); Criteriacriteria=session.createCriteria(Customer.class); criteria.add(Restrictions.between("registerDate",sdate,edate));//添加查詢條件Listlist=criteria.list(); session.close();//closesessionReturnlist;}對于時間段(即傳遞的兩個參數(shù))處理,因從頁面獲取的時間是從日歷控件中獲取的,格式是“YYYY-MM-DD”格式的,后面的時分秒均為零,而數(shù)據(jù)庫中存儲的時間類型,注冊日期是Date類型,充值時間和交易時間精確到時分秒,設(shè)置的是Timestamp類型。調(diào)用查詢函數(shù)前,需對開始時間和結(jié)束時間進行處理,轉(zhuǎn)成Timestamp格式。對于日報表查詢,sdate和edate是同一天,把edate增加一天,這里用到了Calendar類里的add(Calendar.DAY_OF_MONTH,1)方法,Calendar類不用考慮當(dāng)前月是30天還是31天,是閏年還是平年的二月,函數(shù)里有判斷,如查詢2009-04-30的數(shù)據(jù)是把sdate設(shè)置為2009-04-3000:00:00,edate設(shè)置為2009-05-0100:00:00,這樣能保證查詢到2009-04-30這一天的所有數(shù)據(jù)。對于月報表查詢,講頁面?zhèn)鬟f的year和month變量設(shè)置到Calendar對象里,并且設(shè)置Calendar.Date為當(dāng)月第一天,然后調(diào)用roll(Calendar.DATE,-1)方法,回滾一天,日期回到此月的最后一天,也不用考慮當(dāng)前月的天數(shù)。Calendar類實在很方便,推薦使用此類。對于年報表查詢,直接將頁面?zhèn)鬟f的參數(shù)設(shè)置到Calendar對象中,并且設(shè)置開始時間為本年第一天的第一秒,結(jié)束時間的最后天的最后一秒。對于時間段報表查詢,和日報表查詢的處理類型,都是對頁面?zhèn)鬟f的Date對象進行處理,結(jié)束時間增加一天后進行查詢。5.1.2導(dǎo)出Excel的實現(xiàn)本系統(tǒng)Excel導(dǎo)出功能的實現(xiàn)用到poi-2.5.1.Jar包,在service層將調(diào)用DAO返回的查詢結(jié)果List相應(yīng)的屬性值設(shè)置到新建的Excel工作表單元格,然后將創(chuàng)建輸出流,將Excel工作簿寫到文件輸出流中,獲取文件輸出流存盤。//新建Excel工作簿HSSFWorkbookwb=newHSSFWorkbook();HSSFSheetsheet=wb.createSheet("sheet1");//創(chuàng)建一行存儲對應(yīng)的字段名HSSFRowrow=sheet.createRow(0);HSSFCellcell=row.createCell((short)0);cell.setEncoding(HSSFCell.ENCODING_UTF_16);//設(shè)置編碼格式cell.setCellValue("序號");……//依次將DAO層返回的list集寫到Excel中,for(inti=0;i<list.size();++i) { Customeruser=list.get(i);//依次獲取list集中的對象row=sheet.createRow(i+1);//編號索引遞增cell=row.createCell((short)0); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(i+1);//將相應(yīng)的屬性值寫到Excel單元格cell=row.createCell((short)1); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(user.getEnabled());……} //創(chuàng)建輸出流 ByteArrayOutputStreamos=newByteArrayOutputStream(); try{ wb.write(os);//將Excel值寫到輸出流 }catch(IOExceptione) { e.printStackTrace(); }……5.1.3分頁功能的實現(xiàn)有兩種方式的分頁,一種是一次取到所有結(jié)果放到存中,通過設(shè)置iterator標(biāo)簽偏移量offset來控制頁面輸出記錄。一種是Hibernate分頁,傳遞兩個參數(shù)(返回記錄總數(shù)對應(yīng)每頁顯示最大條數(shù),開始索引號對應(yīng)每頁顯示第一條記錄號)到hibernateDAO層,控制數(shù)據(jù)庫的輸出。前一種方法在數(shù)據(jù)量不大時有優(yōu)勢,但是數(shù)據(jù)量很大時效率大大降低,后者適合大數(shù)據(jù)量時查詢,但是有二次查詢,因此這兩種方法各有利弊。考慮到系統(tǒng)的擴展性,采用第二種方式分頁。在action層處理確定pageSize和pageNow的值,傳遞給DAO里的相應(yīng)的查詢函數(shù):……criteria.setFirstResult(pageNow);//結(jié)果集中按要求取的第一條記錄數(shù)criteria.setMaxResults(pageSize);//設(shè)置每頁顯示記錄數(shù)……5.1.4簡單安全控制的實現(xiàn)1.防止未登錄訪問本系統(tǒng)必須用戶登錄后才能使用,因此對于用戶訪問的頁面要提前判斷用戶是否登錄或者是否有權(quán)限。實現(xiàn)方法是寫一個判斷用戶登錄狀態(tài)以與權(quán)限的jsp,在每個需要驗證的頁面中,將該jsp文件include進去。判斷jsp文件沒有包含主要語法如下:……<%if(username==null){%><script>alert("您還沒有登陸或者登錄超時,請重新登陸!");window.parent.location.href="./index.action";</script><%}elseif(userstate.equals("0")){%><script>alert("您的賬號被凍結(jié),激活請聯(lián)系管理員\n\t:thlq411163.\n\t:330369808");//someaction</script><%}%>……需要驗證的頁面中加入以下語法即可:<%includefile="logincheck.jsp"%>2.設(shè)置Session有效期Tomcat默認session有效期是30分鐘,但我可以在web.xml文件中自己手動配置session的有效期,代碼如下:<session-config><session-timeout>10</session-timeout></session-config>可以自己修改時間值10,適應(yīng)自己的需求。5.2系統(tǒng)驗證5.2.1清單查詢的驗證我們在5月12日上午做了4筆交易,均是耳機。在交易的時間段查詢中,通過日歷控件選擇2009-5-11至2009-5-12日的時間段,查詢顯示如圖5.1所示。圖5.1交易用戶清單示意圖在該查詢結(jié)果清單中,包含上午查詢的這四筆交易,而且經(jīng)檢查,查詢結(jié)果均為11日到12日之間的結(jié)果,并且包含所有11日到12日之間的所有交易記錄。查詢結(jié)果無誤。另外,選擇一個沒有交易記錄的時間段,經(jīng)測試,查詢結(jié)果列表為空,沒有記錄顯示,也達到預(yù)期結(jié)果。日報表查詢,月報表查詢,年報表查詢經(jīng)測試均達到預(yù)期效果。清單查詢實現(xiàn)無誤。5.2.2導(dǎo)出到Excel的驗證在選擇了一個查詢頁面后,選擇相應(yīng)查詢條件,查詢清單列出的同時會有導(dǎo)出到Excel表的。點擊彈出下載對話框,如圖5.2所示。圖5.2文件下載示意圖點擊打開可以直接在網(wǎng)頁中打開,點擊保存將文件保存到本地磁盤上:用戶可以自己修改文件名稱和路徑保存。保存后在本地機器上用Excel打開,數(shù)據(jù)顯示正確無誤。5.2.3分頁功能的驗證當(dāng)前系統(tǒng)數(shù)據(jù)庫中,2009.5.10至2009.5.12日的共有37條記錄,設(shè)置每頁顯示記錄數(shù)為5,預(yù)期應(yīng)該有8頁,部署好后登錄進入,在注冊用戶時間段查詢頁面中,選擇起始日期分別為2009-5-10和2009-5-12,查詢頁面結(jié)果如圖5.3所示:圖5.3注冊用戶時間段查詢清單1顯示結(jié)果有8頁,達到預(yù)期顯示效果,點擊相第四頁,顯示如圖5.4所示的結(jié)果:圖5.4注冊用戶時間段查詢清單2跳轉(zhuǎn)正確,表格中顯示的記錄也跟隨變換,顯示無誤。選擇2009-4.11至2009-4-11這一時間段的結(jié)果,點擊查詢,因這天沒有注冊用戶,預(yù)期頁數(shù)為0.查詢后頁面顯示如圖5.5所示:圖5.5注冊用戶時間段查詢清單35.2.4簡單安全控制的驗證防止未登錄訪問在地址欄中,直接輸入年注冊用戶查詢頁面地址localhost:8080/eops/administrator/queryYearRegister.jsp頁面彈出如圖5.7所示提示框:圖5.7未登錄提
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中小學(xué)教師中級職稱考試試題(附答案)
- 降解產(chǎn)物毒性評估-洞察及研究
- 編譯器中的領(lǐng)域知識表示與推理-洞察及研究
- 金融科技中的可持續(xù)發(fā)展與倫理實踐-洞察及研究
- 國家智慧教育云平臺助力家校共育的實踐探索與成效評估教學(xué)研究課題報告
- 2026年總裁助理崗位考核標(biāo)準(zhǔn)
- 2026年如何進行倉管員的日常工作指導(dǎo)與考核
- 2026年專業(yè)人才應(yīng)聘常見問題解析與技巧指導(dǎo)
- 2026年閘口管理員面試題集及答案解析
- 2025下半年四川綿陽市事業(yè)單位選調(diào)工作人員25人備考題庫及完整答案詳解1套
- 2026年重慶市江津區(qū)社區(qū)專職人員招聘(642人)考試參考題庫及答案解析
- 2026年1月福建廈門市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長治職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫附答案解析
- 新華資產(chǎn)招聘筆試題庫2026
- 2026年丹東市人力資源和社會保障局公開選聘法律顧問備考題庫及完整答案詳解一套
- 2026年干部綜合能力高頻知識點測試題附解析
- GB/T 46544-2025航空航天用螺栓連接橫向振動防松試驗方法
- 炎德·英才大聯(lián)考長沙市一中2026屆高三月考(五)歷史試卷(含答案詳解)
- 零售行業(yè)采購經(jīng)理商品采購與庫存管理績效考核表
- 2025年語文合格考試題庫及答案
評論
0/150
提交評論