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