![網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/a95eca6ccf975079671e817c18a0a77b/a95eca6ccf975079671e817c18a0a77b1.gif)
![網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/a95eca6ccf975079671e817c18a0a77b/a95eca6ccf975079671e817c18a0a77b2.gif)
![網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/a95eca6ccf975079671e817c18a0a77b/a95eca6ccf975079671e817c18a0a77b3.gif)
![網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file4.renrendoc.com/view/a95eca6ccf975079671e817c18a0a77b/a95eca6ccf975079671e817c18a0a77b4.gif)
![網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file4.renrendoc.com/view/a95eca6ccf975079671e817c18a0a77b/a95eca6ccf975079671e817c18a0a77b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【摘要】針對(duì)當(dāng)前蓬勃發(fā)展的電子商務(wù)浪潮,本文構(gòu)建一個(gè)電子商務(wù)應(yīng)用系統(tǒng)—網(wǎng)上書店。本文首先介紹了網(wǎng)上書店系統(tǒng)的發(fā)展與現(xiàn)狀,然后論述了系統(tǒng)需求分析和系統(tǒng)流程分析,較詳細(xì)的論述了系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。最后,本文對(duì)網(wǎng)上書店系統(tǒng)進(jìn)行了系統(tǒng)檢測(cè)并提出了還需要改進(jìn)的問題。本系統(tǒng)主要為用戶提供了會(huì)員注冊(cè),購物車管理,商品搜索,用戶資料修改等功能,為管理員提供了圖書管理,類別管理,會(huì)員管理,訂單管理等功能。從系統(tǒng)的安全性和代碼的可重用性方面考慮,運(yùn)用JavaBean對(duì)程序的關(guān)鍵代碼進(jìn)行封裝。后臺(tái)數(shù)據(jù)庫選用SQL數(shù)據(jù)庫?!娟P(guān)鍵詞】電子商務(wù),JSP,MySQL,Tomcat,HTMLDesignandimplementationofonlinebookstoresystem【Abstract】Boominge-commerceforthecurrentwave,weconstructane-commerceapplications-onlinebookstore.Thispaperdescribesthedevelopmentofonlinebookstoresystemandcurrentsituation,andthendiscussesthesystemrequirementsanalysisandsystemprocessanalysis,amoredetaileddiscussionofthedetaileddesignandimplementation.Finally,ontheonlinebookstoresystemandmadethesystemdetecttheproblemstillneedstobeimproved.Thissystemprovidesuserswithmembershipregistration,shoppingcartmanagement,productsearch,informationchangesandotherfunctions,fortheadministratorsofthelibrarymanagement,categorymanagement,membershipmanagement,ordermanagementfunctions.Fromthesystem'ssecurityandcodereuseconsiderations,thekeytotheprogramusingJavaBeancodepackage.UseSQLdatabaseback-enddatabase.【Keywords】E-commerce,JSP,MySQL,Tomcat,HTML目錄TOC\o"1-2"\u第一章緒論11.1網(wǎng)上書店的背景11.2網(wǎng)上書店的現(xiàn)狀11.3網(wǎng)上書店系統(tǒng)開發(fā)的意義2第二章網(wǎng)上書店系統(tǒng)分析42.1網(wǎng)上書店系統(tǒng)需求分析42.2網(wǎng)上書店系統(tǒng)的可行性分析52.3網(wǎng)上書店系統(tǒng)設(shè)計(jì)的特點(diǎn)與目標(biāo)52.4網(wǎng)上書店系統(tǒng)用例分析6第三章系統(tǒng)的功能和流程分析73.1網(wǎng)上書店系統(tǒng)的功能分析73.2網(wǎng)上書店系統(tǒng)流程分析7第四章網(wǎng)上書店設(shè)計(jì)114.1功能結(jié)構(gòu)設(shè)計(jì)114.2數(shù)據(jù)庫設(shè)計(jì)134.3系統(tǒng)開發(fā)環(huán)境17第五章網(wǎng)上書店系統(tǒng)實(shí)現(xiàn)185.1網(wǎng)上書店系統(tǒng)的開發(fā)技術(shù)架構(gòu)185.2各功能模塊的實(shí)現(xiàn)18第六章系統(tǒng)測(cè)試及難點(diǎn)分析366.1系統(tǒng)運(yùn)行環(huán)境的搭建366.2系統(tǒng)程序的安裝和加載366.3系統(tǒng)中所存在的問題37第七章結(jié)論38后記39參考文獻(xiàn)40緒論1.1網(wǎng)上書店的背景近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域。于是電子商務(wù)開始流行起來,越來越多的商家在網(wǎng)上建起在線商店,向消費(fèi)者展示出一種新穎的購物理念。網(wǎng)上書店系統(tǒng)作為B2C(BusinesstoCustomer,即企業(yè)對(duì)消費(fèi)者)電子商務(wù)的前端商務(wù)平臺(tái),在其商務(wù)活動(dòng)全過程中起著舉足輕重的作用。本文主要考慮的是如何建設(shè)B2C的網(wǎng)上書店系統(tǒng)。隨著中國加入WTO,全球經(jīng)濟(jì)一體化的逐步深入,網(wǎng)上書店已是現(xiàn)代傳統(tǒng)書店必不可少的經(jīng)營策略。目前,網(wǎng)上書店在國際互聯(lián)網(wǎng)上可以實(shí)現(xiàn)的商務(wù)功能已經(jīng)多樣化,可以說從最基本的對(duì)外溝通展示功能、信息發(fā)布功能,在線圖書展示功能、在線交易功能、在線采購功能、在線客戶服務(wù)功能、在線網(wǎng)站管理功能等等,幾乎以往傳統(tǒng)書店功能都可以在互聯(lián)網(wǎng)上進(jìn)行電子化的高效運(yùn)作。
技術(shù)的進(jìn)步對(duì)傳統(tǒng)書店上網(wǎng)解決方案提出更嚴(yán)格的要求和挑戰(zhàn)。為了保護(hù)傳統(tǒng)書店的投資,書店上網(wǎng)解決方案應(yīng)切合傳統(tǒng)書店實(shí)際的需求和發(fā)展的趨向,使投入回報(bào)和管理效益最大化,傳統(tǒng)書店在實(shí)施上網(wǎng)方案之前,必須對(duì)一系列問題進(jìn)行科學(xué)的論證,如網(wǎng)上書店的需求分析、網(wǎng)上書店總體規(guī)劃、網(wǎng)上書店系統(tǒng)的功能和實(shí)施方案、網(wǎng)上書店的傳播與推廣、運(yùn)行網(wǎng)上書店系統(tǒng)的軟件和硬件配置、網(wǎng)上書店的管理系統(tǒng)和管理方法等等。網(wǎng)上書店具體實(shí)施的質(zhì)素直接影響傳統(tǒng)書店在Internet的實(shí)際效果和經(jīng)濟(jì)效益,這不僅是技術(shù)問題,同時(shí)也涉及到管理的因素。綜上所述,網(wǎng)上書店已經(jīng)成為互聯(lián)網(wǎng)時(shí)代傳統(tǒng)書店的必由之路。1.2網(wǎng)上書店的現(xiàn)狀國外的Web商務(wù)系統(tǒng)應(yīng)用起步較早,所以應(yīng)用的領(lǐng)域比較廣,網(wǎng)絡(luò)銷售已經(jīng)在人們?nèi)粘OM(fèi)中占到一定比例,Web商務(wù)系統(tǒng)也比較成熟。人們可以以網(wǎng)絡(luò)這個(gè)媒體,足不出戶就可以搜索、查詢到自己需要的信息、購買自己需要的商品。我國電子商務(wù)的發(fā)展起源于70年代的EDI應(yīng)用,我國海關(guān)是最早引入EDI進(jìn)行報(bào)關(guān),經(jīng)過幾年的完善發(fā)展目前企業(yè)可以通過上網(wǎng)申請(qǐng)報(bào)關(guān)。電子商務(wù)概念首次引入中國是在1993年,第一筆網(wǎng)上交易發(fā)生在1996年。目前我國網(wǎng)上書店的主要類型有:由國有新華書店投資建設(shè)的網(wǎng)上書店。一些有實(shí)力的傳統(tǒng)書店,都會(huì)建立自己的網(wǎng)站,利用網(wǎng)絡(luò)促銷,爭取更多的市場(chǎng)份額。它們主要依托傳統(tǒng)的圖書大廈的圖書儲(chǔ)存進(jìn)行網(wǎng)絡(luò)售書,屬于新華書店上網(wǎng)或上網(wǎng)的書店。由出版社建立的網(wǎng)上書店。因?yàn)榫W(wǎng)絡(luò)出版的緣故,出版社是最早觸網(wǎng)的,我國500多家出版社中,已建立網(wǎng)站的有349家,占62%。較好的出版社營銷網(wǎng)站建設(shè)的特點(diǎn)是:以出版社本社出版物為網(wǎng)站核心,突出特色,訪問速度快捷,信息及時(shí)更新,內(nèi)容的合理編排以及完善的檢索能力,較強(qiáng)的交互能力。外貿(mào)出版公司投資建設(shè)的網(wǎng)上書店。這一類網(wǎng)上書店立足公司主營業(yè)務(wù),主要對(duì)海外進(jìn)行圖書銷售,銷售量逐漸增加。非出版業(yè)資本投資建設(shè)的網(wǎng)上書店。如卓越網(wǎng)。就目前情況而言,上述幾類的網(wǎng)絡(luò)書店可以分為兩大類。一類是沒有實(shí)體書店的網(wǎng)上書店,以卓越網(wǎng)為代表,還有一類是以實(shí)體書店為支撐的。前一類書店已經(jīng)開始逐步銷售更多的商品,在很大程度上,是以圖書為主打產(chǎn)品,開發(fā)其它商品作為補(bǔ)充,如卓越網(wǎng)在大幅增加圖書音像品種的同時(shí),陸續(xù)增加了數(shù)碼產(chǎn)品、、家居、健康用品和化妝品、玩具禮品、鐘表首飾、廚具、母嬰產(chǎn)品、小家電等。1.3網(wǎng)上書店系統(tǒng)開發(fā)的意義Internet的發(fā)展,為改變傳統(tǒng)的商業(yè)運(yùn)作模式提供了一種技術(shù)上的可行性的方案:利用Internet的技術(shù)和協(xié)議,建立各種企業(yè)內(nèi)部網(wǎng)Intranet,企業(yè)外部網(wǎng)Extranet,通過廉價(jià)的通訊手段,將買家與賣家、廠商和合作伙伴緊密結(jié)合在了一起,消除時(shí)間與空間帶來的障礙,從而大大的節(jié)約了交易成本,擴(kuò)大了交易范圍。而在實(shí)際的生活中,這種方案已經(jīng)被廣泛的運(yùn)用到了實(shí)際的商業(yè)活動(dòng)中了,這種交易模式為:電子商務(wù)。當(dāng)今比較流行的網(wǎng)上書店系統(tǒng)國外有“卓越”,國內(nèi)有“當(dāng)當(dāng)”。它們都是相當(dāng)優(yōu)秀的電子商務(wù)網(wǎng)站,對(duì)其他的網(wǎng)站提供了良好的典范。設(shè)計(jì)中可以學(xué)習(xí)參考他們的思想,了解和熟悉整個(gè)網(wǎng)站的開發(fā)流程及完整的電子商務(wù)網(wǎng)站應(yīng)有的功能和注意事項(xiàng)。設(shè)計(jì)和完成一個(gè)電子商務(wù)網(wǎng)站的,將會(huì)牽涉到許多技術(shù)上的問題,如:動(dòng)態(tài)網(wǎng)頁制作技術(shù)的,后臺(tái)數(shù)據(jù)庫的設(shè)計(jì)和管理,通過實(shí)際的制作個(gè)網(wǎng)站,可以避免紙上談兵,在實(shí)踐中掌握上述技術(shù)的使用。目前,網(wǎng)絡(luò)正以一種前所未有的沖擊力在影響著人類的活動(dòng),包括人類的生產(chǎn)和日常生活。網(wǎng)絡(luò)的誕生和發(fā)展,顛覆了傳統(tǒng)的信息傳播方式,沖破了存在于傳統(tǒng)交流方式中時(shí)間和空間的種種壁壘,極大地改變了人類從物質(zhì)到精神、從形式到內(nèi)容、從生產(chǎn)到生活的各種活動(dòng),并且給人類帶來了新的機(jī)遇和挑戰(zhàn)。電子商務(wù)將成為21世紀(jì)網(wǎng)絡(luò)發(fā)展的主流。國內(nèi)企業(yè)在紛紛加入到阿里巴巴等一系列大型電子商務(wù)網(wǎng)站,通過網(wǎng)絡(luò)進(jìn)行B2B(企業(yè)對(duì)企業(yè))的網(wǎng)上交易之后,也充分認(rèn)識(shí)到網(wǎng)絡(luò)交易將成為未來商品交易的重要組成部分,在建立企業(yè)宣傳網(wǎng)絡(luò)的同時(shí),也逐步擴(kuò)大企業(yè)自身的網(wǎng)絡(luò)銷售渠道,建立自己的電子商務(wù)網(wǎng)站,完成從B2B到B2C(企業(yè)對(duì)個(gè)人)同時(shí)進(jìn)行網(wǎng)絡(luò)交易的過度,大大提高了企業(yè)網(wǎng)絡(luò)交易的數(shù)量和金額。而本次畢業(yè)設(shè)計(jì)的任務(wù)是構(gòu)建一個(gè)電子商務(wù)網(wǎng)站,采用的主要技術(shù)是基于服務(wù)器端的JSP、Java的組件JavaBean,以及網(wǎng)頁編程語言HTML、CSS。JSP是JavaServerPage的縮寫,是由SunMicrosystems公司倡導(dǎo)、許多公司參與建立一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),它在動(dòng)態(tài)網(wǎng)頁的建設(shè)中有強(qiáng)大而特別的功能。JSP是一種服務(wù)器端HTML(或XML)嵌入Java代碼的腳本語言,是開發(fā)Web動(dòng)態(tài)網(wǎng)站快速而有效的工具,JSP的技術(shù)的優(yōu)勢(shì):1.JSP技術(shù)是用Java語言作為腳本語言的。Java語言是成熟的、強(qiáng)大的、易擴(kuò)充的編程語言。2.高效性與安全性。JSP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行,比源碼解釋效率高。3.可維護(hù)性。由于JSP技術(shù)是一種開放的、跨平臺(tái)的結(jié)構(gòu),因此Web服務(wù)器、平臺(tái)及其他組件能很容易升級(jí)或切換,且不會(huì)影響JSP基本的應(yīng)用程序。4.穩(wěn)定性。5.產(chǎn)品的多樣性。目前,在國內(nèi)JSP還是一種較新的技術(shù)。但JSP+Servlet+JDBC+JavaBean目前已經(jīng)成為開發(fā)電子商務(wù)平臺(tái)的主流技術(shù)。隨著國內(nèi)與國際的接軌,JSP必將成為網(wǎng)站開發(fā)技術(shù)的首選。網(wǎng)上書店系統(tǒng)分析?MACROBUTTONNoMacro[Clickandtypechaptertitle]系統(tǒng)分析是平臺(tái)開發(fā)的一個(gè)不可缺少的環(huán)節(jié),為了能夠使本系統(tǒng)更好、更完善地被設(shè)計(jì)出來,就必須先進(jìn)行調(diào)查研究。在系統(tǒng)調(diào)查的基礎(chǔ)上,對(duì)新系統(tǒng)的功能進(jìn)行細(xì)致的分析,從而才能夠開發(fā)出完整的系統(tǒng)設(shè)計(jì)。2.1網(wǎng)上書店系統(tǒng)需求分析通過實(shí)際調(diào)查,要求本網(wǎng)站具有以下功能。1.系統(tǒng)具有良好的人機(jī)界面。2.如果系統(tǒng)的使用對(duì)象較多,則要求有較好的權(quán)限管理。3.全面展示網(wǎng)上書店內(nèi)的交易信息。4.書目分類顯示,方便顧客了解本網(wǎng)上書店內(nèi)的圖書。5.系統(tǒng)最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性。6.系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。7.支持用戶圖書推薦、圖書評(píng)價(jià)。8.支持圖書檢索顯示,可以通過查找圖書的模糊信息查找圖書。圖書查詢需求當(dāng)客戶進(jìn)入網(wǎng)上書店時(shí),應(yīng)該在主頁面分類顯示最新的書目信息和促銷的書目信息,以供客戶選擇所需圖書。購物車管理需求當(dāng)客戶選擇購買某圖書產(chǎn)品時(shí),應(yīng)該能夠?qū)?duì)應(yīng)圖書信息,例如:價(jià)格、數(shù)量記錄到購物車中,并允許客戶返回書目查詢頁面,選擇其他商品,并添加到購物車中,當(dāng)對(duì)購物訂單生成后,應(yīng)該能夠自動(dòng)清除以生成訂單的購物車中的信息。訂單處理需求對(duì)應(yīng)客戶購買圖書商品信息的需求,在確定了所購圖書商品的價(jià)格、數(shù)量等信息后,提示用戶選擇對(duì)應(yīng)的送貨方式,最終生成對(duì)應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進(jìn)行后續(xù)的出貨、送貨和處理。2.2網(wǎng)上書店系統(tǒng)的可行性分析可行性研究是為了弄清楚系統(tǒng)開發(fā)的項(xiàng)目是不是可以實(shí)現(xiàn)和值得進(jìn)行研究的過程,實(shí)際上是一次大大簡化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,所以,進(jìn)行可執(zhí)行性的分析是非常必要的,也是很重要的,經(jīng)過最初的設(shè)計(jì)目標(biāo)和進(jìn)行的市場(chǎng)調(diào)查得出以下四點(diǎn)的可行性分析:經(jīng)濟(jì)可行性:網(wǎng)上書店主要以書籍雜志及音像制品等商品為主,網(wǎng)站可提供書籍音像制品的片段供讀者瀏覽,使消費(fèi)者了解其內(nèi)容后在訂購,沒有過多的售后服務(wù),退貨問題。與傳統(tǒng)書店相比,網(wǎng)上購書的市場(chǎng)規(guī)模和經(jīng)營模式?jīng)]有限制,突破了地理位置,經(jīng)營面積,營業(yè)時(shí)間的局限。是一種全新的銷售渠道。從營業(yè)面積地理位置方面節(jié)省大量的資金。服務(wù)器24小時(shí)提供網(wǎng)絡(luò)服務(wù)則消費(fèi)者可每時(shí)都能登陸網(wǎng)站購物,大大增加書店的銷售額度。無論從商家還是從消費(fèi)者的角度看網(wǎng)上書店都具有良好的發(fā)展前景。技術(shù)可行性:JSP+Servlet的技術(shù)已經(jīng)較為成熟。運(yùn)行可行性:該系統(tǒng)需要搭建JVM即JAVA虛擬機(jī)和Tomcat環(huán)境,在此環(huán)境下系統(tǒng),并且在正確連接數(shù)據(jù)庫后可以正常運(yùn)行。法律可行性:該平臺(tái)是作為畢業(yè)設(shè)計(jì)與商業(yè)無關(guān),又因?yàn)槭亲灾鏖_發(fā)設(shè)計(jì),因此不會(huì)構(gòu)成侵權(quán),在法律上是可行的。通過以上的可行性分析,我將采用JSP+Servlet相結(jié)合的技術(shù),運(yùn)用MySQL數(shù)據(jù)庫對(duì)網(wǎng)站進(jìn)行建設(shè)。2.3網(wǎng)上書店系統(tǒng)設(shè)計(jì)的特點(diǎn)與目標(biāo)網(wǎng)站設(shè)計(jì)特點(diǎn)我所設(shè)計(jì)和開發(fā)的網(wǎng)上書店購物平臺(tái)是經(jīng)過很長時(shí)間的調(diào)查和分析才開始具體實(shí)施的,它的主要特點(diǎn)是改變了以往的購物只能通過現(xiàn)實(shí)的商場(chǎng)才能達(dá)到的結(jié)果,采用Web技術(shù),借助于Internet互聯(lián)網(wǎng)廣泛應(yīng)用技術(shù),達(dá)到資源共享,提高以往購物的局限性,縮短人們的時(shí)間和提高工作效率,具有較好的交互性,從而實(shí)現(xiàn)信息化,規(guī)范化,系統(tǒng)化,網(wǎng)絡(luò)化的平臺(tái),使整個(gè)購物活動(dòng)過程簡單、方便、易行。網(wǎng)站設(shè)計(jì)目標(biāo)網(wǎng)站整體采用JSP+MySQL+CSS+HTMl技術(shù)實(shí)現(xiàn)。此系統(tǒng)分為前臺(tái)管理和后臺(tái)管理。前臺(tái)管理是友好的操作界面,供用戶瀏覽、查詢使用。包括:瀏覽商品、查詢商品、訂購商品、購物車、用戶維護(hù)等功能;后臺(tái)管理是提供給管理員的,其中包括:商品管理、用戶管理、訂單管理等。使管理員從繁瑣的手工操作中解脫出來,并提高了辦公效率。2.4網(wǎng)上書店系統(tǒng)用例分析用例是用來描述潛在用戶所看到的UML組件。它是一個(gè)被稱作參與者的實(shí)體所發(fā)起的場(chǎng)景的集合。用例的執(zhí)行必須對(duì)發(fā)起該用例的參與者或者其他參與者產(chǎn)生影響用例是系統(tǒng)執(zhí)行的一系列動(dòng)作,這些動(dòng)作將生成特定Actor(參與者)可觀測(cè)的有價(jià)值的結(jié)果值。一個(gè)用例定義一組用例實(shí)例。通俗一些:Actor使用系統(tǒng)達(dá)到某個(gè)目標(biāo)。用例是參與者要求系統(tǒng)提供的服務(wù);以用戶的角度描述系統(tǒng)的行為。其中系統(tǒng)邊界是指系統(tǒng)承擔(dān)的責(zé)任的邊界(對(duì)外部用戶來說),不是物理邊界。Actor(角色、執(zhí)行者、參與者、活動(dòng)者)在系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物(不僅僅是人員)。用例建模的步驟:1)確定系統(tǒng)邊界2)找出參與者3)確定參與者相關(guān)的用例4)編寫用例規(guī)約。資料修改搜索物品選購物品會(huì)員管理類別管理圖書管理訂單管理會(huì)員管理資料修改搜索物品選購物品會(huì)員管理類別管理圖書管理訂單管理會(huì)員管理類別添加類別修改圖書添加圖書修改訂單查詢訂單處理注冊(cè)登錄會(huì)員管理員類別刪除圖書刪除圖2-1“網(wǎng)上書店”系統(tǒng)用例圖系統(tǒng)的功能和流程分析3.1網(wǎng)上書店系統(tǒng)的功能分析根據(jù)實(shí)現(xiàn)功能不同將網(wǎng)站分為了在線購書子系統(tǒng)和后臺(tái)管理子系統(tǒng)。 1.在線購書子系統(tǒng)為消費(fèi)提供了在線瀏覽圖書,訂購圖書的平臺(tái)。屬于前臺(tái)展示部分的設(shè)計(jì)。具體功能如下:用戶登陸網(wǎng)站瀏覽圖書,用戶在主頁或我的帳戶中注冊(cè)成為網(wǎng)站的會(huì)員,只有網(wǎng)站的會(huì)員才能在網(wǎng)站購買圖書。用戶可以通過分類瀏覽,書目推薦,新書推薦,書目查詢的方式選擇喜愛的圖書,用戶選擇圖書提交訂單完成訂購。2.后臺(tái)管理子系統(tǒng)為書店管理員提供了管理網(wǎng)絡(luò)書店的平臺(tái)。屬于后臺(tái)管理部分的設(shè)計(jì)。具體功能如下:注冊(cè)會(huì)員的管理,并通過會(huì)員的消費(fèi)記錄更改會(huì)員的等級(jí),不同等級(jí)的會(huì)員享受不同的購書折扣待遇。圖書類別的管理,通過添加,修改,刪除對(duì)圖書類別進(jìn)行管理。在類別下添加圖書記錄,對(duì)圖書的名稱,出版單位,媒體推薦,內(nèi)容簡介等詳細(xì)信息進(jìn)行添加、修改等管理。訂單的管理,查詢會(huì)員提交的訂單并處理。處理已經(jīng)送貨的訂單使之對(duì)書店的圖書銷售記錄書店庫存信息實(shí)時(shí)修改。書店公告信息的管理,添加書店的公告信息使消費(fèi)者及時(shí)了解書店的最新動(dòng)態(tài)。3.2網(wǎng)上書店系統(tǒng)流程分析前臺(tái)購物流程瀏覽商品瀏覽商品選擇商品訂購商品去購物車去收銀臺(tái)提交訂單未注冊(cè)用戶已登錄注冊(cè)用戶未登錄注冊(cè)用戶注冊(cè)登錄圖3-1前臺(tái)購物流程注冊(cè)功能流程注冊(cè)入口提交到后臺(tái)注冊(cè)入口提交到后臺(tái)必選項(xiàng)不為空必選項(xiàng)不為空用戶唯一性用戶唯一性驗(yàn)證通過驗(yàn)證通過信息入數(shù)據(jù)庫信息入數(shù)據(jù)庫注冊(cè)成功注冊(cè)成功密碼是否一致NYN密碼是否一致NYNYNYNYNYNY注冊(cè)的具體實(shí)現(xiàn)為:點(diǎn)擊主頁面的用戶注冊(cè)選項(xiàng)后,會(huì)彈出一個(gè)注冊(cè)信息頁面,用戶需要如實(shí)填寫用戶名,密碼,E-mail,地址,,證件號(hào)碼等各項(xiàng)信息,提交后,系統(tǒng)進(jìn)行檢測(cè)判斷該用戶名是否已經(jīng)注冊(cè)過,如果已經(jīng)存在則彈出新頁面,提示用戶該用戶名已經(jīng)注冊(cè)過,如果沒有則進(jìn)行下一步判斷,用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項(xiàng)信息是否符合要求,直到所有信息均正確無誤,系統(tǒng)將該用戶注冊(cè)信息寫入會(huì)員表即user并提示用戶注冊(cè)成功,用戶登陸后,就可以進(jìn)行有效的購物了。用戶登錄流程用戶登錄,首先要有一個(gè)提供用戶登錄的表單。用戶登錄的表單應(yīng)該嵌入整體的結(jié)構(gòu)當(dāng)中。在實(shí)際的應(yīng)用中,可以這樣設(shè)計(jì),如果用戶沒有登錄,則在主頁中顯示用戶登錄的選項(xiàng),用戶登錄后,則可隱藏用戶登錄的選項(xiàng)而代之以用戶的基本信息。登錄入口登錄入口取得用戶名和密碼將UserID存入session中用戶是否存在密碼是否正確登錄成功是是否NNNYYNNYY圖3-3用戶登陸流程圖圖書/類別管理流程類別管理類別管理添加類別修改刪除滿意否返回添加圖書是否NNYY圖3-4圖書/類別管理流程圖在該功能里管理員可以進(jìn)行不需要的商品的刪除,在這里管理員當(dāng)然也可以瀏覽到商品的詳細(xì)信息。購物車流程購物車具體的實(shí)現(xiàn)可采用這種形式:定義一個(gè)購物車的類(Class)。1.列出商品的列表,使用戶能夠自由選擇所需要的商品。2.當(dāng)用戶在點(diǎn)擊“添加到購物車”的鏈接時(shí),執(zhí)行如下功能:檢查用戶購物車類是否存在。如不存在,則建立,將購物車對(duì)象加入用戶對(duì)象中;在有用戶購物車類存在的情況下,檢查該類中是否有該商品。如存在,則商品數(shù)量相應(yīng)加1;如沒有該商品,則將該商品添加到該類中。購物車購物車查看商品滿意嗎下訂單調(diào)整商品是否NNYY圖3-5購物車流程圖網(wǎng)上書店設(shè)計(jì)4.1功能結(jié)構(gòu)設(shè)計(jì)網(wǎng)上書店系統(tǒng)是一個(gè)典型的JSP數(shù)據(jù)庫開發(fā)應(yīng)用程序,由前臺(tái)圖書展示及銷售、后臺(tái)管理兩部分組成。1.前臺(tái)商品展示及銷售:該部分主要包括新書上架、特價(jià)圖書、購物車、會(huì)員管理、圖書公告及訂單查詢、圖書查詢等。2.后臺(tái)管理:該部分主要對(duì)商城內(nèi)的一些基礎(chǔ)數(shù)據(jù)進(jìn)行有效管理,包括圖書管理、會(huì)員管理、訂單管理、用戶管理等。前臺(tái)管理網(wǎng)上書店前臺(tái)管理用戶登錄用戶注冊(cè)個(gè)人信息修改書目瀏覽網(wǎng)上書店前臺(tái)管理用戶登錄用戶注冊(cè)個(gè)人信息修改書目瀏覽增加個(gè)人信息最新圖書信息購物車管理修改購物車查看購物車密碼修改促銷圖書信息刪除購物車圖4-1網(wǎng)上書店前臺(tái)管理結(jié)構(gòu)圖后臺(tái)管理網(wǎng)上書店后臺(tái)管理網(wǎng)上書店后臺(tái)管理類別管理會(huì)員管理添加類別圖書管理查看會(huì)員信息修改圖書信息添加圖書訂單管理刪除訂單信息查看訂單信息刪除類別刪除圖書修改類別修改訂單信息圖4-2網(wǎng)上書店后臺(tái)管理結(jié)構(gòu)圖4.1.3主要功能流程主頁面主頁面index.jsp。類別修改用戶登陸注冊(cè)管理進(jìn)入添加到購物車圖書管理資料修改類別管理類別添加會(huì)員管理訂單管理圖書修改圖書添加訂單查詢訂單處理是否會(huì)員退出返回搜索物品選購物品結(jié)帳付款填寫訂貨單購物成功會(huì)員信息退出圖4-3主要功能流程圖4.2數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫概念設(shè)計(jì)對(duì)用戶要求描述的現(xiàn)實(shí)世界(可能是一個(gè)工廠、一個(gè)商場(chǎng)或者一個(gè)學(xué)校等),通過對(duì)其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個(gè)概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動(dòng)情況、信息間的互相制約關(guān)系以及各部門對(duì)信息儲(chǔ)存、查詢和加工的要求等。所建立的模型應(yīng)避開數(shù)據(jù)庫在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。數(shù)據(jù)庫概念設(shè)計(jì)的常用方法有:E-R方法,基于3NF的設(shè)計(jì)方法。下面主要介紹E-R方法。E-R圖也即實(shí)體-聯(lián)系圖(EntityRelationshipDiagram),提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:1.實(shí)體型(Entity):用矩形表示,矩形框內(nèi)寫明實(shí)體名;比如學(xué)生張三豐、學(xué)生李四都是實(shí)體。如果是弱實(shí)體,在矩形外面再套實(shí)線矩形。2.屬性(Attribute):用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來;比如學(xué)生的姓名、學(xué)號(hào)、性別、都是屬性。如果是多值屬性,在橢圓形外面再套實(shí)線橢圓。如果是派生屬性則用虛線橢圓表示。3.聯(lián)系(Relationship):用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。通過對(duì)網(wǎng)上書店工作過程的內(nèi)容和數(shù)據(jù)流圖分析,設(shè)計(jì)如下面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。1.會(huì)員信息包括數(shù)據(jù)項(xiàng)有:會(huì)員編號(hào)、會(huì)員密碼、會(huì)員名稱、會(huì)員、會(huì)員地址、會(huì)員級(jí)別(管理員設(shè)定)。2.圖書信息包括數(shù)據(jù)項(xiàng)有:圖書編號(hào)、圖書名稱、作者、出版社編號(hào)、圖書類別。3.圖書訂單包括數(shù)據(jù)項(xiàng)有:訂單狀態(tài)、下定日期、圖書名稱、現(xiàn)存貨情況。4.購物車包括數(shù)據(jù)項(xiàng)有:會(huì)員賬號(hào)、每種圖書名稱、每種圖書市場(chǎng)價(jià)格、每種圖書網(wǎng)站價(jià)格、每種圖書數(shù)量、每種圖書的總價(jià)、圖書總價(jià)。5.管理員包括數(shù)據(jù)項(xiàng)有:管理員密碼,管理員名稱、管理員編號(hào)。.1數(shù)據(jù)表E-R圖根據(jù)上面設(shè)計(jì)規(guī)劃出的實(shí)體,我們對(duì)各個(gè)實(shí)體具體的描述E-R圖如下:圖書購買會(huì)員管理員管理圖書購買會(huì)員管理員管理訂單名稱編號(hào)出版社名稱密碼地址等級(jí)日期狀態(tài)存貨密碼名稱名稱NMM1N1管理前往購物車形成書名數(shù)量總價(jià)格類別作者1M11編號(hào)編號(hào)圖4-4網(wǎng)上書店E-R圖將E-R圖轉(zhuǎn)換為關(guān)系模式轉(zhuǎn)化成的關(guān)系模式有:1.管理員信息({管理員編號(hào)、管理員賬號(hào)、管理員密碼})2.會(huì)員信息({會(huì)員賬號(hào)、會(huì)員密碼、會(huì)員名稱、會(huì)員地址、會(huì)員級(jí)別})3.圖書信息({圖書編號(hào)、圖書名稱、作者、出版日期、圖書類別})4.圖書類別信息({圖書類別編號(hào)、圖書類別名稱})5.圖書訂單({訂單編號(hào)、會(huì)員賬號(hào)、下訂單日期、圖書編號(hào)})6.購物車({會(huì)員賬號(hào)、每種圖書編號(hào)、每種圖書數(shù)量、圖書總價(jià)})4.2.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)系統(tǒng)各項(xiàng)功能的實(shí)現(xiàn)歸根結(jié)底是通過數(shù)據(jù)庫進(jìn)行各項(xiàng)操作完成的。因此要實(shí)現(xiàn)系統(tǒng)規(guī)劃的功能,提高系統(tǒng)的性能,要選擇一個(gè)設(shè)計(jì)合理,功能完善的數(shù)據(jù)庫管理軟件,并且設(shè)計(jì)一個(gè)組織嚴(yán)禁沒有冗余數(shù)據(jù),易于維護(hù)的數(shù)據(jù)庫。MySQl是一個(gè)功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理軟件,具有安全性,靈活性,可靠性,可以有效的開發(fā)動(dòng)態(tài)web站點(diǎn)。為數(shù)據(jù)處理提供服務(wù)。表4-1Tableuser(會(huì)員信息表)Id主鍵會(huì)員id號(hào)碼會(huì)員的唯一標(biāo)志Username會(huì)員名稱Password會(huì)員密碼Usernumber會(huì)員的有效身份證件號(hào)碼Phone聯(lián)系EmailEmail地址Address會(huì)員的詳細(xì)地址Rdate會(huì)員注冊(cè)時(shí)間level會(huì)員的等級(jí)Recordes會(huì)員的消費(fèi)總額記錄最為評(píng)價(jià)會(huì)員等級(jí)待遇的標(biāo)準(zhǔn)表4-2Tablecategory(圖書類別表)Id主鍵類別的id號(hào)碼類別的唯一標(biāo)志Pid上層類別的id號(hào)碼如果沒有上層類別則為0Name類別的名稱Description類別的描述信息Cno類別的序列號(hào)碼表示如0000四位數(shù)字前兩位表示第一級(jí)類別后兩位表示第二級(jí)類別Grade類別的等級(jí)記錄該系統(tǒng)設(shè)置類別共兩個(gè)等級(jí)grade=1grade=2表4-3Tableproduct(圖書的基本信息表)Id主鍵圖書的id號(hào)碼圖書的唯一標(biāo)志Name圖書的名稱Normalprice圖書的市場(chǎng)價(jià)格Discount圖書的會(huì)員折扣Store圖書的庫存數(shù)量Salescount圖書的銷售數(shù)量Photoname圖書的關(guān)聯(lián)展示照片名稱該系統(tǒng)沒有設(shè)置上傳組件為了測(cè)試系統(tǒng)的頁面效果手動(dòng)添加圖片到系統(tǒng)目錄Pdate圖書上架時(shí)間Descriptionid圖書的詳細(xì)信息的id號(hào)碼Categoryid圖書所屬類別的id號(hào)碼表4-4Tabledescription(圖書的詳細(xì)信息)Id主鍵圖書詳細(xì)信息的id號(hào)碼Publisher圖書出版社Author圖書的作者Introduction圖書的簡介或推薦信息Context提供給消費(fèi)者的圖書內(nèi)容預(yù)覽表4-5Tablesalesorder(訂單的基本信息)Id主鍵訂單的id號(hào)碼訂單的唯一標(biāo)志Userid訂單所屬的會(huì)員的id號(hào)碼Phone訂購圖書消費(fèi)者的聯(lián)系點(diǎn)換Address訂購圖書的送貨地址Odate訂購圖書的日期Status訂單的狀態(tài)該系統(tǒng)設(shè)置了兩個(gè)狀態(tài)status=0或1分別是尚未處理處理成功表4-6Tablesalesitem(訂單詳細(xì)條目的信息)Id主鍵訂單單項(xiàng)條目的id號(hào)碼Productid訂單單項(xiàng)圖書id號(hào)碼Unitprice訂單的單項(xiàng)圖書的訂購單價(jià)分普通會(huì)員價(jià)格白銀會(huì)員價(jià)格黃金會(huì)員價(jià)格三種Count訂單中單項(xiàng)圖書記錄的訂購數(shù)量Orderid訂單單項(xiàng)所屬的訂單id號(hào)碼4.3系統(tǒng)開發(fā)環(huán)境操作系統(tǒng):WINDOWSXP;運(yùn)行工具:IE6.0開發(fā)工具:JSP數(shù)據(jù)庫:MySQL5.12服務(wù)器:Tomcat6.0輔助工具:AdobePhotoshopCS,FlashV8.0網(wǎng)上書店系統(tǒng)實(shí)現(xiàn)5.1網(wǎng)上書店系統(tǒng)的開發(fā)技術(shù)架構(gòu)系統(tǒng)的建設(shè)關(guān)鍵在于其所使用的架構(gòu),而網(wǎng)上書店這種基于web的系統(tǒng),傳統(tǒng)的C/S架構(gòu)已經(jīng)不能滿足大量用戶的訪問和操作,B/S基于瀏覽器的架構(gòu)則是目前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主流,它將大量的數(shù)據(jù)處理工作交給服務(wù)器端來處理,客戶端只用通過普通的IE瀏覽器即可訪問系統(tǒng),方便快捷而且利于系統(tǒng)的更新和維護(hù),java語言在該方面更是得天獨(dú)厚。Browse瀏覽器Browse瀏覽器Web服務(wù)器數(shù)據(jù)庫圖5-1B/S三層架構(gòu)示意圖?MACROBUTTONNoMacro[Clickandtypechaptertitle]5.2各功能模塊的實(shí)現(xiàn)數(shù)據(jù)庫連接模塊(com.KeHuiBookShop.DB)設(shè)計(jì)數(shù)據(jù)庫連接模塊的思想是面向?qū)ο蟮姆庋b思想。把數(shù)據(jù)庫的連接操作封裝到DB類中,使在編寫業(yè)務(wù)邏輯是不用重復(fù)的編寫連接數(shù)據(jù)庫的語句塊,極大的減少了代碼編寫數(shù)量,減少了我開發(fā)的時(shí)間,并保證了連接的正確性,似的維護(hù)數(shù)據(jù)庫連接的靈活性增強(qiáng)。DB類中實(shí)現(xiàn)了創(chuàng)建Connection連接方法獲得與數(shù)據(jù)庫的有效連接。創(chuàng)建SQL語句載體Statement方法。創(chuàng)建PreparedStatement的方法PreparedStatement語句能更有效地實(shí)現(xiàn)對(duì)數(shù)據(jù)庫記錄的添加、刪除、修改操作。創(chuàng)建查詢結(jié)果集ResultSet的方法結(jié)果集中包含了查詢數(shù)據(jù)庫所得到的所有數(shù)據(jù)記錄。創(chuàng)建關(guān)閉Connection,Statement,ResultSet的方法。對(duì)數(shù)據(jù)庫的所有操作完成之后必須將于數(shù)據(jù)庫相連的Connecion對(duì)象關(guān)閉以釋放系統(tǒng)所占的資源。設(shè)計(jì)模式的應(yīng)用設(shè)計(jì)完成數(shù)據(jù)庫連接模塊之后考慮怎樣更好的設(shè)計(jì)其他業(yè)務(wù)邏輯模塊,怎樣更好的提高業(yè)務(wù)邏輯模塊的靈活性,可移植性。.1業(yè)務(wù)邏輯DAO封裝。網(wǎng)站的數(shù)據(jù)庫使用的MySQL,如果隨著網(wǎng)站的發(fā)展將會(huì)使用多種數(shù)據(jù)庫測(cè)試時(shí)便要修改MySQL數(shù)據(jù)庫的代碼給維護(hù)帶來的很大不便。使用DAO模式設(shè)計(jì)了DAO接口編寫MySQL實(shí)現(xiàn)的數(shù)據(jù)庫操作實(shí)現(xiàn)了DAO接口使用多數(shù)據(jù)庫測(cè)試時(shí)只需要編寫不同的DAO實(shí)現(xiàn)便可,提高了靈活性。publicinterfaceDao{};publicclassMySqlDaoimplementsDao{};.2單例模式在JSP頁面中處理數(shù)據(jù)時(shí)調(diào)用業(yè)務(wù)邏輯方法處理,此時(shí)構(gòu)造一個(gè)該模塊業(yè)務(wù)邏輯的管理類manager統(tǒng)一管理此模塊中的所有業(yè)務(wù)邏輯的調(diào)用。在每次調(diào)用業(yè)務(wù)邏輯時(shí)需要構(gòu)造一個(gè)管理員類的實(shí)例,頻繁的調(diào)用邏輯方法都要?jiǎng)?chuàng)建單獨(dú)的管理員極大的浪費(fèi)系統(tǒng)的資源。為了節(jié)省資源使用單例模式,只構(gòu)造一次管理對(duì)象。也便如現(xiàn)實(shí)中的工廠,只有一個(gè)管理員,而不是每次進(jìn)出工廠都要找一個(gè)管理員,如果管理員存在便不在聘請(qǐng)。publicclassManager{privatestaticManagermanager=null;publicstaticManagergetInstance(){ if(manager==null){ manager=newManager(); } returnmanager;}}.3模塊的類設(shè)計(jì)設(shè)計(jì)模塊的具體功能時(shí)首先應(yīng)先設(shè)計(jì)承載這些功能的類,各功能模塊都應(yīng)包含實(shí)體類,業(yè)務(wù)邏輯類兩部分。實(shí)體類依據(jù)設(shè)計(jì)的數(shù)據(jù)庫的邏輯結(jié)構(gòu)編寫,包含了數(shù)據(jù)成員對(duì)應(yīng)各自的數(shù)據(jù)庫表的列,并提供對(duì)個(gè)數(shù)據(jù)成員的getset方法。業(yè)務(wù)邏輯類內(nèi)部主要包含實(shí)現(xiàn)個(gè)功能的業(yè)務(wù)邏輯方法。該系統(tǒng)使用三層類的結(jié)構(gòu),即管理類Manager,DAO類,數(shù)據(jù)庫實(shí)現(xiàn)類。用戶模塊用戶模塊分為會(huì)員注冊(cè)并登錄網(wǎng)站并在我的帳戶中管理自己的信息和網(wǎng)站管理員在后臺(tái)管理會(huì)員信息兩部分。用戶進(jìn)入網(wǎng)站后可以注冊(cè)為會(huì)員,會(huì)員可以訂購圖書并享受折扣待遇。會(huì)員登錄后可以在我的賬戶中管理自己的個(gè)人信息,包括修改查看個(gè)人基本信息,查看訂單信息,查看消費(fèi)信息。圖5-2首頁頁面.1會(huì)員注冊(cè)登錄設(shè)計(jì)圖5-3注冊(cè)頁面 電子商城系統(tǒng)離不開用戶與網(wǎng)站之間的交互,用戶注冊(cè)和登錄十分重要。該系統(tǒng)對(duì)用戶注冊(cè)和登錄功能進(jìn)行詳細(xì)設(shè)計(jì)。 會(huì)員注冊(cè)時(shí)在注冊(cè)頁面編輯個(gè)人信息,通過信息表單提交個(gè)人信息到服務(wù)器審核。檢查用戶提交的信息是否為空,用戶提交的信息不能為空。會(huì)員注冊(cè)用戶名不能與以往已經(jīng)注冊(cè)的用戶名重復(fù),否則無法區(qū)分。在提交信息到數(shù)據(jù)庫時(shí)對(duì)此進(jìn)行了檢查限制。通過調(diào)用UserManager.getInstance().checkUsername().檢查會(huì)員名是否已經(jīng)存在。 審核通過便成功注冊(cè)為會(huì)員。將信息添加到數(shù)據(jù)庫中保存。在業(yè)務(wù)類中提供了addUser()方法添加數(shù)據(jù)。因?yàn)橄驍?shù)據(jù)庫添加數(shù)據(jù)方面大同小異所以以添加用戶為例詳細(xì)介紹向數(shù)據(jù)庫添加數(shù)據(jù)的方法。publicvoidaddUser(Useruser){ Connectionconn=DB.getConnection();//使用編寫好的DB類創(chuàng)建與數(shù)據(jù)庫的連接 Stringsql="insertintouservalues(null,?,?,?,?,?,?,?,?,?)";//編寫sql語句該sql語句使用PreparedStatement的格式 PreparedStatementpsta=DB.prepareStatement(conn,sql); try{ conn.setAutoCommit(false);//為了更安全的提交數(shù)據(jù)將數(shù)據(jù)庫的事務(wù)提交改為手動(dòng)提交 psta.setString(1,user.getUsername()); psta.setString(2,user.getPassword()); psta.setString(3,user.getUsernumber()); psta.setString(4,user.getPhone()); psta.setString(5,user.getEmail()); psta.setString(6,user.getAddress()); psta.setTimestamp(7,newTimestamp(user.getRdate().getTime())); psta.setDouble(8,0.0); psta.setInt(9,0); psta.executeUpdate();//利用PreparedStatement對(duì)數(shù)據(jù)庫修改(添加數(shù)據(jù)) connmit();//將所做的修改的事務(wù)提交 }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ conn.setAutoCommit(true);//將自動(dòng)提交值改為默認(rèn)值 }catch(SQLExceptione){ e.printStackTrace(); } DB.close(psta); DB.close(conn);//關(guān)閉連接數(shù)據(jù)庫的資源 } }會(huì)員注冊(cè)后每次只需登錄網(wǎng)站便可在網(wǎng)站購物。會(huì)員在首頁登錄表單內(nèi)填寫相應(yīng)的信息登錄網(wǎng)站。服務(wù)器驗(yàn)證信息正確則返回首頁顯示用戶成功登錄,并把用戶登錄信息添加進(jìn)session中統(tǒng)一管理。如果信息錯(cuò)誤則返回注冊(cè)頁面請(qǐng)會(huì)員重新登錄。 利用session在服務(wù)器中統(tǒng)一管理會(huì)員的登錄信息更能保證用戶登錄的安全。.2后臺(tái)會(huì)員管理設(shè)計(jì)該系統(tǒng)實(shí)現(xiàn)的后臺(tái)會(huì)員管理主要是獲取所有會(huì)員的信息使用表格將會(huì)員信息顯示在網(wǎng)頁上。該管理系統(tǒng)實(shí)現(xiàn)了會(huì)員信息類表的排序和分頁。 利用排序方式和頁面參數(shù)獲取會(huì)員列表分別使用了數(shù)據(jù)庫的排序操作和分頁操作技術(shù)。圖5-4用戶列表頁面5.2.4類別模塊 通過設(shè)計(jì)類別模塊能夠更方便的管理圖書目錄,消費(fèi)者在選購圖書的時(shí)候能夠更方便的按類別尋找自己喜愛的圖書,所以類別的設(shè)計(jì)很重要。能夠更好的引導(dǎo)消費(fèi)者選購也能夠更好的幫助管理者管理圖書。 類別管理同樣使用了實(shí)體類家三層業(yè)務(wù)邏輯類的方法。系統(tǒng)中設(shè)計(jì)了兩級(jí)類別,第一級(jí)類別為主類別,第二級(jí)為某主類別小細(xì)分的子類別。在數(shù)據(jù)庫表項(xiàng)中使用grade字段記錄類別的等級(jí)。并使用cno字段類別的排序號(hào)碼。Cno值使用了四位數(shù)字,前兩位為第一級(jí)類別使用,后兩位為第二級(jí)類別使用,即每一級(jí)都可添加一百種不同的類別。Cno更好的輔助了類別管理是遞歸的實(shí)現(xiàn)。在展示類別列表時(shí)按照cno排序即可實(shí)現(xiàn)遞歸的功能,依次展示主類別和旗下子類別。.1cno值計(jì)算在添加類別是需要添加類別的cno值,因?yàn)閏no值應(yīng)為系統(tǒng)自動(dòng)添加所以在業(yè)務(wù)邏輯中重點(diǎn)編寫了計(jì)算cno值的方法。 首先查詢同級(jí)兄弟類別中cno的最大值,如果同級(jí)兄弟類別中還有沒記錄的,重頭開始編寫該級(jí)別的cno(0000)。如果同級(jí)兄弟類別中已經(jīng)有了其他記錄,則要跟在其他記錄cno值后面編寫。publicintgetCno(Connectionconn,Categoryc){ Statementsta=DB.createStatement(conn); Stringsql="selectmax(cno)fromcategorywherepid="+c.getPid(); //查詢兄弟類別中的cno最大值使用 Stringgetpno="selectcnofromcategorywhereid="+c.getPid(); //查詢父親類別的cno值使用 ResultSetrs=DB.getResultSet(sta,sql); intcno=-1; try{ rs.next(); intmaxcno=rs.getInt(1); intaddno=(int)Math.pow(100,2-c.getGrade()); if(maxcno==0){ //說明同級(jí)兄弟類別中還有沒記錄所以尚且沒有cno數(shù)據(jù)重頭開始編寫該級(jí)別的cno(0000) if(c.getPid()==0){ //說明了要添加的該類別屬于第一級(jí)范圍該從百位數(shù)開始加(第一條記錄cno值:0100) cno=addno; }else{ //說明該類別不是第一級(jí)那么應(yīng)該從個(gè)位數(shù)開始加 ResultSetpnors=DB.getResultSet(sta,getpno); pnors.next(); intpno=pnors.getInt(1); cno=pno+addno; DB.close(pnors); } }else{ //說明同級(jí)兄弟類別中已經(jīng)有了其他記錄則要跟在其他記錄cno值后面編寫 cno=maxcno+addno; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.close(rs); DB.close(sta); } returncno; }.2類別的增刪改查網(wǎng)站管理員可以對(duì)類別進(jìn)行添加,修改,刪除,查看操作對(duì)類別進(jìn)行管理。 類別的添加,修改仍舊使用了表單添加信息提交到服務(wù)器然后添加進(jìn)數(shù)據(jù)庫的方法。值得注意的是不同等級(jí)的類別操作的方式不一樣。二級(jí)類別只能在第一級(jí)父親類別下面添加,所以當(dāng)添加第二類別是需要傳遞父親類別的id號(hào)碼作為參數(shù),如果沒有則顯示錯(cuò)誤信息要求指定父親類別。 類別列表查看時(shí)在類表中應(yīng)該有維護(hù)類表方法的連接。比如添加子類別,修改類別,刪除類別等,同樣使用用戶模塊中的列表技術(shù)。 類別的刪除使用刪除數(shù)據(jù)庫表記錄的操作。在商品管理中同樣有刪除的功能,大同小異,所以在這里詳細(xì)介紹類別的刪除。publicvoiddeleteCategory(intid){ Connectionconn=DB.getConnection(); Stringsql="deletefromcategorywhereid=?"; //通過id號(hào)碼的條件刪除相應(yīng)的記錄 PreparedStatementpsta=DB.prepareStatement(conn,sql); try{ conn.setAutoCommit(false); psta.setInt(1,id); psta.executeUpdate(); connmit(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ conn.setAutoCommit(true); }catch(SQLExceptione){ e.printStackTrace(); } DB.close(psta); DB.close(conn); } }值得注意的是:要?jiǎng)h除第一級(jí)類別時(shí),如果第一級(jí)類別下有第二級(jí)類別存在則不允許刪除。通過編寫testDelete()方法測(cè)試是否允許刪除,在JSP頁面中調(diào)用,如果不允許那么在類別類表頁面中則不能顯示刪除選項(xiàng)。publicbooleantestDelete(intid){ Connectionconn=DB.getConnection(); Statementsta=DB.createStatement(conn); Stringsql1="select*fromcategorywhereid="+id; //查詢類別 Stringsql2="select*fromcategorywherepid="+id; //查詢id號(hào)碼下面的所有的子類別 ResultSetrs1=DB.getResultSet(sta,sql1); booleandelete=true; try{ rs1.next(); if(rs1.getInt("grade")==1){ //如果該類別為第一級(jí)類別那么則要測(cè)試其下有沒有子類別 ResultSetrs2=DB.getResultSet(sta,sql2); if(rs2.next()){ delete=false; //一級(jí)類別下面有子類別所以設(shè)置delete值為false并返回告知不能刪除} DB.close(rs2); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.close(rs1); DB.close(sta); DB.close(conn); } returndelete; }圖5-5圖書類別頁面圖5-6添加類別頁面.3類別的前臺(tái)展示后臺(tái)管理員將類別展示之后需要在前臺(tái)頁面展示出來以供用戶瀏覽使用,同樣使用向業(yè)務(wù)邏輯傳遞集合參數(shù)的方法,從數(shù)據(jù)庫中取出數(shù)據(jù)放入集合categorylist中然后返回。在前臺(tái)頁面圖書列表的區(qū)塊中使用集合Iterator循環(huán)的技術(shù)從圖書表中獲取圖書列表放在<ul><li></li></ul>中展示。 注意的是當(dāng)通過ul列表將類別依次顯示出來并設(shè)置主類別和子類別的不同的class值,并在css設(shè)置時(shí)顯示效果不同,增強(qiáng)用戶的瀏覽效果性,提高網(wǎng)站的美觀性。圖書模塊.1后臺(tái)圖書管理的基本操作后臺(tái)圖書管理可以添加圖書,修改圖書信息,刪除圖書記錄。在添加圖書時(shí)需要傳遞一個(gè)類別的id參數(shù),在某類別下添加圖書,如果沒有參數(shù)則顯示錯(cuò)誤信息必須要在某類下添加圖書。圖書的信息包含了基本信息和詳細(xì)信息。方便管理員有選擇的添加圖書的相關(guān)信息。對(duì)于沒有必要添加圖書詳細(xì)信息的記錄則不添加。圖5-7圖書列表頁面.2前臺(tái)圖書的展示首頁中設(shè)計(jì)了熱賣圖書的展示區(qū)塊,最新圖書的展示區(qū)塊,促銷最快的展示區(qū)塊。使用按銷售額,上架時(shí)間,折扣排序從數(shù)據(jù)庫中獲取數(shù)據(jù)存放在傳遞的集合參數(shù)中。然后從集合中取出數(shù)據(jù)展示出來。三個(gè)區(qū)塊的設(shè)計(jì)大致相同。 用戶可以從類別表中選擇類表,點(diǎn)擊進(jìn)入該類別下的圖書展示網(wǎng)頁productshow.jsp進(jìn)行瀏覽。在該JSP網(wǎng)頁中獲得用戶點(diǎn)擊的categoryid號(hào)碼,作為參數(shù)傳遞給業(yè)務(wù)邏輯類處理通過categoryid號(hào)碼查詢屬于該類別的所有圖書展示。圖書記錄取出通過HTML中UL列表技術(shù)依次展示。在網(wǎng)頁中同樣實(shí)現(xiàn)了分頁和排序的技術(shù)。圖5-8圖書展示頁面購物車模塊購物車臨時(shí)存儲(chǔ)用戶的購物信息,用戶可以隨時(shí)增加商品,修改數(shù)量和刪除商品。購物車的數(shù)據(jù)存儲(chǔ)主要依賴sessiion來實(shí)現(xiàn)。.1購物車的創(chuàng)建本系統(tǒng)創(chuàng)建了購物車的實(shí)體類Cart和購物車內(nèi)物品的實(shí)體類CartItem來模擬購物車。在購物車實(shí)體類中設(shè)置了數(shù)據(jù)成員CartItem的集合及對(duì)該集合的get,set方法。在CartItem中編寫了Cart實(shí)體的引用作為數(shù)據(jù)成員。將整個(gè)圖書的信息封裝到了購物車中。在用戶的實(shí)體類編寫了Cart的引用將購物車的所有信息封裝到了所屬的用戶之中。用戶在網(wǎng)頁中點(diǎn)擊圖書時(shí)將圖書的id號(hào)碼傳遞到buy.jsp中并在網(wǎng)頁中過去該id號(hào)碼的圖書信息封裝到圖書對(duì)象中。然后將圖書對(duì)象添加進(jìn)CartItem網(wǎng)頁中實(shí)現(xiàn)將圖書記錄添加進(jìn)購物車。如果用戶沒有選購圖書則session中用戶對(duì)象中cart對(duì)象為空,如果用戶選購了圖書當(dāng)再次選購圖書時(shí)不能重新構(gòu)建購物車而是使用原有的購物車?yán)^續(xù)添加。.2購物車的管理用戶點(diǎn)擊購買圖書之后,圖書記錄存放在購物車之中。用戶可以隨時(shí)修改購物車中的信息,包括刪除圖書,增加圖書的記錄。在系統(tǒng)中編寫add方法和delete方法分別實(shí)現(xiàn)對(duì)購物的管理。重點(diǎn)設(shè)計(jì)add方法和delete方法,使得無論什么時(shí)候購物車中圖書的對(duì)象都是唯一的,利用購物車的count屬性記錄相同圖書對(duì)象的數(shù)量。如果購物車中已經(jīng)存在相同的圖書則只修改購圖書的數(shù)量即可。.3購物車的顯示設(shè)計(jì)購物車顯示模塊應(yīng)當(dāng)能夠使消費(fèi)者清楚自己已經(jīng)訂購的圖書種類,圖書的數(shù)量,每一種圖書的價(jià)格,以及將要下訂單的總價(jià)格,并提供更改購物車的連接接口使得消費(fèi)者更方便的管理自己訂購的圖書,放心的消費(fèi)。購物車模塊與訂單模塊都應(yīng)當(dāng)有訂購圖書名稱,價(jià)格,總價(jià)格的顯示。圖5-9購物車頁面訂單模塊訂單模塊是整個(gè)系統(tǒng)功能最后的也是最關(guān)鍵的模塊,因?yàn)橹挥杏脩粽_的提交了訂單才能保證用戶的合法消費(fèi)權(quán)益,網(wǎng)站才能根據(jù)用戶的訂單發(fā)送圖書。正確設(shè)計(jì)訂單模塊才能根據(jù)消費(fèi)者的消費(fèi)正確更新消費(fèi)者等級(jí)信息,提高消費(fèi)者的優(yōu)惠享受。正確設(shè)計(jì)訂單模塊才能使管理員清楚圖書的銷售進(jìn)度及庫存數(shù)最新狀態(tài)。所以訂單的設(shè)計(jì)尤為關(guān)鍵。整個(gè)訂單模塊可分為用戶確認(rèn)提交訂單部分,用戶在我的帳戶中查看訂單信息部分,網(wǎng)站管理員管理訂單并更改訂單信息發(fā)貨部分,用戶提交訂單之后用戶消費(fèi)等級(jí)信息的修改及網(wǎng)站圖書記錄銷售額和庫存的修改部分。在訂單提交時(shí)首先要檢測(cè)用戶是否在登陸狀態(tài),只有用戶在登陸狀態(tài)時(shí)才能提交訂單。在訂單頁面中顯示消費(fèi)者的聯(lián)系方式和送貨地址。消費(fèi)者可在訂單頁面再次修改自己的號(hào)碼和送貨地址作為本次訂購的聯(lián)系方式。在訂單頁面中仍舊顯示購物車中圖書,可供消費(fèi)者再次查看并確定,否則可返回修改購物車,當(dāng)消費(fèi)者驗(yàn)證完所有信息后可點(diǎn)擊提交訂單。訂購圖書正確送到消費(fèi)者手中之后,管理員應(yīng)該更新訂單成功狀態(tài)以使及時(shí)改變用戶的消費(fèi)記錄和等級(jí),改變網(wǎng)站系統(tǒng)此圖書的銷售數(shù)量。.1創(chuàng)建訂單跟購物車相似訂單同樣有訂單實(shí)體類和訂單項(xiàng)實(shí)體類兩個(gè),在訂單類SalesOrder中有數(shù)據(jù)成員訂單項(xiàng)的集合salesitemlist可以承載訂單項(xiàng)SalesItem類的實(shí)例。按照數(shù)據(jù)庫相應(yīng)表結(jié)構(gòu)來確定各類都具有自己的其他數(shù)據(jù)成員。在用戶的實(shí)體類中添加訂單類的引用,將訂單對(duì)象放入session管理,調(diào)用業(yè)務(wù)邏輯處理添加進(jìn)數(shù)據(jù)庫。.2用戶提交訂單用戶從購物車頁面點(diǎn)擊結(jié)算連接到訂單頁面sale.jsp調(diào)用buy方法把購物車?yán)锏男畔?gòu)造成為訂單對(duì)象。publicvoidbuy(Useruser){ SalesOrderso=newSalesOrder();//構(gòu)造訂單類對(duì)象 so.setUser(user);//編寫訂單屬于那個(gè)用戶在訂單類中編寫了用戶的引用 so.setOdate(newDate()); so.setStatus(0);//訂單狀態(tài)為0表示訂單尚未處理 for(Iteratori=user.getCart().getCartitems().iterator();i.hasNext();){//從購物車中取出圖書記錄 CartItemci=(CartItem)i.next(); SalesItemsi=newSalesItem(); si.setProduct(ci.getP()); si.setCount(ci.getCount());//將從購物車中取出的圖書添加進(jìn)訂單項(xiàng)之中 doubleprice=(//定義變量price表示圖書的單價(jià)price的只根據(jù)圖書的市場(chǎng)價(jià)格與會(huì)員等級(jí)對(duì)應(yīng)的圖書折扣的乘積并乘以圖書的數(shù)量計(jì)算而得,因?yàn)樵谫徫镘嚹K展示功能中已經(jīng)介紹這里沒有編寫。); si.setUnitprice(price);//將price值設(shè)為訂單中圖書的訂購單價(jià) so.getSalesitemlist().add(si);//把訂單項(xiàng)添加如訂單的訂單項(xiàng)集合中 user.setSo(so);//將訂單對(duì)加入user對(duì)象放入session中管理也被插入數(shù)據(jù)庫存儲(chǔ)。 } }在該頁面通過表單顯示用戶的和地址信息是用戶可以在此頁面再次訂購的圖書要送達(dá)的地址和聯(lián)系。此頁面重新能顯示購物車中的圖書使用戶做最后的確認(rèn)。用戶點(diǎn)擊提交訂單連接到saleconfirm.jsp頁面調(diào)用業(yè)務(wù)邏輯把session保存的訂單添加進(jìn)數(shù)據(jù)庫中保存。Stringphone=request.getParameter("phone"); Stringaddress=request.getParameter("address");//從上個(gè)頁面獲取用戶修改的訂單的信息和地址 SalesOrderso=user.getSo(); so.setPhone(phone); so.setAddress(address);//將修改的參數(shù)信息添加進(jìn)session中的訂單對(duì)象中。SalesManager.getInstance().sale(so);//調(diào)用撒了方法將訂單對(duì)象數(shù)據(jù)添加進(jìn)數(shù)據(jù)庫sale()方法為一般的數(shù)據(jù)添加操作。.3后臺(tái)訂單管理后臺(tái)訂單管理包括了訂單查詢和訂單狀態(tài)修改兩部分。該系統(tǒng)中設(shè)置了訂單查詢的三層方法調(diào)用,訂單對(duì)象中用戶的引用,有訂單項(xiàng)的集合,需要調(diào)用方法獲得user對(duì)象和包含了訂單項(xiàng)的訂單集合。在訂單項(xiàng)中有圖書類對(duì)象的引用,要調(diào)用方法獲得該訂單項(xiàng)的圖書對(duì)象。當(dāng)訂購圖書成功送達(dá)之后管理員需要處理訂單的狀態(tài),訂單狀態(tài)應(yīng)為成功。在訂單展示頁面salesorderlist.jsp中有用戶查詢訂單的表單,該表單通過管理員輸入訂單號(hào)碼來查詢要處理的表單,快捷方便,而不用從繁雜的訂單表中苦苦尋找。搜索到要處理的表單后點(diǎn)擊處理連接即可將表單的狀態(tài)改為成功,于此同時(shí)將改變用戶的消費(fèi)信息包括改變用戶的消費(fèi)金額總值和用戶的等級(jí)。圖5-10訂單展示頁面.4用戶查看訂單用戶在登錄之后可以在我的帳戶中查看自己的訂單,使用常用的通過傳遞集合參數(shù)和id號(hào)碼查詢的方法,使用while循環(huán)方式在我的帳戶頁面中顯示出來并顯示訂單的狀態(tài)。圖5-11用戶訂單頁面系統(tǒng)測(cè)試及難點(diǎn)分析6.1系統(tǒng)運(yùn)行環(huán)境的搭建JAVA虛擬機(jī)的安裝本系統(tǒng)采用的是基于java的jsp技術(shù),所以java虛擬環(huán)境即java虛擬機(jī)是必須要安裝的。JDK(JavaDevelopmentKit)是一切java應(yīng)用程序的基礎(chǔ),可以說所有的java應(yīng)用程序是構(gòu)建在這個(gè)之上的。它是一組API,也可以說是一些javaClass。目前已經(jīng)正式發(fā)布的最新版本是JDK1.5。Windows下,直接運(yùn)行.exe文件,安裝到一個(gè)目錄,如C:/jdk1.5,安裝完成后就是環(huán)境變量的設(shè)置。->高級(jí)->環(huán)境變量->在“系統(tǒng)變量”>“新建”->在變量名中輸入:JAVA_HOME,變量值中輸入:C:/jdk1.5同樣再新建一個(gè)變量名CLASSPATH,變量值:C:\jdk1.5;C:\jdk1.5\lib\dt.jar;C:\jdk1.5\lib\tools.jar;還需要在Path變量值后面添加一個(gè)值:C:\jdk1.5\bin。至此JAVA環(huán)境安裝成功。我們可以在命令行中敲入命令java如果顯示java幫助,則證明環(huán)境設(shè)置成功。Tomcat環(huán)境搭建安裝TOMCAT,直接使用默認(rèn)安裝就可以了,假如我們將其安裝在C:\Tomcat6.0,打開Tomcat5.5文件中的bin文件,雙擊其中的運(yùn)行程序start.bat,顯示serverstart,服務(wù)器正常啟動(dòng),此時(shí)在瀏覽器上敲入本地測(cè)試地址:://localhost:8888如果出現(xiàn)Tomcat頁面則證明Tomcat安裝成功,而且正常啟動(dòng)。到這里,系統(tǒng)運(yùn)行所需要的基本運(yùn)行環(huán)境已經(jīng)安裝完成。6.2系統(tǒng)程序的安裝和加載文件的拷貝我們可以將整個(gè)系統(tǒng)文件夾KeHuiBookShop拷貝到Tomcat的默認(rèn)根目錄下,一般路徑為:C:\Tomcat5.5\webapps\。數(shù)據(jù)庫的連
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋土地買賣合同書
- 計(jì)算機(jī)與辦公設(shè)備行業(yè)作業(yè)指導(dǎo)書
- 屋頂防水合同
- 公寓裝修協(xié)議合同
- 2025年佛山貨運(yùn)從業(yè)資格證模擬考試題下載
- 2024-2025學(xué)年新教材高中地理第五章地球上的植被與土壤第一節(jié)主要植被與自然環(huán)境課后篇鞏固提升含解析湘教版必修第一冊(cè)
- 湘教版九年級(jí)數(shù)學(xué)下冊(cè)2.5直線與圓的位置關(guān)系2.5.2第1課時(shí)切線的判定聽評(píng)課記錄
- 班主任工作計(jì)劃幼兒園
- 初三物理教學(xué)工作計(jì)劃
- 幼兒教師個(gè)人培訓(xùn)工作計(jì)劃
- 設(shè)計(jì)單位-質(zhì)量管理體系
- 2024版《供電營業(yè)規(guī)則》學(xué)習(xí)考試題庫500題(含答案)
- 全國職業(yè)院校技能大賽培訓(xùn)課件
- 福建省醫(yī)院大全
- GB/T 16659-2024煤中汞的測(cè)定方法
- 閃蒸罐計(jì)算完整版本
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 完整2024年開工第一課課件
- 貨運(yùn)車輛駕駛員安全培訓(xùn)內(nèi)容資料完整
- 高一學(xué)期述職報(bào)告
- 風(fēng)神汽車4S店安全生產(chǎn)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論