![基于J2EE的網(wǎng)上書店系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view/3a054dad15af2c5a2d581c650172e7e9/3a054dad15af2c5a2d581c650172e7e91.gif)
![基于J2EE的網(wǎng)上書店系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view/3a054dad15af2c5a2d581c650172e7e9/3a054dad15af2c5a2d581c650172e7e92.gif)
![基于J2EE的網(wǎng)上書店系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view/3a054dad15af2c5a2d581c650172e7e9/3a054dad15af2c5a2d581c650172e7e93.gif)
![基于J2EE的網(wǎng)上書店系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view/3a054dad15af2c5a2d581c650172e7e9/3a054dad15af2c5a2d581c650172e7e94.gif)
![基于J2EE的網(wǎng)上書店系統(tǒng) 的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view/3a054dad15af2c5a2d581c650172e7e9/3a054dad15af2c5a2d581c650172e7e95.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
II目錄緒論 11實(shí)現(xiàn)技術(shù)與開發(fā)工具 31.1Java 31.2J2EE 31.3Spring 41.4MyEclipse 41.5MySQL 41.6Tomcat 52可行性分析與需求分析 72.1可行性分析 72.1.1技術(shù)可行性 72.1.2經(jīng)濟(jì)可行性 72.1.3操作可行性 72.2需求分析 72.2.1功能需求 72.2.2性能需求 83系統(tǒng)設(shè)計(jì) 93.1系統(tǒng)概要設(shè)計(jì) 93.1.1系統(tǒng)總體結(jié)構(gòu) 93.1.2系統(tǒng)流程設(shè)計(jì) 103.2系統(tǒng)詳細(xì)設(shè)計(jì) 103.2.1用戶管理模塊的設(shè)計(jì) 103.2.2商品管理模塊的設(shè)計(jì) 113.2.3購(gòu)物車管理模塊的設(shè)計(jì) 113.2.4訂單管理模塊的設(shè)計(jì) 113.2.5公告管理模塊的設(shè)計(jì) 123.2.6數(shù)據(jù)庫(kù)設(shè)計(jì) 124系統(tǒng)實(shí)現(xiàn) 154.1數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 154.1.1數(shù)據(jù)庫(kù)的建立 154.1.2數(shù)據(jù)表代碼生成 154.1.3數(shù)據(jù)庫(kù)的連接 164.2系統(tǒng)整體環(huán)境搭建 164.3系統(tǒng)功能模塊實(shí)現(xiàn) 164.3.1系統(tǒng)主界面的實(shí)現(xiàn) 164.3.2用戶管理模塊的實(shí)現(xiàn) 174.3.3商品管理模塊的實(shí)現(xiàn) 184.3.4購(gòu)物車管理模塊的實(shí)現(xiàn) 194.3.5訂單管理模塊的實(shí)現(xiàn) 204.3.6公告管理模塊的實(shí)現(xiàn) 215系統(tǒng)測(cè)試 225.1測(cè)試目的 225.2測(cè)試平臺(tái) 225.3測(cè)試用例 225.3.1系統(tǒng)登錄 225.3.2用戶注冊(cè) 235.3.3添加書籍 235.3.4公告修改 235.3.5查詢書籍 245.4測(cè)試難點(diǎn) 245.4.1數(shù)據(jù)源連接 245.4.2信息的提交 24結(jié)論 25參考文獻(xiàn) 26致謝 27PAGE27緒論隨著全球經(jīng)濟(jì)一體化的逐步發(fā)展和深入,網(wǎng)上書店已成為傳統(tǒng)書店必不可少的經(jīng)營(yíng)策略之一。目前,網(wǎng)上書店在國(guó)際互聯(lián)網(wǎng)上可以實(shí)現(xiàn)的業(yè)務(wù)功能已經(jīng)多樣化,可以說(shuō),傳統(tǒng)書店所具備的功能幾乎都可以在互聯(lián)網(wǎng)上進(jìn)行電子化的高效動(dòng)作。雖然傳統(tǒng)書店規(guī)模有所不同,隨著網(wǎng)上交易的開展,都將有力地改變企業(yè)的發(fā)展空間,會(huì)對(duì)企業(yè)的競(jìng)爭(zhēng)力產(chǎn)生不可忽視的影響。網(wǎng)上書店為人們提供了更廣闊的環(huán)境:人們不受時(shí)間的限制,不受空間的限制,不受傳統(tǒng)購(gòu)書的諸多限制,可以隨時(shí)隨地在網(wǎng)上交易。在網(wǎng)上,這個(gè)世界將會(huì)變得很小,一個(gè)商家可以面對(duì)全球的消費(fèi)者,而一個(gè)消費(fèi)者可以在全球的任何一家書店購(gòu)物;網(wǎng)上書店提供了更快速的流通和低廉的價(jià)格:網(wǎng)上書店減少了商品流通的中間環(huán)節(jié),節(jié)省了大量的開支,從而也大大降低了商品流通和交易的成本。網(wǎng)上書店更符合時(shí)代的要求,具有長(zhǎng)遠(yuǎn)的社會(huì)效益和經(jīng)濟(jì)效益。西方國(guó)家網(wǎng)上書店起步較早,現(xiàn)今已較為成熟。首先從技術(shù)上來(lái)講,國(guó)外對(duì)于網(wǎng)上書店的開發(fā)有一套完整的開發(fā)流程規(guī)范,無(wú)論從安全性還是系統(tǒng)的擴(kuò)展性都有良好的應(yīng)對(duì)措施;從功能上來(lái)講,能滿足在網(wǎng)上購(gòu)書所涉及到的所有合理的功能,包括暢銷書、在線書籍、書評(píng)社區(qū)和積分商場(chǎng)等。世界上第一家網(wǎng)上書店是1991年在美國(guó)聯(lián)機(jī)公司(AOL)在網(wǎng)絡(luò)上建立的“閱讀美國(guó)”書店。1994年貝佐斯在西雅圖成立的亞馬遜網(wǎng)上書店,如今已成為全球最大網(wǎng)上書店,控制著美國(guó)80%的網(wǎng)上圖書銷售市場(chǎng)。而國(guó)內(nèi)的網(wǎng)上書店起步較遲,雖然目前已初具規(guī)模,但是由于信息服務(wù)不完善、低質(zhì)量,查詢、分類形式單一,注重圖書數(shù)量的豐富而忽略圖書及其相關(guān)知識(shí)和信息的提供、介紹,并且經(jīng)營(yíng)模式未走出傳統(tǒng)書店模式,從而導(dǎo)致國(guó)內(nèi)網(wǎng)上書店系統(tǒng)與國(guó)外相比有一定的差距[1]。現(xiàn)在的網(wǎng)上書店系統(tǒng)大多數(shù)是由大型書店商家按照自身需求開發(fā)而成,沒有達(dá)到統(tǒng)一及成熟的程度。因此,在運(yùn)用方面還有廣大的研究空間。未來(lái)網(wǎng)上書店系統(tǒng)將會(huì)變得更加專業(yè)化、更加高質(zhì)量、更有特色,并且系統(tǒng)將逐漸成熟,達(dá)到統(tǒng)一的標(biāo)準(zhǔn),更具有安全性的支付、可擴(kuò)展性的功能和可維護(hù)性,系統(tǒng)的使用會(huì)易于操作,為用戶提供網(wǎng)上購(gòu)書的便利享受。系統(tǒng)的網(wǎng)絡(luò)管理也將會(huì)隨著更加自動(dòng)化。實(shí)現(xiàn)開發(fā)平臺(tái)標(biāo)準(zhǔn)化,業(yè)務(wù)流程自動(dòng)化和應(yīng)用系統(tǒng)集成化。本論文主要研究一款網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)主要實(shí)現(xiàn)網(wǎng)上購(gòu)買書籍的基本業(yè)務(wù)處理,主要包括會(huì)員管理、商品展示管理、購(gòu)物車管理、訂單管理、商品管理、公告管理等功能。本文的各個(gè)章節(jié)的主要研究?jī)?nèi)容如下:第1章針對(duì)該系統(tǒng)的可行性分析與需求分析進(jìn)行了詳細(xì)的介紹,以減少項(xiàng)目開發(fā)的盲目性,保證系統(tǒng)開發(fā)建立在更科學(xué)的基礎(chǔ)上。第2章針對(duì)該系統(tǒng)的主要實(shí)現(xiàn)技術(shù)與開發(fā)工具進(jìn)行詳細(xì)的介紹。第3章對(duì)系統(tǒng)設(shè)計(jì)進(jìn)行詳細(xì)的說(shuō)明,包括系統(tǒng)概要設(shè)計(jì)和系統(tǒng)詳細(xì)設(shè)計(jì)。第4章對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行詳細(xì)的說(shuō)明,按照各個(gè)模塊具有針對(duì)性的說(shuō)明。第5章對(duì)系統(tǒng)測(cè)試進(jìn)行詳細(xì)的介紹,以保證系統(tǒng)能夠正常的運(yùn)行。
1實(shí)現(xiàn)技術(shù)與開發(fā)工具系統(tǒng)以Myeclipse8.5為應(yīng)用程序開發(fā)工具,選擇Java為開發(fā)語(yǔ)言,采用Mysql建立和維護(hù)后臺(tái)數(shù)據(jù)庫(kù)。以下對(duì)系統(tǒng)的實(shí)現(xiàn)技術(shù)與開發(fā)工具進(jìn)行了詳細(xì)說(shuō)明。1.1JavaJava是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(JavaEnterpriseAPIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)[2]。1.2J2EEJ2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。J2EE是Java2平臺(tái)企業(yè)版(Java2Platform,EnterpriseEdition)J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過(guò)去企業(yè)后端使用的信息產(chǎn)品彼此之間無(wú)法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。目前,Java2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java2平臺(tái)Micro版(Java2PlatformMicroEdition,J2ME)、適用于桌面系統(tǒng)的Java2平臺(tái)標(biāo)準(zhǔn)版(Java2PlatformStandardEdition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺(tái)企業(yè)版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一種利用Java2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫一次、隨處運(yùn)行”的特性、方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)[3]。J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開發(fā)平臺(tái),J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。1.3SpringSpring也表示是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性由RodJohnson創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為J2EE應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Sping的優(yōu)點(diǎn)包括低侵入式設(shè)計(jì),代碼污染極低,獨(dú)立于各種應(yīng)用服務(wù)器,Spring的DI機(jī)制降低了業(yè)務(wù)對(duì)象替換的復(fù)雜性,Spring并不完全依賴于Spring,開發(fā)者可自由選用Spring框架的部分或全部[4]。1.4MyEclipse本項(xiàng)目代碼開發(fā)選用的IDE工具是MyEclipse。MyEclipse是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它可以在數(shù)據(jù)庫(kù)和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。1.5MySQL本項(xiàng)目開發(fā)選用的數(shù)據(jù)庫(kù)軟件是MySQL。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語(yǔ)言”。SQL是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性。為多種編程語(yǔ)言提供了API。這些編程語(yǔ)言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。支持多線程,充分利用CPU資源。優(yōu)化的SQL查詢算法,有效地提高查詢速度。既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具。可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。支持多種存儲(chǔ)引擎。與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。1.6TomcatTomcat是Apache軟件基金會(huì)(ApacheSoftwareFoundation)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因?yàn)門omcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。目前最新版本是7.0。Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為:當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。這里的訣竅是,當(dāng)配置正確時(shí),Apache為HTML頁(yè)面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.27Released。
2可行性分析與需求分析本章主要對(duì)系統(tǒng)的可行性分析與需求分析進(jìn)行詳細(xì)的介紹。在項(xiàng)目開發(fā)前,對(duì)系統(tǒng)開發(fā)的必要性和可能性進(jìn)行分析和論證,以減少項(xiàng)目開發(fā)的盲目性,保證系統(tǒng)開發(fā)建立在更科學(xué)的基礎(chǔ)上[5]。2.1可行性分析針對(duì)本系統(tǒng)以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。2.1.1技術(shù)可行性本系統(tǒng)采用MyEclipse集成開發(fā)工具作為該系統(tǒng)前端應(yīng)用程序的開發(fā),以JAVA做為主要開發(fā)語(yǔ)言和MySQL進(jìn)行后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)。主要可行性如下:(1)MyEclipse集成了很多插件和功能,能進(jìn)行頁(yè)面的可視化設(shè)計(jì)和和后臺(tái)代碼的規(guī)范性。(2)MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),操作簡(jiǎn)單,上手簡(jiǎn)單。(3)Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,具有卓越的通用性、高效性、平臺(tái)移植性和安全性。所以從技術(shù)來(lái)上說(shuō),該系統(tǒng)的設(shè)計(jì)和完成是可行的。2.1.2經(jīng)濟(jì)可行性Java是一種免費(fèi)的開源語(yǔ)言,采用的數(shù)據(jù)庫(kù)MySQL也是免費(fèi)的,所用的開發(fā)工具M(jìn)yEclipse在網(wǎng)上也可以下載的,而對(duì)于相關(guān)的資料,可以從圖書館以及網(wǎng)絡(luò)平臺(tái)獲得。因而,該系統(tǒng)在經(jīng)濟(jì)上是可行的。2.1.3操作可行性該系統(tǒng)操作簡(jiǎn)易,用戶購(gòu)書不需要了解整個(gè)書店的工作流程,只需要按照提示一步步操作即可完成購(gòu)書等活動(dòng)。而對(duì)于系統(tǒng)管理員,該系統(tǒng)設(shè)計(jì)時(shí)遵循簡(jiǎn)單、直觀和合理,能和用戶進(jìn)行很好的交互。因而,該系統(tǒng)在操作上是可行的。2.2需求分析本節(jié)主要對(duì)于系統(tǒng)的需求分析進(jìn)行了詳細(xì)的介紹,主要包括功能需求和性能需求。對(duì)要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果[6]。2.2.1功能需求本系統(tǒng)是一個(gè)網(wǎng)上書店系統(tǒng),實(shí)現(xiàn)其基本的網(wǎng)上購(gòu)書功能,因此應(yīng)該使本系統(tǒng)的操作盡量簡(jiǎn)單使它能夠吸引更多的在線顧客。通過(guò)對(duì)當(dāng)當(dāng)網(wǎng),卓越網(wǎng)等網(wǎng)上書店的認(rèn)識(shí)和分析,我對(duì)網(wǎng)上書店有了基本的了解,主要功能需求如下:(1)用戶本系統(tǒng)的用戶包括后臺(tái)管理員和會(huì)員用戶,即需要對(duì)用戶進(jìn)行添加,并且具有修改、刪除和查詢的功能。(2)書籍本系統(tǒng)可以對(duì)書籍信息進(jìn)行添加、修改、刪除,并且書籍是分類別的,所以對(duì)于書籍的類別也可以進(jìn)行添加、修改和刪除。(3)購(gòu)物車對(duì)于本系統(tǒng)應(yīng)提供了購(gòu)物車功能,可以讓顧客像在超市中購(gòu)物一樣,將想要購(gòu)買的物品放入購(gòu)物車,如果顧客看中了其他物品不想買剛才的物品時(shí)可以從購(gòu)物車將物品清出,添加新物品。通過(guò)購(gòu)物車給顧客提供最大的選擇空間。(4)公告本系統(tǒng)還具有公告功能,提供最新的系統(tǒng)信息和新書資訊,實(shí)現(xiàn)的功能包括對(duì)于公告信息的添加、修改、刪除和展示。(5)訂單當(dāng)購(gòu)買書籍后會(huì)生成相應(yīng)的訂單,實(shí)現(xiàn)的功能包括訂單的生成、修改和訂單的刪除。2.2.2性能需求由于該系統(tǒng)實(shí)現(xiàn)的是網(wǎng)上購(gòu)買書籍的完整流程,既包括了對(duì)大量書籍和大量會(huì)員用戶的管理,又包括了對(duì)大數(shù)據(jù)量的書籍的查詢,因此,本系統(tǒng)在性能上需要滿足一下幾點(diǎn):(1)整個(gè)系統(tǒng)長(zhǎng)時(shí)間處于穩(wěn)定的運(yùn)行狀態(tài)。(2)系統(tǒng)正常運(yùn)行時(shí),保證大量用戶的并發(fā)訪問。(3)系統(tǒng)在滿足數(shù)據(jù)的正確性的前提下,搜索的時(shí)間最大不超過(guò)10秒。
3系統(tǒng)設(shè)計(jì)本章主要根據(jù)系統(tǒng)的需求分析和開發(fā)時(shí)的實(shí)際情況進(jìn)行系統(tǒng)設(shè)計(jì),包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。3.1系統(tǒng)概要設(shè)計(jì)概要設(shè)計(jì)是將軟件系統(tǒng)需求轉(zhuǎn)換為未來(lái)系統(tǒng)的設(shè)計(jì),為了逐步開發(fā)強(qiáng)壯的系統(tǒng)構(gòu)架做鋪墊,使設(shè)計(jì)適合于實(shí)施環(huán)境,為提高性能而進(jìn)行設(shè)計(jì),使整個(gè)軟件開發(fā)工作可以協(xié)調(diào)有序地進(jìn)行[7]。3.1.1系統(tǒng)總體結(jié)構(gòu)通過(guò)對(duì)當(dāng)當(dāng)網(wǎng),卓越網(wǎng)等網(wǎng)上書店的認(rèn)識(shí)和分析,再根據(jù)需求分析,對(duì)系統(tǒng)模塊進(jìn)行了設(shè)計(jì)。本系統(tǒng)的功能可以分為以下幾個(gè)模塊[8]:(1)用戶管理模塊用戶管理模塊又包括了管理員模塊和會(huì)員用戶模塊。管理員模塊要實(shí)現(xiàn)登錄、添加、修改、刪除和查詢功能。會(huì)員用戶模塊要實(shí)現(xiàn)會(huì)員登錄、注冊(cè)和會(huì)員的添加、修改、刪除、和查詢等基本功能。(2)商品管理模塊商品管理模塊由商品展示模塊、商品類別管理模塊、商品信息模塊三個(gè)子模塊組成。商品展示模塊要實(shí)現(xiàn)對(duì)商品的查詢,其中又包括熱門書籍查詢、暢銷書籍查詢、推薦書籍查詢、按書籍類別查詢、書籍排行榜查詢和自定義書籍查詢。商品類別管理模塊要實(shí)現(xiàn)對(duì)商品類別的添加、修改、查詢和刪除功能。商品信息模塊實(shí)現(xiàn)商品基本信息的添加、修改、查詢和刪除。(3)購(gòu)物車管理模塊購(gòu)物車管理模塊要實(shí)現(xiàn)商品加入購(gòu)物車、移除購(gòu)物車、清空購(gòu)物車。(4)訂單管理模塊訂單管理模塊包括會(huì)員用戶對(duì)訂單的管理和管理員對(duì)訂單的管理。會(huì)員用戶管理訂單實(shí)現(xiàn)提交訂單、修改訂單、刪除訂單和查看訂單,管理員管理訂單實(shí)現(xiàn)查看訂單和刪除訂單。(5)公告管理模塊公告管理模塊實(shí)現(xiàn)對(duì)公告的添加、修改、查詢和刪除。系統(tǒng)功能總體結(jié)構(gòu)如圖3-1所示。圖3-1系統(tǒng)功能總體結(jié)構(gòu)圖3.1.2系統(tǒng)流程設(shè)計(jì)本系統(tǒng)的流程是:首先進(jìn)入系統(tǒng)時(shí),顯示的是前臺(tái)的主界面,主界面展示了一些熱門和暢銷的書籍,會(huì)員登錄框以及公告。當(dāng)用戶輸入正確的會(huì)員名和密碼后,點(diǎn)擊登錄,系統(tǒng)會(huì)刷新頁(yè)面,并且登錄框消失變成相應(yīng)會(huì)員的信息。然后已經(jīng)登錄的會(huì)員可以添加書籍到購(gòu)物車、修改個(gè)人資料、下訂單等。在每個(gè)前臺(tái)頁(yè)面下面都有個(gè)“后臺(tái)管理”的超鏈接,點(diǎn)擊后會(huì)跳轉(zhuǎn)到后臺(tái)管理登錄頁(yè)面,輸入管理員的帳號(hào)后就會(huì)跳轉(zhuǎn)到后臺(tái)管理頁(yè)面,就可以針對(duì)商品、訂單、會(huì)員、系統(tǒng)等信息進(jìn)行數(shù)據(jù)管理。3.2系統(tǒng)詳細(xì)設(shè)計(jì)本節(jié)對(duì)系統(tǒng)的數(shù)據(jù)庫(kù)和各個(gè)模塊的詳細(xì)設(shè)計(jì)進(jìn)行了說(shuō)明。3.2.1用戶管理模塊的設(shè)計(jì)用戶管理模塊包括會(huì)員管理和管理員管理。(1)會(huì)員管理會(huì)員管理包括前臺(tái)用戶注冊(cè)、登錄和后臺(tái)管理員對(duì)會(huì)員的管理操作。會(huì)員信息包括會(huì)員編號(hào)、用戶名、用戶密碼、用戶昵稱、用戶電話、用戶地址和Email。針對(duì)用戶注冊(cè)能夠?qū)τ脩裘?、密碼進(jìn)行簡(jiǎn)單驗(yàn)證;能夠?qū)﹄娮余]箱、Email進(jìn)行有效性驗(yàn)證。如果所填的信息不符合要求,將會(huì)出現(xiàn)提示框,提示格式不對(duì);能夠防止利用頁(yè)面刷新重復(fù)注冊(cè),以及已經(jīng)注冊(cè)的用戶不能重復(fù)注冊(cè)。用戶登錄時(shí),如果輸入的用戶名和密碼錯(cuò),將會(huì)跳轉(zhuǎn)到一個(gè)公共的錯(cuò)誤頁(yè)面。而后臺(tái)管理員能對(duì)注冊(cè)的會(huì)員用戶進(jìn)行增加、刪除、修改,也會(huì)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。(2)管理員管理管理員管理主要實(shí)現(xiàn)對(duì)管理員的基本信息進(jìn)行添加、修改、刪除、查詢、管理員登錄和修改密碼。管理員信息包括管理員編號(hào)、用戶名、密碼、昵稱和聯(lián)系電話。對(duì)管理員信息進(jìn)行操作時(shí)都要進(jìn)行數(shù)據(jù)格式驗(yàn)證,如果驗(yàn)證失敗將彈出提示框,并且操作終止。3.2.2商品管理模塊的設(shè)計(jì)商品管理模塊主要由商品展示模塊、商品類別管理模塊、商品信息模塊三個(gè)子模塊組成[9]。(1)商品展示模塊商品展示模塊主要是針對(duì)書籍的各個(gè)條件進(jìn)行查詢展示。主要包括熱門書籍展示、暢銷書籍展示、新書上市展示、排行榜展示、按書籍類別展示、用戶自定義條件展示,并顯示商品詳情,提供購(gòu)買鏈接。用戶自定義展示即是根據(jù)用戶輸入的關(guān)鍵詞進(jìn)行模糊查詢。(2)商品類別管理模塊商品類別管理模塊主要是對(duì)商品類別進(jìn)行管理,商品類別信息主要包括類別名稱、類別簡(jiǎn)介和類別編號(hào)。實(shí)現(xiàn)對(duì)商品類別信息的添加、修改、刪除和查詢。(3)商品信息模塊商品信息模塊主要是針對(duì)商品的基本信息進(jìn)行管理,商品的基本信息包括書籍名稱、書籍價(jià)格、書籍作者、出版社、簡(jiǎn)介、封面、出版日期、書籍類別和書籍編號(hào)。實(shí)現(xiàn)對(duì)商品基本信息的添加、修改、刪除和查詢,增添商品時(shí)候可以上傳圖片。其中與商品類別有級(jí)聯(lián)關(guān)系,書籍的類別為商品類別的主鍵,書籍要保證一致性。3.2.3購(gòu)物車管理模塊的設(shè)計(jì)購(gòu)物車管理模塊是針對(duì)購(gòu)物車進(jìn)行管理。欲購(gòu)買商品可以增添到購(gòu)物車;也可以從購(gòu)物車退回商品,清空購(gòu)物車;對(duì)于同一件商品的多次購(gòu)買只能在原來(lái)的商品上增添數(shù)量,還可以修改購(gòu)物車中某個(gè)商品的數(shù)量,統(tǒng)計(jì)商品總金額。3.2.4訂單管理模塊的設(shè)計(jì)訂單管理模塊主要針對(duì)訂單基本信息的管理,訂單的基本信息包括訂單編號(hào)、會(huì)員編號(hào)、書籍編號(hào)、書籍名稱、購(gòu)買數(shù)量、下單時(shí)間、郵寄地址、郵編、訂單狀態(tài)、聯(lián)系電話、留言和支付金額。只有登錄的用戶可下訂單,用戶可以查看自己的訂單。管理員可以修改訂單的狀態(tài);也可以按某個(gè)時(shí)間段,狀態(tài)查詢訂單及分頁(yè)列表顯示查詢結(jié)果。當(dāng)商品基本信息刪除的時(shí)候,存在訂單的商品不能夠被刪除。3.2.5公告管理模塊的設(shè)計(jì)公告管理模塊主要對(duì)公告基本信息進(jìn)行管理,公告的基本信息包括公告編號(hào)、公告標(biāo)題、公告內(nèi)容、公告發(fā)布時(shí)間。管理員可以增加系統(tǒng)公告,并可以刪除、修改。在前臺(tái)首頁(yè)會(huì)按照時(shí)間順序展示系統(tǒng)公告標(biāo)題,點(diǎn)擊可以顯示公告的詳細(xì)內(nèi)容。3.2.6數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)對(duì)各個(gè)模塊的分析后,系統(tǒng)數(shù)據(jù)表主要包括:(1)管理員信息表管理員信息表用來(lái)存儲(chǔ)管理員的基本信息,包括用戶名、密碼、昵稱和聯(lián)系電話,為了辨別每個(gè)管理員的唯一性,還增加了一個(gè)管理員ID的字段,并設(shè)置管理員為主鍵遞增[10]。管理員信息表如表3-1所示。表3-1管理員信息表列名類型說(shuō)明midint用戶IDusernamevarchar管理員用戶名passwordvarchar管理員密碼namevarchar昵稱phonevarchar聯(lián)系電話(2)會(huì)員用戶信息表會(huì)員用戶信息表是用來(lái)存儲(chǔ)會(huì)員用戶的基本信息,包括會(huì)員用戶名、用戶密碼、用戶昵稱、用戶電話、用戶地址和Email,為了保證會(huì)員用戶的唯一性,還增加了名稱為uid的用戶編號(hào)字段,并設(shè)置為遞增主鍵。由于考慮到用戶賬戶的安全性,表中的用戶密碼存儲(chǔ)的實(shí)際上不是用戶的明文密碼,而是經(jīng)過(guò)MD5加密后的一串字符,保證數(shù)據(jù)的安全性。(3)書籍類別表書籍類別表是用來(lái)存儲(chǔ)書籍類別的基本信息,包括類別名稱、類別簡(jiǎn)介和類別ID,并設(shè)置類別ID為遞增主鍵,保證書籍類別信息的唯一性。該表是為書籍表提供的輔助表。書籍類別表如表3-2所示。表3-2書籍類別表列名類型說(shuō)明tidint類別IDbooktypevarchar類別名稱introducevarchar簡(jiǎn)介(4)書籍表書籍表主要是用來(lái)存儲(chǔ)書籍的基本信息表,包括書籍名稱、書籍價(jià)格、書籍作者、出版社、簡(jiǎn)介、封面、出版日期、書籍類別和書籍ID,書籍ID為該表的主鍵,以保證書籍信息的唯一性。書籍的封面這個(gè)字段實(shí)際存儲(chǔ)的是封面圖片的URL,因?yàn)樯蟼鲌D片時(shí),將圖片存儲(chǔ)到了服務(wù)器上,所以picurl字段指向的就是存儲(chǔ)在服務(wù)器上的相應(yīng)的圖片。在該表中書籍類別的字段為int類型,是因?yàn)轭悇e是可以隨時(shí)增加,隨時(shí)減少的,選擇書籍類別時(shí)是從數(shù)據(jù)庫(kù)動(dòng)態(tài)獲取的,而如果存儲(chǔ)類別名稱,那么當(dāng)類別名稱別修改時(shí)書籍表卻沒有得到同步,類別ID才是辨別類別的唯一性,即應(yīng)選擇int類型。并且當(dāng)書籍的類別被刪除后,相應(yīng)的書籍表里的數(shù)據(jù)也要被刪除,達(dá)到級(jí)聯(lián)刪除效果,確保數(shù)據(jù)的正確性和完整性。書籍表信息如表3-3所示。表3-3書籍表列名類型說(shuō)明bidint書籍IDbooknamevarchar書籍名稱pricevarchar書籍價(jià)格authorvarchar書籍作者publishersvarchar出版社introducevarchar簡(jiǎn)介picurlvarchar封面publishdatevarchar出版日期booktypeint書籍類別(5)訂單信息表訂單信息表是用來(lái)存儲(chǔ)訂單的基本信息,主要包括訂單編號(hào)、會(huì)員編號(hào)、書籍編號(hào)、書籍名稱、購(gòu)買數(shù)量、下單時(shí)間、郵寄地址、郵編、訂單狀態(tài)、聯(lián)系電話、留言和支付金額。其中訂單編號(hào)為主鍵,保證訂單的唯一性。表中關(guān)聯(lián)了會(huì)員表和書籍表,由于會(huì)員編號(hào)和書籍編號(hào)都具有唯一性,用會(huì)員編號(hào)和書籍編號(hào)來(lái)表示,以防止會(huì)員表和書籍表的基本信息修改后無(wú)法同步到訂單表,保證了數(shù)據(jù)的完整性。訂單信息表如表3-4所示。
表3-4訂單信息表列名類型說(shuō)明oidint下單編號(hào)uidint會(huì)員idbidInt書籍idbooknamevarchar書籍名稱amountvarchar購(gòu)買數(shù)量datevarchar下單時(shí)間addressvarchar郵寄地址postcodeint郵編statevarchar訂單狀態(tài)phonevarchar聯(lián)系電話notevarchar留言moneydouble金額(6)公告信息表公告信息表主要用來(lái)存儲(chǔ)系統(tǒng)公告基本信息,包括公告ID、公告標(biāo)題、公告內(nèi)容、公告發(fā)布時(shí)間。其中公告ID為主鍵,保證公告信息的唯一性。該表用于公告管理模塊,實(shí)時(shí)記錄公告管理模塊數(shù)據(jù)的更新。公告信息表如表3-5所示。表3-5公告表列名類型說(shuō)明nidint公告IDtitlevarchar公告標(biāo)題contentvarchar公告內(nèi)容publishdatevarchar發(fā)布時(shí)間
4系統(tǒng)實(shí)現(xiàn)本章主要對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行詳細(xì)介紹,包括數(shù)據(jù)庫(kù)的實(shí)現(xiàn)和各個(gè)模塊的實(shí)現(xiàn)。4.1數(shù)據(jù)庫(kù)的實(shí)現(xiàn)本小節(jié)主要介紹本網(wǎng)上書店系統(tǒng)的數(shù)據(jù)庫(kù)的實(shí)現(xiàn),包括如何建立數(shù)據(jù)庫(kù)、如何生成數(shù)據(jù)表以及對(duì)數(shù)據(jù)庫(kù)的連接。4.1.1數(shù)據(jù)庫(kù)的建立本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用的是MySQL,數(shù)據(jù)庫(kù)的建立采用數(shù)據(jù)庫(kù)中可視界面生成的方法。首先進(jìn)入NavicatforMySQL,然后選擇新建數(shù)據(jù)庫(kù)。接著在新建數(shù)據(jù)庫(kù)窗口中填寫數(shù)據(jù)庫(kù)的相關(guān)參數(shù)。如:數(shù)據(jù)庫(kù)名稱、數(shù)據(jù)庫(kù)所有者、初始大小、自動(dòng)增長(zhǎng)量的大小以及存放位置等等。創(chuàng)建數(shù)據(jù)庫(kù)如圖4-1所示。圖4-1創(chuàng)建數(shù)據(jù)庫(kù)4.1.2數(shù)據(jù)表代碼生成新建數(shù)據(jù)庫(kù)成功后,進(jìn)行數(shù)據(jù)表的創(chuàng)建。下面以會(huì)員用戶設(shè)置數(shù)據(jù)表作為介紹,會(huì)員用戶設(shè)置數(shù)據(jù)表中將字段用戶編號(hào)設(shè)置為主鍵,不可為空,其余字段均可為空。該數(shù)據(jù)表生成SQL代碼:CREATETABLE`user`(`uid`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(255)DEFAULTNULL,`password`varchar(255)DEFAULTNULL,`name`varchar(255)DEFAULTNULL,`phone`varchar(255)DEFAULTNULL,`address`varchar(255)DEFAULTNULL,`email`varchar(255)DEFAULTNULL,PRIMARYKEY(`uid`))ENGINE=InnoDBAUTO_INCREMENT=13DEFAULTCHARSET=utf8;4.1.3數(shù)據(jù)庫(kù)的連接由于本系統(tǒng)采用Hibernate框架,引入所需的包后,只需要在配置文件里配置上相應(yīng)的數(shù)據(jù)庫(kù)用戶名、密碼和連接地址等,就可以通過(guò)面向?qū)ο蟮乃枷雭?lái)操作關(guān)系數(shù)據(jù)庫(kù)。4.2系統(tǒng)整體環(huán)境搭建打開軟件MyEclipse8.5,建立一個(gè)名為onlineBook的webproject項(xiàng)目。首先,導(dǎo)入系統(tǒng)所需要使用到的jar包,導(dǎo)入jar包過(guò)程如下所示:將系統(tǒng)所需的數(shù)據(jù)庫(kù)連接包和所用框架所必須的包直接復(fù)制到WEB-INF目錄下的lib中,MyEclipse8.5將自動(dòng)完成后續(xù)工作。創(chuàng)建好項(xiàng)目導(dǎo)入jar包之后,就需要對(duì)系統(tǒng)的框架進(jìn)行搭建。在項(xiàng)目的src目錄下對(duì)系統(tǒng)進(jìn)行分層,建立項(xiàng)目包,并將框架相關(guān)的配置文件放在該目錄下。然后在WebRoot目錄下新建admin和app文件夾,分別表示后臺(tái)管理界面和前臺(tái)界面文件的存放位置,在這兩個(gè)文件夾里又分別都建立image文件夾,用于存放界面所需的圖片。4.3系統(tǒng)功能模塊實(shí)現(xiàn)本小節(jié)主要對(duì)系統(tǒng)的各個(gè)功能模塊的實(shí)現(xiàn)進(jìn)行詳細(xì)介紹,包括系統(tǒng)界面實(shí)現(xiàn)、用戶管理模塊、商品管理模塊、購(gòu)物車管理模塊、訂單管理模塊、公告管理模塊。4.3.1系統(tǒng)主界面的實(shí)現(xiàn)一個(gè)網(wǎng)站的頁(yè)面就如同其門面一樣,是給用戶第一感官印象的重要途徑。本項(xiàng)目在頁(yè)面的設(shè)計(jì)上秉承了簡(jiǎn)單易用、布局合理、大方美觀、清新明了的設(shè)計(jì)思想,用戶在首次接觸本系統(tǒng)的時(shí)候,能感覺到親切、容易上手,但也能感受得到本系統(tǒng)鮮明的特色。打開DreamweaverCS5,新建一個(gè)HTML文件,通過(guò)網(wǎng)頁(yè)標(biāo)簽設(shè)計(jì)好登錄界面。利用Dreamweaver的可視化設(shè)計(jì),對(duì)頁(yè)面進(jìn)行模塊的劃分和排版,包括會(huì)員登錄窗口、暢銷書推薦、精品推薦界面、圖書分類、新書上架、最新公告、熱賣排行、網(wǎng)友書評(píng)和書籍搜索組成完整的首頁(yè)界面。然后將HTML文件內(nèi)容拷貝到JSP頁(yè)面。所用頁(yè)面利用了Div+CSS的靈活布局方式,首頁(yè)利用了JSP和Struts2的特性,由多個(gè)Action構(gòu)成(每個(gè)Action負(fù)責(zé)不同的顯示模塊)。本系統(tǒng)利用Struts2框架來(lái)管理JSP頁(yè)面,在JSP頁(yè)面中,Action的Bean屬性(即提供了getter和setter方法的全局變量)被推到ValueStack的棧頂,與JSP頁(yè)面進(jìn)行交互(根據(jù)JSP頁(yè)面的需求訪問其屬性的getter或setter方法),這樣的JavaBean有別于EntityBean,它們更多的用來(lái)封裝業(yè)務(wù)(ServerBean),根據(jù)請(qǐng)求來(lái)完成相應(yīng)的業(yè)務(wù)操作流程,這將在下文具體功能模塊實(shí)現(xiàn)中進(jìn)行敘述其作用。系統(tǒng)主界面如圖4-2所示。圖4-2系統(tǒng)主界面4.3.2用戶管理模塊的實(shí)現(xiàn)用戶管理模塊包括了會(huì)員用戶管理和管理員管理。具體實(shí)現(xiàn)如下:(1)登錄注冊(cè)新用戶必須進(jìn)行注冊(cè)后才能進(jìn)行瀏覽購(gòu)買圖書等操作,注冊(cè)信息包括用戶名,密碼,昵稱,電話,郵件等。并對(duì)用戶名,密碼的簡(jiǎn)單驗(yàn)證;能夠?qū)﹄娮余]箱,Email進(jìn)行有效性驗(yàn)證;能夠防止利用頁(yè)面刷新重復(fù)注冊(cè),以及已經(jīng)注冊(cè)的用戶不能重復(fù)注冊(cè)。用戶在注冊(cè)站內(nèi)會(huì)員的時(shí)候,將填寫一張表單,在用戶書寫完用戶名焦點(diǎn)切換時(shí)候,頁(yè)面利用了Ajax和JQuery技術(shù),動(dòng)態(tài)訪問后臺(tái),調(diào)用服務(wù),查詢?cè)撚脩裘欠褚呀?jīng)被占用(數(shù)據(jù)庫(kù)中存在該用戶),若占用,則返回的requestBean的booleanValue屬性為true,message消息屬性為“你所輸入的用戶名已經(jīng)存在,請(qǐng)重新輸入”;若沒被占用,則返回的requestBean的booleanValue為flase;消息為“你可以使用該用戶名”。注冊(cè)頁(yè)面會(huì)根據(jù)Ajax返回的值,動(dòng)態(tài)的顯示給用戶[11]。本系統(tǒng)將管理員和會(huì)員用戶的登錄分開為兩個(gè)界面,管理員和會(huì)員用戶的數(shù)據(jù)分別是保存在不同的數(shù)據(jù)表里,通過(guò)用戶名查詢出相應(yīng)的數(shù)據(jù)(hibernate是對(duì)對(duì)象的操作,取出的數(shù)據(jù)封裝相應(yīng)的EntityBean,這里用的是UserBean)。在項(xiàng)目的三層架構(gòu)中,傳遞是就是UserBean,在web層(即Struts2的Action),進(jìn)行判定,若UserBean為null,就提示用戶“帳號(hào)或用戶名不存在”,若非null,調(diào)用action服務(wù),其表現(xiàn)為:普通用戶登錄后停留在本頁(yè)(即主頁(yè),通過(guò)Struts2的過(guò)濾器機(jī)制,對(duì)用戶的登錄狀態(tài)進(jìn)行判定,如果用戶session中存放的UserBean為null,則顯示登錄的輸入場(chǎng),如session中存在UserBean對(duì)象,則顯示相應(yīng)的歡迎語(yǔ)句),管理員則進(jìn)入后臺(tái)管理頁(yè)面(后臺(tái)頁(yè)面也包含攔截器和過(guò)濾器,攔截等級(jí)權(quán)限非Admin的用戶對(duì)象)。用戶登錄成功的標(biāo)志就是:通過(guò)用戶名取得的用戶對(duì)象的password屬性,與用戶輸入的password相同。這一個(gè)判斷是在biz層實(shí)現(xiàn)的,登錄成功后,將取得的UserBean返回給web層,若不成功,則返回null。在Web層中,會(huì)將該UserBean對(duì)象存放于session中,以便后續(xù)的操作需要使用到UserBean時(shí),不用再次訪問數(shù)據(jù)庫(kù),降低系統(tǒng)開銷[12]。(2)用戶信息維護(hù)用戶個(gè)人信息的維護(hù)功能歸根結(jié)底就是一個(gè)CRUD的過(guò)程。用戶登錄成功后,點(diǎn)擊“個(gè)人中心”,進(jìn)入用戶的個(gè)人中心(信息維護(hù)界面),此時(shí)觸發(fā)的Action服務(wù)為“顯示”用戶信息操作的服務(wù)(userInfo),該Action服務(wù)只負(fù)責(zé)顯示,而所需要顯示的內(nèi)容為用戶各相關(guān)信息,即UserBean中的信息都已經(jīng)存在于session中了。用戶進(jìn)入個(gè)人中心后,用戶可以修改一些根據(jù)業(yè)務(wù)需求開放給用戶的個(gè)人信息,點(diǎn)擊保存后,會(huì)觸發(fā)相應(yīng)的Action,完成Update的操作。4.3.3商品管理模塊的實(shí)現(xiàn)商品管理模塊主要由商品展示模塊、商品類別管理模塊、商品信息模塊三個(gè)子模塊組成。具體實(shí)現(xiàn)如下:(1)商品展示模塊首先在項(xiàng)目的dao層建立名為IndexDao的JAVA文件,在該文件里分別寫上針對(duì)不同條件的書籍查詢,比如按照訂單的數(shù)量排序的書籍做為暢銷書等,然后在相應(yīng)的action層也建立相應(yīng)的JAVA文件,在index方法中調(diào)用每個(gè)查詢首頁(yè)需要展示的數(shù)據(jù)方法,再把所有接收的數(shù)據(jù)放入request里,在首頁(yè)JSP文件中使用struts2的標(biāo)簽將所有的數(shù)據(jù)分別迭代出來(lái)顯示在頁(yè)面[13]。(2)商品類別管理模塊首先建立該模塊所需的dao、service和action文件,在dao寫上增刪查改的方法,方法中使用HibernateTemplate模版類型進(jìn)行對(duì)數(shù)據(jù)庫(kù)的交互,并把結(jié)果返回到action層,再通過(guò)ajax回調(diào)將數(shù)據(jù)封裝返回到j(luò)s,通過(guò)返回的內(nèi)容進(jìn)行判斷是否執(zhí)行成功并彈出相應(yīng)的友好系統(tǒng)提示。(3)商品信息模塊實(shí)現(xiàn)對(duì)商品基本信息的添加、修改、刪除和查詢,增添商品時(shí)候可以上傳圖片。添加商品時(shí),首先會(huì)去訪問Action,這個(gè)Action會(huì)去執(zhí)行查詢所有的書籍類別,然后通過(guò)Struts的標(biāo)簽將數(shù)據(jù)填充到JSP頁(yè)面的下拉列表,當(dāng)用戶填寫好商品的基本信息后點(diǎn)擊提交,會(huì)將請(qǐng)求轉(zhuǎn)交給另一個(gè)Action,首先會(huì)將選擇的圖片通過(guò)數(shù)據(jù)流上傳到服務(wù)器文件夾,再將所返回的圖片路徑得到,和其他的商品信息封裝到POJO里,傳到數(shù)據(jù)庫(kù)層,執(zhí)行SQL語(yǔ)句添加到數(shù)據(jù)庫(kù)。管理頁(yè)面如圖4-3所示。圖4-3管理頁(yè)面4.3.4購(gòu)物車管理模塊的實(shí)現(xiàn)用戶在選中喜歡的商品后,選擇購(gòu)買按鈕,調(diào)用相應(yīng)Action服務(wù),系統(tǒng)會(huì)根據(jù)用戶選擇的商品來(lái)生成一個(gè)對(duì)應(yīng)的訂單項(xiàng)(一個(gè)商品對(duì)應(yīng)一個(gè)訂單項(xiàng),相同的商品再次購(gòu)買,訂單項(xiàng)中的商品數(shù)量+1),添加到一個(gè)List中,并且將這個(gè)List放入session中,用戶購(gòu)買其它商品的時(shí)候,從session中取出該List,添加新的訂單項(xiàng),再將其放入session中。用戶可以點(diǎn)擊“購(gòu)物車”,進(jìn)入購(gòu)物車中查詢已經(jīng)購(gòu)買的商品。此時(shí),系統(tǒng)會(huì)從session中取出存放訂單項(xiàng)的List中取出所有的數(shù)據(jù),以列表的形式遍歷顯示給用戶。用戶可以對(duì)相關(guān)商品進(jìn)行“刪除”和“修改數(shù)量”的操作,刪除的訂單項(xiàng)(即商品)不會(huì)從List中刪除,而是將其isDelete屬性設(shè)置為true,同時(shí)顯示給用戶剩余的和已刪除的,提供恢復(fù)操作[14]。購(gòu)物車頁(yè)面如圖4-4所示。圖4-4購(gòu)物車頁(yè)面4.3.5訂單管理模塊的實(shí)現(xiàn)訂單模塊分為提交訂單模塊和訂單管理模塊。具體實(shí)現(xiàn)如下:(1)提交訂單用戶在進(jìn)入“購(gòu)物車”后,點(diǎn)擊“下單”按鈕,會(huì)將進(jìn)行生成并提交訂單操作(當(dāng)用戶購(gòu)物車為空時(shí),此按鈕不生效,當(dāng)用戶沒登錄的時(shí)候,提示用戶登錄)用戶點(diǎn)擊“下單”后,會(huì)跳轉(zhuǎn)到“訂單確認(rèn)”頁(yè)面,該頁(yè)面會(huì)顯示用戶所購(gòu)買的所有商品的信息,包括:商品名稱,商品單價(jià),商品折扣,商品數(shù)量,總價(jià)等。用戶在確認(rèn)無(wú)誤后,點(diǎn)擊“確認(rèn)”按鈕,此時(shí),系統(tǒng)會(huì)新生成一個(gè)訂單對(duì)象,將所有訂單項(xiàng)存入訂單對(duì)象的List中,并且進(jìn)入配送地址確認(rèn)頁(yè)面。系統(tǒng)會(huì)默認(rèn)顯示并使用用戶設(shè)定的默認(rèn)地址為當(dāng)前訂單的配送地址,用戶也可以選擇其它非默認(rèn)的地址,或者新建一個(gè)配送地址來(lái)作為當(dāng)前訂單的配送地址,用戶在確認(rèn)完配送地址無(wú)誤后,點(diǎn)擊“確認(rèn)提交”,系統(tǒng)會(huì)清空Session中購(gòu)物車的相關(guān)信息(即刪除所有訂單項(xiàng)),系統(tǒng)會(huì)將地址賦值給訂單對(duì)象的相應(yīng)屬性,并且觸發(fā)提交訂單的操作,將OrderBean傳入biz層,進(jìn)行其余,如:下單時(shí)間、下單User的裝配,將所有屬性都已確認(rèn)好的OrderBean傳入給dao層,進(jìn)行寫入數(shù)據(jù)庫(kù)。根據(jù)Hibernate的配置,OrderBean的List中存放的ItemBeans也會(huì)被寫入數(shù)據(jù)庫(kù)。訂單提交成功后,跳轉(zhuǎn)到提示用戶成功頁(yè)面,在該頁(yè)面,用戶可以選擇“為當(dāng)前訂單付款”或是“離開并回到主頁(yè)”[15]。(2)訂單管理用戶需要登錄后,才能進(jìn)行訂單管理。在“個(gè)人中心”點(diǎn)擊“訂單管理”,進(jìn)行管理訂單,系統(tǒng)會(huì)列出用戶所有的訂單,訂單包含如下3個(gè)狀態(tài):已付款,未付款,已完成。用戶可以對(duì)“未付款”的訂單,進(jìn)行付款;刪除指定的訂單,點(diǎn)擊訂單進(jìn)行查看訂單詳情。要說(shuō)明的是刪除訂單時(shí),訂單的數(shù)據(jù)會(huì)從數(shù)據(jù)庫(kù)里刪除。對(duì)應(yīng)的HQL語(yǔ)句為:deletefromOrderwhereoid=2。4.3.6公告管理模塊的實(shí)現(xiàn)公告模塊分為公告瀏覽模塊和公告管理模塊。具體實(shí)現(xiàn)如下:在公告的數(shù)據(jù)訪問層,方法中使用HibernateTemplate模版類型進(jìn)行對(duì)數(shù)據(jù)庫(kù)的交互,并把結(jié)果返回到action層,再通過(guò)ajax回調(diào)將數(shù)據(jù)封裝返回到j(luò)s,通過(guò)返回的內(nèi)容進(jìn)行判斷是否執(zhí)行成功并彈出相應(yīng)的友好系統(tǒng)提示。
5系統(tǒng)測(cè)試軟件測(cè)試是在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件品質(zhì),并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。5.1測(cè)試目的為了保證軟件的質(zhì)量和可靠性,應(yīng)力求在分析、設(shè)計(jì)等各個(gè)開發(fā)階段結(jié)束前,對(duì)軟件進(jìn)行嚴(yán)格技術(shù)評(píng)審。但由于人們能力的局限性,審查不能發(fā)現(xiàn)所有的錯(cuò)誤。而且在編碼階段還會(huì)引進(jìn)大量的錯(cuò)誤。這些錯(cuò)誤和缺陷如果遺留到軟件交付投入運(yùn)行之時(shí),終將會(huì)暴露出來(lái)。但到那時(shí),不僅改正這些錯(cuò)誤的代價(jià)更高,而且往往造成很惡劣的后果。所以系統(tǒng)測(cè)試很重要。5.2測(cè)試平臺(tái)本系統(tǒng)僅實(shí)現(xiàn)網(wǎng)上書店管理中的一些基本業(yè)務(wù),對(duì)運(yùn)行的軟硬件環(huán)境要求不高。具體要求如下:(1)軟件環(huán)境支持各種操作系統(tǒng)如Windows98、WindowsXP、Windows7等,需要安裝Mysql5.1數(shù)據(jù)庫(kù)軟件,并啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)。需要安裝集成開發(fā)工具M(jìn)yeclipse8.5。(2)硬件環(huán)境對(duì)處理器要求在PIII300以上,內(nèi)存大小要求在64M以上,不需要聯(lián)網(wǎng)即可運(yùn)行本系統(tǒng)。5.3測(cè)試用例測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。首先是出于驗(yàn)證設(shè)計(jì)功能、性能點(diǎn)的需要,而必須要有針對(duì)性地給出每個(gè)功能點(diǎn)、性能點(diǎn)的驗(yàn)證方法。5.3.1系統(tǒng)登錄用例名稱:系統(tǒng)登錄。用例描述:用戶名存在、密碼正確的情況下,登錄進(jìn)入系統(tǒng)。場(chǎng)景名稱分以下兩種:(1)用戶名和密碼校驗(yàn)測(cè)試步驟:沒有輸入用戶名和密碼,點(diǎn)擊登錄。預(yù)期結(jié)果:系統(tǒng)登錄失敗,并提示:請(qǐng)輸入用戶名和密碼。(2)正確登錄測(cè)試步驟:輸入正確用戶名和密碼,點(diǎn)擊登錄。預(yù)期結(jié)果:系統(tǒng)登錄成功,跳轉(zhuǎn)到系統(tǒng)管理主頁(yè)面。5.3.2用戶注冊(cè)用例名稱:用戶注冊(cè)。用例描述:在注冊(cè)頁(yè)面填入相應(yīng)的正確資料,會(huì)注冊(cè)成功。場(chǎng)景名稱分以下兩種:(1)用戶名校驗(yàn)測(cè)試步驟:輸入已經(jīng)存在的用戶名,點(diǎn)擊注冊(cè)。預(yù)期結(jié)果:注冊(cè)失敗,并提示:輸入的用戶名已經(jīng)存在。(2)正確注冊(cè)測(cè)試步驟:填入正確注冊(cè)信息,點(diǎn)擊注冊(cè)。預(yù)期結(jié)果:注冊(cè)成功
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶貨運(yùn)從業(yè)資格證模擬試題答案大全及答案
- 2025年貴州貨運(yùn)從業(yè)資格證500道題目答案
- 2025年池州道路貨運(yùn)駕駛員從業(yè)資格證考試
- 2025年巴彥淖爾貨運(yùn)從業(yè)資格證考試模擬考試
- 病人護(hù)理服務(wù)合同(2篇)
- 北京課改版歷史七年級(jí)下冊(cè)第2課《貞觀之治》聽課評(píng)課記錄
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)上冊(cè)第十三章軸對(duì)稱13.1軸對(duì)稱教案新版新人教版
- 2024-2025學(xué)年高中數(shù)學(xué)課時(shí)分層作業(yè)13向量的概念含解析新人教B版必修4
- 2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)第1章有理數(shù)1.5有理數(shù)的乘法和除法作業(yè)設(shè)計(jì)新版湘教版
- 英語(yǔ)七年級(jí)聽評(píng)課記錄
- 醫(yī)院突發(fā)性事件、護(hù)理重點(diǎn)環(huán)節(jié)、醫(yī)院病區(qū)等應(yīng)急預(yù)案
- 2024年南京市中考?xì)v史試題及答案
- 2024年四川省涼山州中考物理適應(yīng)性試卷(附答案解析)
- 幼兒園師資培訓(xùn)課件【區(qū)域進(jìn)階】科學(xué)區(qū)各年齡段目標(biāo)制定與投放材料:區(qū)域材料玩出新高度課件
- 人教版初中數(shù)學(xué)同步講義八年級(jí)上冊(cè)專題提升02 解分式方程與分式方程的實(shí)際應(yīng)用(30題)(原卷版)
- 完整廣東梅大高速路面塌方災(zāi)害學(xué)習(xí)課件
- 2024版全新標(biāo)準(zhǔn)政府采購(gòu)合同(專用條款)
- (正式版)SH∕T 3553-2024 石油化工汽輪機(jī)施工及驗(yàn)收規(guī)范
- 倉(cāng)庫(kù)目視化管理
- 以房抵債過(guò)戶合同范本
- 重大版小學(xué)英語(yǔ)四年級(jí)下冊(cè)期末測(cè)試卷
評(píng)論
0/150
提交評(píng)論