基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計_第1頁
基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計_第2頁
基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計_第3頁
基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計_第4頁
基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEII基于JSP技術(shù)的網(wǎng)上書店系統(tǒng)的分析與設(shè)計摘要:互聯(lián)網(wǎng)絡(luò)技術(shù)在全球的廣泛使用,標(biāo)志著人類社會開始進(jìn)入了“網(wǎng)絡(luò)經(jīng)濟(jì)”時代?!熬W(wǎng)絡(luò)經(jīng)濟(jì)”時代一個最顯著的特征就是信息技術(shù)在傳統(tǒng)商業(yè)領(lǐng)域的應(yīng)用,即電子商務(wù)。網(wǎng)上書店作為電子商務(wù)的一種應(yīng)用形式,具有廣闊的發(fā)展前景。因此研究如何構(gòu)建高效可靠的網(wǎng)上書店系統(tǒng)具有實際意義。本文首先介紹了JSP和Java等相關(guān)技術(shù),針對網(wǎng)上書店的特點和系統(tǒng)的功能要求,對網(wǎng)站做出整體的規(guī)化。與其它電子商務(wù)網(wǎng)站類似,我所設(shè)計的網(wǎng)上書店系統(tǒng)由前臺系統(tǒng)和后臺管理系統(tǒng)組成,前臺系統(tǒng)是面向用戶的網(wǎng)頁界面,它是用戶直接訪問和進(jìn)行購買活動的地方。用戶可以在網(wǎng)上進(jìn)行注冊、登錄、書籍查詢、瀏覽、圖書訂購、查看訂單信息等操作。后前管理系統(tǒng)是網(wǎng)站所有者利用計算機(jī)對電子商務(wù)網(wǎng)站各種功能進(jìn)行管理、控制的系統(tǒng)。由于Web服務(wù)器、數(shù)據(jù)庫服務(wù)器多數(shù)情況下不在“本地”,所以后臺管理通常執(zhí)行的是遠(yuǎn)程控制管理。該網(wǎng)上書店后臺管理的功能主要實現(xiàn)圖書、用戶、訂單的管理。本系統(tǒng)用戶界面友好,模塊清晰,操作簡單,使用性強(qiáng),性能穩(wěn)定,易于推廣、維護(hù)和升級,具有廣泛的應(yīng)用前景。關(guān)鍵字:電子商務(wù),網(wǎng)上書店,MVC設(shè)計模式,JavaBeanTheanalysisanddesignoftheonlinebookstoresystembasedonJSPtechnologyAbstract:ThewidelyapplyingofInternettechnologyintheworldmarkedthathumansocietyhassteppedintotheInterneteconomyera.ThemostprominentfeatureoftheInterneteconomyistheapplicationofITintraditionalcommercefield,theso-calledE-commerce.Theon-linebookshopasakindofapplicationfortheE-commercehasagoodfuture.Hence,theresearchonhowtoconstructahighefficientandreliableonlinebookshopsystemisofquitepracticalmeanings.ThispaperhasintroducedtherelevanttechnologieslikeJSPandJAVAatfirst.Inviewofthecharacteristicsinternetbookstoreanditsfunctionrequirementofsystem,acompleteplanofthewebsitehasbeenmade.Idesigntheinternetbookstorecomprisedoftwoparts,frontgroundsystemandbackgroundmanagementsystem,justlikeanyotherE-businesswebsites.Thefrontgroundsystemfacestheusersdirectlyandisaplaceforusers’visitsandpurchasing.Userscanregister,signon,researchbooks,browse,orderandcheckorders,etc.backgroundmanagementsystemisfortheownerofthewebsitetomanageandcontrolitskindsoffunctions.BecausetheWebserveranddatabaseserverarenotatlocalmostofthetime,thebackgroundmanagementsystemusuallyplaysitsroleatfardistance,themainfunctionofitistorealizethemanagementofbooks,usersandorders.Thissystemownsfriendlyboundary,clearmould,easyoperation,convenienceforhandling,strongpracticability,stableperformance,andiseasytopromote,maintainandupdate.Besides,ithasextensiveappliedprospects.Keywords:ElectronicCommerce,on-linebookshop,Mode/View/Controllerdesignpattern,JavaBean目錄摘要 IAbstract II1緒論 11.1研究背景及意義 11.2國內(nèi)外的發(fā)展情況 11.3本論文的主要內(nèi)容 22網(wǎng)上書店系統(tǒng)的開發(fā)技術(shù)和模式 32.1Java技術(shù)介紹 32.2JavaServlet 32.4JSP開發(fā)的模式 52.5MVC 63網(wǎng)上書店系統(tǒng)的系統(tǒng)分析 83.1系統(tǒng)需求分析 83.2系統(tǒng)的組織結(jié)構(gòu)分析 83.3系統(tǒng)工作流程分析 93.3.1前臺流程 93.3.2后臺管理流程 93.3.3完整的購書架構(gòu) 103.4系統(tǒng)的數(shù)據(jù)流程分析 104網(wǎng)上書店系統(tǒng)的運(yùn)行環(huán)境及數(shù)據(jù)庫設(shè)計 124.1JSP的運(yùn)行環(huán)境 124.1.1JDK安裝和配置 124.1.2Tomcat的安裝和測試 124.2數(shù)據(jù)庫設(shè)計 134.2.1概念結(jié)構(gòu)設(shè)計 134.2.2邏輯結(jié)構(gòu)設(shè)計 145網(wǎng)上書店系統(tǒng)的界面設(shè)計與實現(xiàn) 175.1系統(tǒng)設(shè)計特點 175.1.1界面設(shè)計 175.1.2三層結(jié)構(gòu) 175.1.3面向?qū)ο蟪绦蛟O(shè)計 175.1.4人性化設(shè)計 175.2類的設(shè)計 175.2.1操作數(shù)據(jù)庫類(DBClass) 185.2.2檢測字符串類(StrClass) 195.3前臺用戶頁面設(shè)計 215.3.1主頁面index.jsp的設(shè)計 215.3.2用戶注冊模塊(userRegister.jsp) 225.3.3用戶登錄模塊(userLogin.jsp) 235.3.4圖書評論模塊(bookComment.jsp) 235.3.5用戶購書模塊(addCart.jsp) 245.4后臺管理模塊設(shè)計 255.4.1管理員登錄模塊(adminLogin.jsp) 255.4.2訂單管理模塊 255.4.3用戶管理模塊(customerManage.jsp) 265.4.4圖書管理模塊 266結(jié)論 28致謝 29參考文獻(xiàn) 30附錄 31附錄1:英文原文 31附錄2:中文譯文 35華北水利水電學(xué)院畢業(yè)設(shè)計PAGE401緒論1.1研究背景及意義隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)技術(shù)在現(xiàn)代社會的商業(yè)中的應(yīng)用日益廣泛和深入,在網(wǎng)絡(luò)技術(shù)逐漸滲入社會生活各個層面的今天,傳統(tǒng)的面對面的交易方式也面臨著變革,而通過網(wǎng)絡(luò)進(jìn)行書籍交易則是一個很重要的方向?;赪eb技術(shù)的網(wǎng)絡(luò)交易系統(tǒng)可以借助于遍布全球的Internet進(jìn)行,大大拓展了交易的靈活性。因此,通過網(wǎng)絡(luò)進(jìn)行交易將是以后進(jìn)行書籍交易一個重要的發(fā)展趨勢。網(wǎng)上書店是電子商務(wù)的一種具體形式,它主要是企業(yè)通過在互聯(lián)網(wǎng)上開設(shè)網(wǎng)上書店,消費(fèi)者通過網(wǎng)絡(luò)瀏覽圖書信息,并可以在網(wǎng)上下訂單,采用多種方式支付的一種經(jīng)營模式。目前國內(nèi)的這種商務(wù)網(wǎng)站大多是用ASP來編寫,但ASP有它的局限性,它是解釋運(yùn)行的,在多個客戶訪問的情況下會變得非常慢,而且網(wǎng)站服務(wù)器的負(fù)荷也很重,且只能運(yùn)行在微軟的操作系統(tǒng)和服務(wù)器上。JSP能夠適應(yīng)市場上85%的服務(wù)器產(chǎn)品,其安全機(jī)制、性能和速度均好于ASP。JSP不但能夠?qū)崿F(xiàn)跨平臺和兼容各種Web服務(wù)器產(chǎn)品,而且還能將強(qiáng)大的服務(wù)器端Java技術(shù)有機(jī)的融合到網(wǎng)頁中去,在JSP程序中采用的JavaBean技術(shù)封裝業(yè)務(wù)邏輯(功能實現(xiàn)部分),可以實現(xiàn)業(yè)務(wù)邏輯和前臺顯示的分離,使系統(tǒng)更加健壯和靈活。本系統(tǒng)采用的技術(shù)方案為JSP/Servlet+Mysql,即采用JSP作為Web服務(wù)器端開發(fā)語言,采用Tomcat作為Web服務(wù)器和JSP引擎,采用Mysql作為后臺網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng),這樣就實現(xiàn)了整個網(wǎng)上書店系統(tǒng)的構(gòu)建。1.2國內(nèi)外的發(fā)展情況2007年度美國電子商務(wù)達(dá)到了1024億美元,較2006年增長20%。美國電子商務(wù)零售額的逐季攀升顯示美國消費(fèi)者已逐漸把在線購物視為一種替代的購物方式。歷經(jīng)十年風(fēng)雨,亞馬遜依然領(lǐng)袖電子商務(wù)市場。創(chuàng)建于1995年的美國亞馬遜網(wǎng)上書店在短短的10年間迅速成長為全球500強(qiáng)企業(yè),不僅開創(chuàng)了圖書銷售模式的歷史新紀(jì)元,帶動全球電子商務(wù)的發(fā)展,而且給全球零售業(yè)帶來了巨大變革。我國自1997年開始探索網(wǎng)上圖書之路,隨著互聯(lián)網(wǎng)技術(shù)的突飛猛進(jìn)和網(wǎng)絡(luò)的普及,我國網(wǎng)上書店得到了空前發(fā)展。除有200多家出版社建立了自己的網(wǎng)站之外,專門性的網(wǎng)上書店也有幾百家,如當(dāng)當(dāng)、卓越網(wǎng)、貝塔斯曼在線均有30多萬種商品以上,其年銷售額均在1億元以上。目前我國網(wǎng)上書店采用的三種配送方式是本地讀者送書上門、外地讀者郵局投遞及利用加盟書店就近配送[2]。1.3本論文的主要內(nèi)容鑒于前面介紹的課題背景和國內(nèi)外概況,本課題將設(shè)計和實現(xiàn)一套基于B/S模式的網(wǎng)上書店系統(tǒng)。該系統(tǒng)采用window開發(fā)平臺,使用Java語言、JSP動態(tài)編程語言來實現(xiàn)。本文的主要內(nèi)容如下:(1)介紹一下本課題的研究背景和意義,國內(nèi)外網(wǎng)上書店的發(fā)展情況。(2)將JSP與ASP和PHP技術(shù)進(jìn)行比較,分析出JSP開發(fā)技術(shù)的先進(jìn)性,從而確定本系統(tǒng)所使用的技術(shù)。另外,介紹了本系統(tǒng)的開發(fā)模式,即MVC模式。(3)對網(wǎng)上書店系統(tǒng)進(jìn)行分析與設(shè)計,主要包括系統(tǒng)的需求分析、系統(tǒng)的組織結(jié)構(gòu)設(shè)計、系統(tǒng)的工作流程分析和系統(tǒng)的數(shù)據(jù)流程分析。(4)分析系統(tǒng)的開發(fā)環(huán)境,設(shè)計出數(shù)據(jù)的概念結(jié)構(gòu)和邏輯結(jié)構(gòu)。(5)對網(wǎng)上書店進(jìn)行詳細(xì)的設(shè)計與實現(xiàn)。2網(wǎng)上書店系統(tǒng)的開發(fā)技術(shù)和模式2.1Java技術(shù)介紹Java是一種簡單易用、完全面向?qū)ο?、具有平臺無關(guān)性且安全可靠的主要面向Internet的開發(fā)工具。自從1995年正式問世以來,Java的快速發(fā)展已經(jīng)讓整個Web世界發(fā)生了翻天覆地的變化[2]。在早期,Java比較多的用在瀏覽器上,插入到網(wǎng)頁中(即是JavaApplet程序),成為最靈活、最強(qiáng)大的網(wǎng)頁多媒體的載體,但由于Java虛擬機(jī)相對于個人電腦而言,有占用資源大,安全性相對較差等缺點,Applet逐漸的被后起之秀Flash所替代,但隨著JavaServlet的推出,Java在電子商務(wù)方面開始嶄露頭角,最新的JSP(JavaServerPage)技術(shù)的推出,更是讓Java成為基于Web的應(yīng)用程序的首選開發(fā)工具,目前的Java技術(shù)已成為所有大型電子商務(wù)項目的必然選擇[3]。2.2JavaServletServlet是一種獨立于平臺和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動態(tài)的Web頁面。Servlet是使用JavaServlet應(yīng)用程序設(shè)計接口及相關(guān)類和方法的Java程序,它在Web服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展了該服務(wù)器的能力。JavaServlet對于Web服務(wù)器就好像JavaApplet對于Web瀏覽器。Applet裝入Web瀏覽器并在Web服務(wù)器內(nèi)執(zhí)行,而Servlet則是裝入Web服務(wù)器并在Web瀏覽器內(nèi)執(zhí)行,而Servlet則是裝入Web服務(wù)器并在Web服務(wù)器內(nèi)執(zhí)行。JavaServletAPI定義了Servlet和服務(wù)器之間的一個標(biāo)準(zhǔn)接口,這使得Servlet具有跨服務(wù)器平臺的特性。Servlet通過創(chuàng)建一個框架擴(kuò)展服務(wù)器的能力,采用請求—響應(yīng)模式提供Web服務(wù)。當(dāng)客戶機(jī)發(fā)送請求至服務(wù)器時,服務(wù)器將請求信息發(fā)送給Servlet,Servlet生成響應(yīng)內(nèi)容并將其傳給Server,然后再由Server將響應(yīng)返回給客戶端。與傳統(tǒng)的CGI(CommonGatewayInterface公用網(wǎng)關(guān)接口)和許多其他類似CGI的技術(shù)相比,JavaServlet有許多優(yōu)點。在Servlet中,每個請求由一個輕量級的Java線程處理,如果處理請求的是N個線程,只是需要一份Servlet類代碼,具有很高的效率;Servlet提供了大量的實用工具例程,更容易使用;許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以由Servlet輕松地完成,功能更強(qiáng)大;Servlet用Java編寫,幾乎所有的主流服務(wù)器都江堰市直接或通過插件支持Servlet,具有更好的可移植性。在末來的技術(shù)發(fā)展過程中,Servlet有可能徹底取代CGI。JavaServlet是JSP技術(shù)的基礎(chǔ),大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成[5]。

2.3JSP與其它技術(shù)比較目前動態(tài)網(wǎng)頁的開發(fā)技術(shù)主要有三種:JSP、ASP、PHP.通過這三種開發(fā)技術(shù)的比較,我們可以看出JSP所具有的優(yōu)勢。三者都提供在HTML代碼中混合某種程序代碼、有語言引擎解釋執(zhí)行程序代碼的能力.在ASP、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通HTML頁面只依賴于Web服務(wù)器,而ASP、PHP、JSP頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP、PHP、JSP三者都面向服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。但JSP代碼被編譯成Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對JSP頁面的第一次請求時發(fā)生,因此采用JSP技術(shù)的頁面執(zhí)行速度較快。從應(yīng)用范圍來看,ASP是Microsoft開發(fā)的動態(tài)網(wǎng)頁語言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng),只能執(zhí)行于微軟的服務(wù)器產(chǎn)品,IIS(InternetInformationServer)和PWS(PersonalWebServer)上。在UNIX下也有ChiliSoft的組件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的群組合來擴(kuò)充,在UNIX的COM實現(xiàn)起來非常困難。PHP可在Windows、UNIX、Linux的Web服務(wù)器上正常運(yùn)行,還支持IIS、Apache等一般的Web服務(wù)器。用戶更換平臺時,無需變換PHP代碼,可即拿即用。JSP與PHP類似,幾乎可以執(zhí)行于所有平臺,如WindowsNT、Linux、UNIX.在WindowsNT下IIS通過一個外加服務(wù)器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服務(wù)器Apache已經(jīng)能夠支持JSP,由于Apache廣泛應(yīng)用在WindowsNT,UNIX和Linux上,因此JSP有更廣泛的執(zhí)行平臺。雖然現(xiàn)在WNT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面,UNIX的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。從一個平臺移植到另外一個平臺,JSP和javaBean甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。由于PHP本身存在一些缺點,使得它不適合應(yīng)用于大型電子商務(wù)站點,而更適合于一些小型的商業(yè)站點。首先,PHP缺乏規(guī)模支持;其次,它缺乏多層結(jié)構(gòu)支持??偨Y(jié)JSP的優(yōu)勢如下:(1)一次編寫多次運(yùn)行。系統(tǒng)多平臺支持。強(qiáng)大的可伸縮性。多樣化和功能強(qiáng)大的開發(fā)工具支持。2.4JSP開發(fā)的模式JSP規(guī)范提現(xiàn)了兩種用JSP技術(shù)建立應(yīng)用程序的方式,這兩種方式分別稱作JSPModel1和JSPModel2,如圖2.1和圖2.2所示[4]。圖2.1Model1的工作模式圖2.2Model2的工作模式Model1體系結(jié)構(gòu)把所有的代碼都放在JSP中或抽取部分邏輯代碼放于JavaBean中。這樣做的好處是簡單、開發(fā)快、易于實現(xiàn)。缺點是JSP頁面中存在著大量Java代碼,整個JSP頁面顯得混亂,可讀性差,難以維護(hù),代碼重用性低,還必須另外添加用于控制業(yè)務(wù)流程的代碼。Model1體系十分適合簡單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實現(xiàn)。Model2體系結(jié)構(gòu)是一種把JSP與Servlet聯(lián)合使用來實現(xiàn)動態(tài)內(nèi)容服務(wù)的方法。用JSP生成表達(dá)層的內(nèi)容,讓Servlet完成深層次的處理任務(wù)。Servlet充當(dāng)控制者的角色,負(fù)責(zé)完成接受請求,根據(jù)請求改變模型的數(shù)據(jù),在數(shù)據(jù)改變后,通知相關(guān)的視圖進(jìn)行刷新。Model2體系的優(yōu)點是JSP網(wǎng)頁專門用于表現(xiàn)數(shù)據(jù)而無需進(jìn)行其他操作,使得JSP頁面沒有或只含很少的Java代碼,使得頁面清晰,提高了可讀性,便于維護(hù)。Model2實現(xiàn)了業(yè)務(wù)邏輯、表示輸出和請求處理之間的分離,項目越復(fù)雜,使用Model2體系結(jié)構(gòu)的好處就越大。2.5MVC模型/視圖/控制器(MVC)模式源于傳統(tǒng)的面向?qū)ο笳Z言SmallTalk,它是第一個分開表示邏輯和業(yè)務(wù)邏輯的設(shè)計模式。MVC引入視圖(表示層)、模型(數(shù)據(jù))和和協(xié)調(diào)兩者的控制器。在出現(xiàn)MVC模式之前,用戶界面設(shè)計通常把這些層合并在一起,而MVC模式則把它們分離開,使各個模塊相對獨立,提高靈活性與復(fù)用性。MVC將應(yīng)用程序系統(tǒng)分為三個組成部分:

(1)模型(Model)

模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯,這是整個模型的核心。它表示的是解決方案空間的真正的邏輯。它采用面向?qū)ο蟮姆椒?,將問題領(lǐng)域中的對象抽象為應(yīng)用程序?qū)ο蟆T谶@些抽象的對象中封裝了對象的屬性和這些對象所隱含的邏輯。(2)視圖(View)

視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面,與Web應(yīng)用程序一樣,主管應(yīng)用程序與人之間的接口。一方面它為用戶提供了輸入手段,并觸發(fā)應(yīng)用邏輯運(yùn)行;另一方面,它又將邏輯運(yùn)行的結(jié)果以某種形式顯示給用戶。

(3)控制器(controller)

該部分是用戶與Model的接口。一方面它解釋來自于View的輸入,將其解釋成為系統(tǒng)能夠理解的對象,同時它也識別用動作,并將其解釋為對Model特定定方法的調(diào)用;另一方面,它處理來自于Model的事件和Model邏輯執(zhí)行的結(jié)果,調(diào)用適當(dāng)?shù)腣iew為用戶提供反饋。在三者的關(guān)系中,Controller接收使用者的消息,要求Model處理應(yīng)用領(lǐng)域的資料:Model告訴View,讓View知道Model的內(nèi)容已更新,View接獲通知并進(jìn)行準(zhǔn)備工作,就緒了才要求Model送來新內(nèi)容,顯示于視窗里[6]。Model、View、Controller三者的動態(tài)協(xié)作關(guān)系如下圖:

圖2-3MVC組件類型的關(guān)系和功能MVC框架的出現(xiàn)不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性。3網(wǎng)上書店系統(tǒng)的系統(tǒng)分析3.1系統(tǒng)需求分析網(wǎng)上書店系統(tǒng)主要是實現(xiàn)網(wǎng)上選書、購書、產(chǎn)生訂單等功能的系統(tǒng)。一個典型的網(wǎng)上商城一般都需要實現(xiàn)商品信息的動態(tài)提示、購物車管理、客戶信息注冊登錄管理、訂單處理等模塊。根據(jù)網(wǎng)上書店的基本需求,本系統(tǒng)需要完成的具體任務(wù)如下:書圖查詢:當(dāng)客戶進(jìn)入網(wǎng)上書店時,應(yīng)該在主頁面中顯示的書目信息,以供客戶選擇所需圖書,同時也應(yīng)該提供按照圖書名稱快速查詢所需書目信息的功能。購物車管理:當(dāng)客戶選擇購買某圖書產(chǎn)品時,應(yīng)該能夠?qū)?yīng)圖書信息,如:價格、數(shù)量記錄到對應(yīng)的購物車中,并允許客戶返回書目查詢頁面,選擇其他商品,并添加到購物車中,當(dāng)對應(yīng)的購物訂單生成后,應(yīng)該能夠自動清除以生成訂單的購物車中的信息。訂單處理:對應(yīng)客戶購買圖書商品信息的需求,在確定了所購圖書商品的價格、數(shù)量等信息后,提示用戶選擇對應(yīng)的送貨方式及付款方式,最終生成對應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進(jìn)行后續(xù)的出貨、送貨的處理。會員注冊:為能夠?qū)崿F(xiàn)圖書商品的購買,需要管理客戶相關(guān)的聯(lián)系方式等信息。3.2系統(tǒng)的組織結(jié)構(gòu)分析作為一個完整的網(wǎng)上書店系統(tǒng),其系統(tǒng)架構(gòu)如下圖:圖3-1系統(tǒng)的組織結(jié)構(gòu)圖3.3系統(tǒng)工作流程分析網(wǎng)上書店系統(tǒng)貫穿著這樣三個流程:前臺流程、后臺管理流程、完整的購書流程。3.3.1前臺流程下圖描述了網(wǎng)上書店的前臺流程:圖3-2系統(tǒng)前工作流程圖在前臺子系統(tǒng)中,用戶可以直接瀏覽圖書和進(jìn)行圖書查詢。用戶登錄和注冊后,便可以查看用戶信息、修改用戶信息和密碼、查看圖書詳細(xì)資料、將圖書加入購物車。購物車是一個圖書的臨時存放地,用戶可以對購物車進(jìn)行管理,如刪除圖書或修改購買的數(shù)量。用戶完全選定了要購買的圖書后,就可以提交購物車并生成訂單,系統(tǒng)會提示提交成功,并顯示訂單號,前臺的用戶操作流程就結(jié)束了。此后用戶還可以查詢定單的執(zhí)行情況。3.3.2后臺管理流程下圖描述了網(wǎng)上書店的后臺管理流程:圖3-3系統(tǒng)的后臺管理工作流程圖后臺各個流程之間的關(guān)系相對獨立一些,所以后臺的管理流程相對來說簡單一些,不同流程對應(yīng)的功能模塊之間也基本獨立,基本上是一種平行關(guān)系。3.3.3完整的購書架構(gòu)如果合并用戶的前臺購書流程和管理員的后臺管理流程,就會得到完整的購書流程,如圖3-4所示。系統(tǒng)的購書流程貫穿于整個系統(tǒng)之中,是連接前、后臺的核心流程。用戶在前臺瀏覽和查詢圖書,然后將圖書放入購物車,通過提交購物車,生成圖書訂單,并實際支付,網(wǎng)上書店后臺系統(tǒng)收到付款后根據(jù)訂單發(fā)貨,最后用戶收到圖書并確認(rèn),這就是完成了整個購書流程。圖3.4系統(tǒng)的購書流程圖3.4系統(tǒng)的數(shù)據(jù)流程分析數(shù)據(jù)流圖描述數(shù)據(jù)流動、存儲、處理的邏輯關(guān)系,也稱為邏輯數(shù)據(jù)流程圖,一般用DFD表示。數(shù)據(jù)流程圖是系統(tǒng)分析員調(diào)查業(yè)務(wù)過程,與用戶交換思想的工具。因此,數(shù)據(jù)圖應(yīng)該簡明易懂。設(shè)計好數(shù)據(jù)流圖有利于后面的設(shè)計,有利于整個系統(tǒng)的實現(xiàn)[7]。網(wǎng)上書店頂層數(shù)據(jù)流圖如下圖3-5所示。圖3.5網(wǎng)上書店頂層數(shù)據(jù)流圖網(wǎng)上書店一層數(shù)據(jù)流圖如下圖3-6所示。圖3-6網(wǎng)上書店一層數(shù)據(jù)流圖網(wǎng)上書店二層數(shù)據(jù)流圖如下3.7所示:圖3-7網(wǎng)上書店二層數(shù)據(jù)流圖4網(wǎng)上書店系統(tǒng)的運(yùn)行環(huán)境及數(shù)據(jù)庫設(shè)計本系統(tǒng)采用的技術(shù)方案為JSP+Tomcat+MysSql,即使用JSP作為Web服務(wù)器端開發(fā)語言,采用Tomcat作為Web服務(wù)器和JSP引擎,采用MySql作為后臺網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng)。4.1JSP的運(yùn)行環(huán)境要開發(fā)JSP應(yīng)用程序,服務(wù)器端必須有相應(yīng)的開發(fā)環(huán)境,開發(fā)環(huán)境主要有以下兩部分組成:JDK(JavaDeveloperKit,Java開發(fā)工具包)、JSP服務(wù)器。4.1.1JDK安裝和配置JDK是Sun公司免費(fèi)提供的Java語言開發(fā)工具,它包含了Java開發(fā)中所不同必需的開發(fā)工具和Java運(yùn)行環(huán)境(JRE-JavaRunEnvironment),是Java應(yīng)用程序開發(fā)的基礎(chǔ)。我們可以在Sun公司的官方網(wǎng)站上下載JDK,安裝的路徑為D:\ProgramFiles\Java\jdk1.5.0_14安裝完JDK后,需要配置環(huán)境變量。配置環(huán)境變量的目的是讓操作系統(tǒng)自動查找所需國的命令文件所在的目錄。新建系統(tǒng)變量名“JAVA_HOME”,變量值:D:\ProgramFiles\Java\jdk1.5.0_14在系統(tǒng)變量“Path”中添加變量值“.;D:\ProgramFiles\Java\jdk1.5.0_14\bin”.新建用戶變量名“CLASSPATH”,變量值:“.;D:\ProgramFiles\Java\jdk1.5.0_14\lib\dt.jar;D:\ProgramFiles\Java\jdk1.5.0_14\lib\tools.jar;”安裝并配置完成后編寫一個簡單的Java程序HelloWorld.java,在命令行狀態(tài)下編譯、運(yùn)行成功。4.1.2Tomcat的安裝和測試Tomcat服務(wù)器是在Sun公司的JSWDK(JavaWeb服務(wù)器開發(fā)工具包)的基礎(chǔ)上發(fā)展而來的一個優(yōu)秀的JavaWeb服務(wù)器,它是由JavaSoft和Apache開發(fā)團(tuán)隊共同提出合作計劃的產(chǎn)品,它還可以和目前大部分的主流HTTP服務(wù)器(如Apache服務(wù)器)一起工作,且性能穩(wěn)定、效率高。Eclipse是一個可視化設(shè)計的Java語言開發(fā)環(huán)境,它可以自動生成各種Java語言應(yīng)用的向?qū)?,Java語言程序開發(fā)者可以在eclipse單一的環(huán)境中進(jìn)行創(chuàng)建、修改、編譯、運(yùn)行、調(diào)試和封裝Java語言應(yīng)用程序和Applet小程序。Eclipse編程環(huán)境對于面向?qū)ο缶幊潭愿庇^、更容易使用。我所設(shè)計的網(wǎng)上書店系統(tǒng)中的Java程序和JSP都是在eclipse開發(fā)環(huán)境中創(chuàng)建、編譯、運(yùn)行和調(diào)試的[8]。4.2數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息。在動態(tài)網(wǎng)站的設(shè)計中,數(shù)據(jù)庫設(shè)計的重要性不言而喻。合理地設(shè)計數(shù)據(jù)庫結(jié)構(gòu)可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和統(tǒng)一。如果設(shè)計不當(dāng),查詢起來就非常吃力,程序的性能也會受到影響[9]。4.2.1概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是在需求分析的基礎(chǔ)上對所有數(shù)據(jù)要求按一定方法進(jìn)行抽象與綜合處理,設(shè)計出不依賴于某種具體DBMS的滿足用戶應(yīng)用需求的信息結(jié)構(gòu)。這種信息結(jié)構(gòu)我們稱為概念模型。最常用的概念結(jié)構(gòu)設(shè)計方法有實體分析法、面向?qū)ο笤O(shè)計方法、屬性綜合法和規(guī)范化關(guān)系方法。我在本系統(tǒng)設(shè)計中主要用的是實體分析法,這是一種自上而下抽象的方法。根據(jù)我對數(shù)據(jù)的需求分析,確定系統(tǒng)范圍,確定實體及其屬性,畫出系統(tǒng)的E-R圖如下。圖4-1用戶購書子系統(tǒng)E-R圖圖4-2后臺管理子系統(tǒng)E-R圖4.2.2邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)是把概念模型,也就是上面的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型的方法。下面是具體的轉(zhuǎn)化結(jié)果,即所對應(yīng)具體的數(shù)據(jù)庫表。表4-1系統(tǒng)數(shù)據(jù)庫bookshop中使用的所有表表名說明admin保存管理員帳號和密碼book保存圖書信息bookcomment保存用戶信息customer保存用戶信息orderlist保存每一份訂單中所包含的各種圖書信息userorder保存訂單信息下面是各個表的詳細(xì)信息。表4-2管理員信息表admin字段名稱數(shù)據(jù)類型說明id文本管理員帳號password文本管理員密碼表4-2圖書信息表book字段名稱數(shù)據(jù)類型說明id文本圖書編號name文本書名author文本作者publisher文本出版社type文本圖書類別ifNew文本是否為推薦書price文本單價表4-3書評信息表bookcomment字段名稱數(shù)據(jù)類型說明id文本書評編號bookId文本被評論圖書的書號userId文本評論者comment文本書評內(nèi)容stars文本總體評價表4-4用戶信息表customer字段名稱數(shù)據(jù)類型說明id文本用戶帳號password文本密碼name文本姓名sex文本性別address文本地址code文本郵政編碼tel文本電話email文本E-mail表4-5訂單項信息表orderlist字段名稱數(shù)據(jù)類型說明id文本訂單號user文本用戶帳號book文本書號sum文本數(shù)量money文本共計金額表4-6訂單信息表userorder字段名稱數(shù)據(jù)類型說明id文本帳單編號user文本用戶帳號day文本提交訂單的日期money文本訂單總額各表之間除了customer表和bookcomment表之間的關(guān)系不實施參照完整性以外(即在customer表中刪除用戶的同時,不必對bookcomment內(nèi)的相關(guān)內(nèi)容進(jìn)行更新,因為游客也可以參與評論圖書),其他都是“實施參照完整性”和“級聯(lián)刪除相關(guān)記錄”的,所有的關(guān)系都是“一對多”類型。各表的關(guān)系如下表如示:表4-7各表之間的關(guān)系左表左表字段右表右表字段bookidbookcommentbookidcustomeridbookcommentuseridcustomeriduserorderuseruserorderidorderlistid5網(wǎng)上書店系統(tǒng)的界面設(shè)計與實現(xiàn)5.1系統(tǒng)設(shè)計特點5.1.1界面設(shè)計本系統(tǒng)在界面設(shè)計上采用了模塊化的思想,把很多頁面共有部分單獨集成一個模塊,例如頁面的頭、尾等,在開發(fā)系統(tǒng)時,遇到這些相同的頁面部分就不需要重復(fù)編寫,而只要在相應(yīng)位置上加上<jsp:includepage="/utility/siteName.jsp"/>即可,大大提高了開發(fā)效率。5.1.2三層結(jié)構(gòu)本系統(tǒng)采用三層結(jié)構(gòu)設(shè)計,即程序邏輯結(jié)構(gòu)分為用戶表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層。由于網(wǎng)上書店系統(tǒng)的功能較強(qiáng),相應(yīng)的代碼設(shè)計比較復(fù)雜,JSP網(wǎng)頁文本也會變得龐大,需要大量的嵌入Java代碼和HTML語句,其中,Java代碼為邏輯代碼,即這些代碼用來完成所需要的功能。嵌入Java代碼、HTML語句、JavaScript語句,使編寫和維護(hù)JSP和JavaBean結(jié)合起來,業(yè)務(wù)邏輯處理層采用JavaBean實現(xiàn),然后在JSP網(wǎng)頁中調(diào)用,而JSP文本著重是網(wǎng)頁界面設(shè)計,這會使JSP網(wǎng)頁變得清晰,可以節(jié)省軟件開發(fā)時間,系統(tǒng)的安全性、可維護(hù)性、重用性和可擴(kuò)展性都大大提高[9]。5.1.3面向?qū)ο蟪绦蛟O(shè)計在本系統(tǒng)中將操作數(shù)據(jù)庫、存儲圖書信息、組成購物車、用戶信息等都封裝成相應(yīng)的類,同時每個類又都有與其對應(yīng)的操作類,從而再次提高了對數(shù)據(jù)庫操作的安全性和程序的可擴(kuò)展性[10]。5.1.4人性化設(shè)計本系統(tǒng)導(dǎo)航清晰,操作方便、簡單,不管理用戶位于本“書店”的任何地方,都不會迷路。5.2類的設(shè)計在本系統(tǒng)中,為了實現(xiàn)前臺顯示和業(yè)務(wù)邏輯的分離,使系統(tǒng)更加健壯和靈活,將網(wǎng)上書店中的公共類進(jìn)行了封裝,都封裝在Javabean里,主要包括操作數(shù)據(jù)庫的公共類、檢測字符串類、儲存用戶信息類、存儲圖書信息類、組成購物車類。5.2.1操作數(shù)據(jù)庫類(DBClass)網(wǎng)上書店系統(tǒng)中涉及到數(shù)據(jù)庫操作的JSP頁面或Servlet都會用到它。該類含有對數(shù)據(jù)庫操作的各種方法,如連接數(shù)據(jù)庫、查詢/更新數(shù)據(jù)庫以及關(guān)閉數(shù)據(jù)庫連接等。 /*連接數(shù)據(jù)庫*/ publicvoidconnect(){ try{ Class.forName(driver); connection=DriverManager.getConnection(url,username,password); statement=connection.createStatement(); }catch(ClassNotFoundExceptioncnfe){ message="connection:"+cnfe; }catch(SQLExceptionsqle){ message="executeQuery:"+sqle; } } /*執(zhí)行SQL查詢并返回結(jié)果*/ publicResultSetexecuteQuery(Stringquery){ ResultSetresultset=null; try{ resultset=statement.executeQuery(query); }catch(SQLExceptionsqle){ message="executeQuery:"+sqle; } returnresultset; } /*執(zhí)行數(shù)據(jù)庫更新操作*/ publicvoidexecuteUpdate(Stringcommand){ try{ statement.executeUpdate(command); }catch(SQLExceptionsqle){ message="executeUpdate:"+sqle; } }publicDBClass(Stringdriver,Stringurl,Stringusername,Stringpassword){ this.driver=driver; this.url=url; this.username=username; this.password=password; this.connection=null; this.statement=null; this.message=""; } /*關(guān)閉數(shù)據(jù)庫連接*/ publicvoidcloseConnection(){ try{ connection.close(); }catch(SQLExceptionsqle){ message="closeConnection:"+sqle; } }}5.2.2檢測字符串類(StrClass)StrClass是負(fù)責(zé)對字符串進(jìn)行檢測和轉(zhuǎn)化的公用類。在網(wǎng)上書店系統(tǒng)中,經(jīng)常需要判斷字符串是否為數(shù)字或E-mail地址,另外,由于表單參數(shù)全部都是以字符串形式來傳遞的,因此我們常常需要將字符串轉(zhuǎn)化為整數(shù)或浮點數(shù),StrClass類就提供了這些方法。下面是主要的方法的的實現(xiàn)。/*測試字符串是否為數(shù)字:是,返回true;否則返回false*/ publicbooleanisNum(){ booleanbool=true; for(inti=0;i<str.length();i++){ charch=str.charAt(i); if(!Character.isDigit(ch)){ bool=false; break; } } returnbool; } /*測試字符串是否為E-mail地址:是返回true;否則返回false*/ publicbooleanisEmail(){ if(str.indexof("@")==-1){ returnfalse; }elseif(str.indexof(".",str.indexof("@"))==-1){ returnfalse; }else{ returntrue; } } /*將字符串轉(zhuǎn)化為整數(shù)*/ publicinttoInt(){ returnInteger.parseInt(str); } publicfloattoFloat(){ returnFloat.parseFloat(str); }5.3前臺用戶頁面設(shè)計5.3.1主頁面index.jsp的設(shè)計我所設(shè)計的網(wǎng)上書店名為bookshoponline,該書店的主頁如下圖所示:圖5-1網(wǎng)上書店主頁面圖Index.jsp是我們網(wǎng)上書店的首頁,用戶以及管理員的一切操作都是從這里開始的。在index.jsp代碼中(代碼見系統(tǒng)),可以看到有這樣的一段反復(fù)的代碼:<pclass="bookInfo">作者:<%=book.getAuthor()%></p><pclass="bookInfo">出版社:<%=book.getPublisher()%></p><pclass="bookInfo">類別:<%=book.getType()%></p><pclass="bookInfo">單價:¥<%=book.getPrice()%></p>這些代碼負(fù)責(zé)顯示圖書信息,并且在顯示圖書信息的時候使用了動態(tài)技術(shù),即并沒有將圖書信息直接寫入頁面。這樣當(dāng)圖書信息發(fā)生變化時,不需要修改頁面代碼,十分方便。相對應(yīng)的,我使用了一個vector類型的變量booklist來存儲要顯示的圖書信息。Vector是Java語言中的一個數(shù)據(jù)類型,是一個對象數(shù)組,它的每一個元素都是一個對象。具體到這個程序中,booklist就是一個BookInf類的對象(book)的數(shù)組,而BookInf正是用來存儲圖書信息的JavaBean.因此,index.jsp只需要從booklist中讀出這些信息并將它們顯示出來就可以了,今后即使數(shù)據(jù)庫中圖書信息發(fā)生了變化,我們也不必修改index.jsp中的代碼。Booklist這個變量是由一個Servlet(ShowBook.java)創(chuàng)建的。ShowBook.java根據(jù)請求判斷哪些圖書需要被顯示,然后從數(shù)據(jù)庫中讀出這些圖書的信息,并將它們儲存到booklist中,最后將這個變量寫入會話上下文中供index.jsp讀取。這是一個典型的MVC結(jié)構(gòu)。5.3.2用戶注冊模塊(userRegister.jsp)用戶注冊模塊的功能是接受用戶注冊,在檢查過用戶注冊數(shù)據(jù)的合法性后將用戶信息寫入數(shù)據(jù)庫。下面是用戶注冊模塊圖:圖5-2用戶注冊模塊圖在用戶注冊模塊中,同樣用到了MVC框架。在用戶注冊的代碼中,userInf和errInf是由UserRegister.java創(chuàng)建的兩個Bean。其中userInf存儲在userRegister.jsp中填入的信息,這些信息經(jīng)過UserRegister.java檢查后,合法的信息將被保留下來,這樣一來,當(dāng)用戶信息中含有不合法的數(shù)據(jù)并要求用戶重新填寫時,那些不合法信息則不必再次填寫。另外,errInf儲存的是錯誤提示信息,當(dāng)表單數(shù)據(jù)中含有不合法數(shù)據(jù)時,這些信息會被顯示出來提示用戶。5.3.3用戶登錄模塊(userLogin.jsp)用戶登錄模塊負(fù)責(zé)檢查用戶的登錄信息,具體地說說是檢查用戶填寫的帳號和密碼是否相符合,如果是則完成用戶登錄,否則重新轉(zhuǎn)到登錄表單并提示錯誤信息。下面是登錄頁面圖:圖5-3用戶登陸圖5.3.4圖書評論模塊(bookComment.jsp)用戶在index.jsp中點擊圖書封面的圖標(biāo),可以進(jìn)入圖書評論系統(tǒng)。在這個系統(tǒng)中,用戶(以登錄的用戶或游客身份)可以查看其他人對該書的評論并發(fā)表自己的評論。在這個模塊中,只需要提供一個頁面提供一個頁面顯示用戶對該圖書的評論,并在這個頁面中包含一個表單,使用戶可以添加書評。圖5-4圖書評論圖5.3.5用戶購書模塊(addCart.jsp)用戶購書模塊是網(wǎng)上書店系統(tǒng)中最核心也是最復(fù)雜的模塊,它負(fù)責(zé)完成用戶用戶對訂單的查詢、修改及提交等操作。我把些模塊又分為四個小模塊,分別為:購書模塊、修改訂單模塊、提交訂單模塊、提交訂單模塊、查看歷史訂單模塊。(1)購書模塊(addCart.jsp)在用戶開始購書的時候,系統(tǒng)會為其創(chuàng)建一個購物車(一個儲存訂單信息的Bean)。所謂的購書過程,其實就是將用戶選中的圖書的書號等信息儲存到購物車的過程。購物車是一個vector的變量,它的每一個元素都是一個CarInf類(Bean)。用戶向購物車中添加圖書的操作十分簡單,只需要在index.jsp中單擊Addtoshoppingcart圖標(biāo)并在彈出窗口中填入需要的數(shù)量即可。提交成功后,給出確認(rèn)信息。修改訂單模塊(mycart.jsp)在修改用戶信息中,包含兩種操作,即從購物車中刪除某種圖書和修改欲購圖書數(shù)量。從某種程度上來說,這兩個操作其實可以認(rèn)為是一個,因為將數(shù)量修改為0就是刪除了該種圖書。我在用ChangeOrder.java實現(xiàn)修改訂單功能時就是本著這樣的一個思路。若用戶在訂購數(shù)量欄中輸入了非整數(shù),則系統(tǒng)會出現(xiàn)錯誤提示信息。如果用戶想取消訂購某種圖書,只需單擊“我不要了”按鈕,系統(tǒng)會自動將該圖書從購物車中刪除。圖5-5修改訂單圖提交訂單模塊(SubmitOrder.java)提交訂單模塊只需將購物車中的圖書信息寫入數(shù)據(jù)庫中就行了。不過由于我將訂單信息與訂單項信息是分開在兩個表里加以存儲的,因為這兩個表之間存在著參照完整性規(guī)則約束,因此這一操作將要涉及到兩個表的同時更新。提交訂單只能由已登錄用戶來完成。雖然系統(tǒng)也會為游客創(chuàng)建購物車,但在提交訂單時要求用戶必須登錄,否則提交訂單是沒有任何意義的,因為游客沒有登記過任何的資料,無法將其所購圖書遞交給他。這一點在Servlet中反映為在提交用戶訂單會檢查用戶是否登錄,如果沒有則提示用戶只有登錄以后才能順利完成操作。查看歷史訂單模塊(UserOrder.jsp)訂單提交以后就變成了歷史訂單,用戶可以通過單擊導(dǎo)航欄中的“歷史訂單”鏈接來查看這些訂單,userOrder.jsp就是負(fù)責(zé)這項任務(wù)。圖5-6歷史訂單圖5.4后臺管理模塊設(shè)計5.4.1管理員登錄模塊(adminLogin.jsp)管理員可以通過index.jsp頁面的管理員入口進(jìn)入管理登錄表單頁面。圖5-6管理員登陸圖5.4.2訂單管理模塊訂單管理主要完成查詢操作,包括訂單詳細(xì)信息查詢和用戶信息查詢。圖5-7訂單管理圖5.4.3用戶管理模塊(customerManage.jsp)用戶管理包含兩種操作,即管理員對用戶信息的查詢和刪除。我用了一個JSP頁面顯示所有注冊用戶信息??紤]到網(wǎng)站注冊用戶的數(shù)量會比較多,因此我用了分頁顯示功能,當(dāng)一頁顯示不下的時候,用戶可以通過“上一頁”或“下一頁”鏈接來翻頁。為了實現(xiàn)刪除用戶功能,我在用戶管理頁面上設(shè)置一個表單,這個表單為每一個用戶分配了一個復(fù)選框。當(dāng)管理員要刪除哪個用戶的時候,只需要選中它的復(fù)選框,然后單擊刪除按鈕提交表單。圖5-8用戶管理圖5.4.4圖書管理模塊圖書管理模塊涉及刪除圖書、查看和刪除圖書評論以及修改圖書信息等。刪除圖書是由一個Servlet(DeleteBook.java)負(fù)責(zé)的,在刪除圖書之后,要將用戶對該書的書評一起刪除。圖5-9圖書管理圖6結(jié)論其于JSP的網(wǎng)上書店系統(tǒng)的設(shè)計與開發(fā)是源于信陽市內(nèi)一家中型書店的需求來進(jìn)行的。該系統(tǒng)由前臺和后臺兩個子系統(tǒng)構(gòu)成,前臺系統(tǒng)實現(xiàn)了網(wǎng)上購書、動態(tài)查詢、用戶注冊、登錄等功能模塊。后臺系統(tǒng)由管理負(fù)責(zé)維護(hù)和管理數(shù)據(jù)庫的圖書信息、用戶信息和訂單信息,保證數(shù)據(jù)庫中數(shù)據(jù)的一致性。在系統(tǒng)的設(shè)計開發(fā)過程中,采用面向?qū)ο蟮姆椒ê湍K化的設(shè)計,針對網(wǎng)上書店的特點和系統(tǒng)的功能要求,對網(wǎng)站做出整體的規(guī)化,使整個系統(tǒng)流程清晰、邏輯合理,為系統(tǒng)的實現(xiàn)創(chuàng)造了良好的條件。該系統(tǒng)采用當(dāng)前比較流行的Java和JSP等技術(shù)構(gòu)建,采用MVC架構(gòu),是基于B/S應(yīng)用體系結(jié)構(gòu)的一個應(yīng)用,實現(xiàn)了業(yè)務(wù)邏輯、前臺頁面和數(shù)據(jù)存儲層的分離,任何一層的變化,不會影響其他兩層,使系統(tǒng)更加健壯和靈活,能夠適應(yīng)系統(tǒng)的不斷變化和發(fā)展。由于時間精力和技術(shù)有限,網(wǎng)上書店系統(tǒng)還存在些缺點,功能也不夠完善。如沒有購書流程說明,沒有缺貨統(tǒng)計,沒有支付方式。這些方面還有待改進(jìn)??偟膩碚f,此次畢業(yè)設(shè)計完成了學(xué)校規(guī)定的各項要求,在學(xué)習(xí)Java語言等內(nèi)容的基礎(chǔ)上,進(jìn)一步學(xué)習(xí)實踐了網(wǎng)頁制作、Web服務(wù)器安裝、網(wǎng)絡(luò)數(shù)據(jù)庫操作、JSP程序設(shè)計等多種實用技術(shù),還學(xué)習(xí)了MVC模式,成功設(shè)計出了一個功能基本齊全的電子商務(wù)網(wǎng)站。既學(xué)習(xí)了不少新的知識和技術(shù),又親身體驗軟件設(shè)計、開發(fā)的過程,個人覺的收獲頗豐。致謝時光荏苒,轉(zhuǎn)眼間已在華北水利水電學(xué)院學(xué)習(xí)了四年的時間,這四年的學(xué)習(xí)生涯,不僅是我豐富個人知識的重要階段,也是我提升自身素質(zhì)與能力的關(guān)鍵時期。在此,我首先向?qū)W識淵博、治學(xué)嚴(yán)謹(jǐn)、誨人不倦的導(dǎo)師楊雪教授表示最衷心的感謝。從最初的開題報告到系統(tǒng)的設(shè)計、開發(fā)以及在論文的撰寫過程中都得到了楊老師的精心的指導(dǎo),在導(dǎo)師的熱心教導(dǎo)與關(guān)懷下我的論文得以須利完成;楊教授治學(xué)嚴(yán)謹(jǐn)?shù)膽B(tài)度,做人的方式,讓我終生受益。在整個的設(shè)計過程中,韓紅旗老師和張?zhí)鞓蚶蠋熥詈?,感謝所有的教師四年來給予我精心的指導(dǎo),傳授我科學(xué)文化知識,教導(dǎo)我做人的道理,提升我自身的素質(zhì);感謝同窗好友四年來在生活方面給我的幫助,讓我在0482班感受到了陽光;感謝我的父母,感謝多年來對我的養(yǎng)育之恩。參考文獻(xiàn)[1]林珊如.書籍網(wǎng)站信息組織架構(gòu)與瀏覽接口設(shè)計的考量:以亞馬遜網(wǎng)絡(luò)為例[J].大學(xué)圖書館.1990.5.[2]嚴(yán)衛(wèi)青,朱沈鈺.國內(nèi)外網(wǎng)上書店比較[J].情報探索.2005.

[3]江義華.Java完美經(jīng)典[M].北京:中國鐵道出版社,2004.

[4]耿祥義.Java2實用教程[M].北京:清華大學(xué)出版社,2004.[5]ChristianKirkeggaardandAndersMoller.StaticAnalysisforJavaServletsandJSP[J],ComputerScience,StaticAnalysis.2005.[6]張軍.JSP網(wǎng)絡(luò)應(yīng)用開發(fā)例學(xué)與實踐[M].北京:清華大學(xué)出版社,2006.[7]鄺孔武,王曉敏.信息系統(tǒng)分析與設(shè)計[M].北京:清華大學(xué)出版社,2006.

[8]朱敏,朱晴婷,李媛媛.JSPWeb應(yīng)用教程[M].北京:北京交通大學(xué)出版社,2004.

[9]張海藩.軟件工程[M].北京:人民郵電出版社,2002.

[10]CayS.horstmann,Garycornell.CoreJava2volumeⅡ--AdvancedFeatures,ServenthEdition[M].2004.[11]AlainLeroy,J2EEand.NET:InteroperabilitywithWebservices,LectureNotesinComputerScience[J],2004.[12]黃梯云,李一軍.管理信息系統(tǒng)[M].高等教育出版社,2000.[13]何成萬,余秋惠.MVC模式2及軟件框架Struts的研究[J].計算機(jī)工程學(xué)報,2006.[14]王軍.MySQL從入門到精通[M].電子工業(yè)出版社,2003.[15]趙玉彬,基于B/S模式的MIS系統(tǒng)的開發(fā)[J],科技論壇.2005.附錄附錄1:英文原文TheDesignofJDBCFromthestart,thedevelopersoftheJavatechnologyatSunwereawareofthepotentialthatJavashowedforworkingwithdatabases.Startingin1995,theybeganworkingonextendingthestandardJavalibrarytodealwithSQLaccesstodatabases.WhattheyfirsthopedtodowastoextendJavasothatitcouldtalktoanyrandomdatabase,usingonly"pure"Java.Itdidn'ttakethemlongtorealizethatthisisanimpossibletask:Therearesimplytoomanydatabasesoutthere,usingtoomanyprotocols.Moreover,whiledatabasevendorswereallinfavorofSunprovidingastandardnetworkprotocolfordatabaseaccess,theywereonlyinfavorofitifSundecidedtousetheirnetworkprotocol.WhatallthedatabasevendorsandtoolvendorsdidagreeonwasthatitwouldbeusefulifSunprovidedapureJavaAPIforSQLaccessalongwithadrivermanagertoallowthird-partydriverstoconnecttospecificdatabases.Databasevendorscouldprovidetheirowndriverstoplugintothedrivermanager.Therewouldthenbeasimplemechanismforregisteringthird-partydriverswiththedrivermanagerthepointbeingthatallthedriversneededtodowasfollowtherequirementslaidoutinthedrivermanagerAPI.Asaresult,twointerfaceswerecreated.ApplicationprogrammersusetheJDBCAPI,anddatabasevendorsandtoolprovidersusetheJDBCDriverAPI.ThisorganizationfollowstheverysuccessfulmodelofMicrosoft'sODBC,whichprovidedaCprogramminglanguageinterfacefordatabaseaccess.BothJDBCandODBCarebasedonthesameidea:ProgramswrittenaccordingtotheAPItalktothedrivermanager,which,inturn,usesthedriversthatarepluggedintoittotalktotheactualdatabase.AllthismeanstheJDBCAPIisallthatmostprogrammerswilleverhavetodealwithseeFigure4.1NOTEYoucanuseJDBCinapplets,butyouprobablydon'twantto.Bydefault,thesecuritymanagerpermitsadatabaseconnectiononlytotheserverfromwhichtheappletisdownloaded.Thatmeansthewebserverandthedatabaseservermustbethesamemachine,whichisnotatypicalsetup.Youwouldneedtosigntheapplettoovercomethisproblem.Moreover,theappletwouldneedtoincludetheJDBCdriver.JDBCDriverTypesJDBCdriversareclassifiedintothefollowingtypes:Atype1drivertranslatesJDBCtoODBCandreliesonanODBCdrivertocommunicatewiththedatabase.Sunincludesonesuchdriver,theJDBC/ODBCbridge,withtheJDK.However,thebridgerequiresdeploymentandproperconfigurationofanODBCdriver.WhenJDBCwasfirstreleased,thebridgewashandyfortesting,butitwasneverintendedforproductionuse.Atthispoint,plentyofbetterdriversareavailable,andweadviseagainstusingtheJDBC/ODBCbridge.Atype2driveriswrittenpartlyinJavaandpartlyinnativecode;itcommunicateswiththeclientAPIofadatabase.Whenyouusesuchadriver,youmustinstallsomeplatform-specificcodeinadditiontoaJavalibrary.Atype3driverisapureJavaclientlibrarythatusesadatabase-independentprotocoltocommunicatedatabaserequeststoaservercomponent,whichthentranslatestherequestsintoadatabase-specificprotocol.Thiscansimplifydeploymentsincethedatabase-dependentcodeislocatedonlyontheserver.Atype4driverisapureJavalibrarythattranslatesJDBCrequestsdirectlytoadatabase-specificprotocol.Mostdatabasevendorssupplyeitheratype3ortype4driverwiththeirdatabase.Furthermore,anumberofthird-partycompaniesspecializeinproducingdriverswithbetterstandardsconformance,supportformoreplatforms,betterperformance,or,insomecases,simplybetterreliabilitythanthedriversthatareprovidedbythedatabasevendors.Insummary,theultimategoalofJDBCistomakepossiblethefollowing:ProgrammerscanwriteapplicationsintheJavaprogramminglanguagetoaccessanydatabase,usingstandardSQLstatementsorevenspecializedextensionsofSQLwhilestillfollowingJavalanguageconventions.Databasevendorsanddatabasetoolvendorscansupplythelow-leveldrivers.Thus,theycanoptimizetheirdriversfortheirspecificproducts.NoteIfyouarecuriousastowhySunjustdidn'tadopttheODBCmodel,theirresponse,asgivenattheJavaOneconferenceinMay1996,wasthis:ODBCishardtolearn.ODBChasafewcommandswithlotsofcomplexoptions.ThepreferredstyleintheJavaprogramminglanguageistohavesimpleandintuitivemethods,buttohavelotsofthem.ODBCreliesontheuseofvoidpointersandotherCfeaturesthatarenotnaturalintheJavaprogramminglanguage.AnODBC-basedsolutionisinherentlylesssa

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論