国产精品色无码视频,国产av毛片影院精品资源,亚洲人成网站77777·c0m,囯产av无码片毛片一级,夜夜操www99视频,美女白嫩胸交在线观看,亚洲a毛片性生活

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 計(jì)劃總結(jié) > 工作總結(jié) > 網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告

網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 14:30:21 | 移動(dòng)端:網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告

網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告

項(xiàng)目小組:計(jì)應(yīng)1003班第五小組組員:李圣杭黃守多許明生

以下內(nèi)容:李圣杭

1、開(kāi)發(fā)結(jié)果

軟件產(chǎn)品描述

例如:

交付的軟件產(chǎn)品名稱:網(wǎng)上書店系統(tǒng)英文縮成:book

版本標(biāo)識(shí):Version1.0

子系統(tǒng):前臺(tái)購(gòu)書,后臺(tái)管理。軟件系統(tǒng)模塊清單:1、用戶注冊(cè)/登陸2、用戶信息修改3、查看商品詳情4、實(shí)現(xiàn)購(gòu)物5、查看購(gòu)物車6、圖書管理7、訂單管理8、用戶管理文檔清單:

《項(xiàng)目開(kāi)發(fā)計(jì)劃書》,《需求分析報(bào)告》,《概要設(shè)計(jì)報(bào)告》,《詳細(xì)設(shè)計(jì)報(bào)告》,《測(cè)試分析報(bào)告》。

2、開(kāi)發(fā)工作評(píng)價(jià)

對(duì)項(xiàng)目開(kāi)發(fā)過(guò)程的評(píng)價(jià)

總的來(lái)說(shuō)開(kāi)發(fā)的過(guò)程還可以,但還是有點(diǎn)不盡如人意。

第一、計(jì)劃不周全,對(duì)于問(wèn)題的想象不全面,導(dǎo)致了在開(kāi)發(fā)過(guò)程中出現(xiàn)了各種各樣的問(wèn)題,例如在頁(yè)面的開(kāi)發(fā)設(shè)計(jì)時(shí),沒(méi)考慮到與數(shù)據(jù)庫(kù)的相對(duì)應(yīng),所以在各方面都出現(xiàn)了嚴(yán)重的問(wèn)題。

第二、小組不配合,遇到一些簡(jiǎn)單的問(wèn)題自己一個(gè)根本就解決不了,導(dǎo)致了開(kāi)發(fā)的進(jìn)度慢了好多。

以下內(nèi)容:黃守多制作3、對(duì)技術(shù)方法的評(píng)價(jià)

本次項(xiàng)目開(kāi)發(fā)中運(yùn)用的技術(shù)就是jsp,通過(guò)本次項(xiàng)目,更加熟練地掌握了對(duì)于jsp的軟件應(yīng)用。

對(duì)產(chǎn)品質(zhì)量的評(píng)價(jià)總體的來(lái)說(shuō)本項(xiàng)目的系統(tǒng)功能基本上算是齊全了,但還是存在著一些小細(xì)節(jié)方面的問(wèn)題

以下內(nèi)容:許明生制作4、技術(shù)積累與經(jīng)驗(yàn)總結(jié)

技術(shù)積累:大量應(yīng)用到了表單數(shù)據(jù)的提交于獲取,熟練地掌握了request.getParameter(Stringname);方法對(duì)數(shù)據(jù)的提交與保存。還有就是對(duì)于頁(yè)面之間的鏈接以及利用session方法對(duì)商品的保存于提取。

經(jīng)驗(yàn)總結(jié):增加了項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn),對(duì)于團(tuán)隊(duì)之間的團(tuán)結(jié)與合作,深入體會(huì)到了在團(tuán)隊(duì)開(kāi)發(fā)過(guò)程中每個(gè)隊(duì)員的重要性,以及團(tuán)隊(duì)開(kāi)發(fā)之間的統(tǒng)一性。

擴(kuò)展閱讀:網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)報(bào)告

201*屆畢業(yè)生

畢業(yè)設(shè)計(jì)

題目:基于

院系名稱:xxx專業(yè)班級(jí):xx

學(xué)生姓名:xx學(xué)號(hào):xx指導(dǎo)教師:xx教師職稱:講師

年月日

web的網(wǎng)絡(luò)書店系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)

目次

1引言項(xiàng)目開(kāi)發(fā)背景………………………………………………………………11.1項(xiàng)目選題的背景及意義…………………………………………………………………21.2國(guó)內(nèi)外研究現(xiàn)狀和發(fā)展動(dòng)態(tài)………………………………………………………………32第一章需求分析……………………………………………………………42.1用戶需求……………………………………………………………………………52.1開(kāi)發(fā)需求…………………………………………………………………………………83第二章概要設(shè)計(jì)…………………………………………………………………………113.1項(xiàng)目主體模塊設(shè)計(jì)………………………………………………………………………113.2項(xiàng)目基本功能設(shè)計(jì)………………………………………………………………………143.3項(xiàng)目數(shù)據(jù)庫(kù)設(shè)計(jì)…………………………………………………………………………164第三章數(shù)據(jù)庫(kù)設(shè)計(jì)………………………………………………………………………174.1數(shù)據(jù)庫(kù)表設(shè)計(jì)……………………………………………………………………………175第四章詳細(xì)設(shè)計(jì)……………………………………………………………205.1開(kāi)發(fā)規(guī)范…………………………………………………………………………………205.2程序設(shè)計(jì)說(shuō)明……………………………………………………………………………225.3主要代碼設(shè)計(jì)……………………………………………………………………………245.4視圖設(shè)計(jì)…………………………………………………………………………………26結(jié)論……………………………………………………………………………………40致謝……………………………………………………………………………………41參考文獻(xiàn)………………………………………………………………………………42附錄A項(xiàng)目源代碼…………………………………………………………………43

1引言

1.1論文選題的背景及意義

隨著全球經(jīng)濟(jì)一體化的逐步發(fā)展和深入,網(wǎng)絡(luò)書店已成為傳統(tǒng)書店必不可少的經(jīng)營(yíng)策略之一.目前,網(wǎng)絡(luò)書店在國(guó)際互聯(lián)網(wǎng)上可以實(shí)現(xiàn)的商務(wù)已經(jīng)多樣化,可以完成從最基本的信息展示、信息發(fā)布功能到在線交易、在線客戶服務(wù)、在線網(wǎng)站管理功能等,可以說(shuō),傳統(tǒng)書店所具備的功能幾乎都可以在互聯(lián)網(wǎng)上進(jìn)行電子化的高效動(dòng)作。雖然傳統(tǒng)書店規(guī)模有所不同,隨著網(wǎng)上交易的開(kāi)展,都將有力地改變企業(yè)的發(fā)展空間,會(huì)對(duì)企業(yè)的競(jìng)爭(zhēng)力產(chǎn)生不可忽視的影響。這些影響主要體現(xiàn)在以下方面。1、改變企業(yè)競(jìng)爭(zhēng)方式

企業(yè)上網(wǎng)不僅給消費(fèi)者和企業(yè)提供了更多的選擇消費(fèi)與開(kāi)拓銷售市場(chǎng)的機(jī)會(huì),而且也是提供了更加密切的信息交流場(chǎng)所,從而提高了企業(yè)把握市場(chǎng)和消費(fèi)者了解市場(chǎng)的能力。同時(shí)企業(yè)上網(wǎng)擴(kuò)大了企業(yè)的競(jìng)爭(zhēng)領(lǐng)域,使企業(yè)從常規(guī)的廣告競(jìng)爭(zhēng)、促銷手段等領(lǐng)域的競(jìng)爭(zhēng)擴(kuò)大到無(wú)形的虛擬競(jìng)爭(zhēng)空間。2、改變企業(yè)競(jìng)爭(zhēng)基礎(chǔ)

網(wǎng)絡(luò)書店改變了企業(yè)競(jìng)爭(zhēng)的交易成本。網(wǎng)絡(luò)書店具有投入成本低、批發(fā)數(shù)量大及用戶多的優(yōu)勢(shì)。電子商務(wù)也使企業(yè)規(guī)模影響競(jìng)爭(zhēng)力的基礎(chǔ)發(fā)生了改變。例如在傳統(tǒng)的銷售渠道中,大書商與小書商之間的競(jìng)爭(zhēng)差別很大。電子商務(wù)使大書商與小書商之間規(guī)模差距的競(jìng)爭(zhēng)變得幾乎微不足道。美國(guó)西雅圖亞馬遜公司在網(wǎng)上開(kāi)辦了一家大型書店,提供250萬(wàn)冊(cè)圖書供在線購(gòu)買。只有兩個(gè)人管理的網(wǎng)絡(luò)書店提供的書目和服務(wù),幾乎可以與200人管理的傳統(tǒng)書店提供的書目和服務(wù)一樣。3、改變企業(yè)的競(jìng)爭(zhēng)模式

網(wǎng)絡(luò)書店的經(jīng)驗(yàn)表明,如果網(wǎng)絡(luò)書店可以為顧客提供品種齊全的圖書、折扣以及靈活的條件、可靠的安全性和友好的界面,在線購(gòu)物者一般都愿意在網(wǎng)上進(jìn)行圖書交易。、

1.2論國(guó)內(nèi)外研究現(xiàn)狀和發(fā)展動(dòng)態(tài)

國(guó)外的Web商務(wù)系統(tǒng)應(yīng)用起步較早,所以應(yīng)用的領(lǐng)域比較廣,網(wǎng)絡(luò)銷售已經(jīng)在人們?nèi)粘OM(fèi)中占到一定比例,Web商務(wù)系統(tǒng)也比較成熟。人們可以以網(wǎng)絡(luò)這個(gè)載體,足不出戶就可以搜索、查詢到自己需要的信息、購(gòu)買自己需要的商品。我國(guó)電子商務(wù)的發(fā)展起源于70年代的EDI應(yīng)用,我國(guó)海關(guān)是最早引入EDI進(jìn)行報(bào)關(guān),經(jīng)過(guò)幾年的完善發(fā)展目前企業(yè)可以通過(guò)上網(wǎng)申請(qǐng)報(bào)關(guān)。電子商務(wù)概念首次引入中國(guó)實(shí)在1993年,第一筆網(wǎng)上交易發(fā)生在1996年。

1、目前我國(guó)網(wǎng)上書店的主要類型有:

由國(guó)有新華書店投資建設(shè)的網(wǎng)絡(luò)書店。一些有實(shí)力的傳統(tǒng)書店,都會(huì)建立自己的網(wǎng)站,利用網(wǎng)絡(luò)促銷,爭(zhēng)取更多的市場(chǎng)份額。它們主要依托傳統(tǒng)的圖書大廈的圖書存儲(chǔ)進(jìn)行網(wǎng)絡(luò)售書,屬于新華書店網(wǎng)絡(luò)或網(wǎng)絡(luò)的書店。

由出版社建立的網(wǎng)絡(luò)書店。因?yàn)榫W(wǎng)絡(luò)出版的緣故,出版社是最早觸網(wǎng)的,我國(guó)500多家出版社中,已建立網(wǎng)站的有349家,占62%。較好的出版社營(yíng)銷網(wǎng)站建設(shè)的特點(diǎn)是:以出版社本社出版物為網(wǎng)站核心,突出特色,訪問(wèn)速度快捷,信息及時(shí)更新,內(nèi)容的合理編排以及完善的檢索能力,較強(qiáng)的交互能力。

外貿(mào)出版公司投資建設(shè)的網(wǎng)絡(luò)書店。這一類網(wǎng)絡(luò)書店立足公司主營(yíng)業(yè)務(wù),主要對(duì)海外進(jìn)行圖書銷售,銷售量逐漸增加。

非出版業(yè)資本投資建設(shè)的網(wǎng)絡(luò)書店。如卓越網(wǎng)。

就目前情況而言,上述幾類的網(wǎng)絡(luò)書店可以分為兩大類。一類是沒(méi)有實(shí)體書店的網(wǎng)絡(luò)書店,以卓越網(wǎng)為代表,還有一類是以實(shí)體書店為支撐的。前一類書店已經(jīng)逐步銷售更多的商品,在很大程度上是以圖書為主打產(chǎn)品,開(kāi)發(fā)其它商品作為補(bǔ)充,如卓越網(wǎng)在大幅增加圖書音像品種的同時(shí),陸續(xù)增加了數(shù)碼產(chǎn)品、手機(jī)、家居、健康用品和化妝品、玩具禮品、鐘表首飾、廚具、母嬰產(chǎn)品、小家電等等。

2、網(wǎng)絡(luò)書店面臨的困境

國(guó)內(nèi)網(wǎng)絡(luò)書店的目的主要有:利用圖書銷售盈利、效仿亞馬遜提高無(wú)形資產(chǎn)價(jià)值、以拉廣告賺錢、緊跟電子商務(wù)潮流等,其中,前兩種占大多數(shù)。然而,實(shí)際情況是網(wǎng)絡(luò)書店并未達(dá)到預(yù)期的效果,有的根本沒(méi)什么訪問(wèn)量,有的雖然訪問(wèn)人數(shù)眾多,但成交有限、營(yíng)銷平淡,同時(shí)網(wǎng)上廣告也并未被大商家認(rèn)同。

3、網(wǎng)絡(luò)書店的意義

在中國(guó),網(wǎng)絡(luò)書店有發(fā)展的必要,也有發(fā)展的基礎(chǔ),發(fā)展網(wǎng)絡(luò)書店的條件也已經(jīng)成熟,但是還有幾個(gè)關(guān)鍵的問(wèn)題必須解決好:一是提供普通的信用卡網(wǎng)上支付,制定方便的銀行間結(jié)算問(wèn)題;二是成立統(tǒng)一的、最權(quán)威的認(rèn)證機(jī)構(gòu),從而解決安全問(wèn)題;三是構(gòu)建高效率的圖書配送系統(tǒng)。只有把這些問(wèn)題解決好了,才能保證網(wǎng)絡(luò)書店的蓬勃發(fā)展。

很多人看到了書這種商品網(wǎng)上銷售的諸多好處:方便購(gòu)買、金額小、風(fēng)險(xiǎn)小、用戶易決定,以及信息的完整性可以更好地幫助我們選擇,也提供了更多地選擇。

2第一章需求分析

2.1用戶需求

基于WEB的網(wǎng)絡(luò)書店系統(tǒng)主要實(shí)現(xiàn)網(wǎng)上購(gòu)書,網(wǎng)站最終實(shí)現(xiàn)用戶通過(guò)訪問(wèn)本網(wǎng)站進(jìn)行選購(gòu)自己喜歡的商品,然后網(wǎng)上下達(dá)訂單、修改訂單、結(jié)算、創(chuàng)建個(gè)人資料,修改個(gè)人資料留言等。網(wǎng)站運(yùn)行路線為用戶通過(guò)請(qǐng)求一個(gè)JSP頁(yè)面,然后后臺(tái)調(diào)用處理該功能的Servlet,Servlet接著調(diào)用底層的業(yè)務(wù)層,最終服務(wù)器根據(jù)用戶請(qǐng)求返回用戶查詢的結(jié)果。

系統(tǒng)基本要實(shí)現(xiàn)用戶注冊(cè)、用戶登錄、修改資料、下達(dá)訂單、網(wǎng)上結(jié)算、搜索等功能。本系統(tǒng)使用方便,用戶只需輸入網(wǎng)址即可進(jìn)入系統(tǒng)主界面瀏覽所有商品,注冊(cè)方便快捷,對(duì)使用者來(lái)說(shuō)無(wú)需精通計(jì)算機(jī)知識(shí)易可操作。項(xiàng)目的維護(hù)者需具備JSP知識(shí)和Java基礎(chǔ)等知識(shí),以備在擴(kuò)充和刪減網(wǎng)站功能。

對(duì)功能的規(guī)定:

商品檢索:查詢數(shù)據(jù)庫(kù)(商品返回用戶輸入文本字段表)

商品基本信息

購(gòu)買商品:添加購(gòu)物車(商返回用戶點(diǎn)擊購(gòu)買商品品)

商品信息(含件數(shù))

2.2開(kāi)發(fā)目標(biāo)

此系統(tǒng)采用MVC架構(gòu)模式,將業(yè)務(wù)層和邏輯層進(jìn)行了分離,便于日后的修改與維護(hù),維護(hù)人員只需修改部分業(yè)務(wù)即可,而且不會(huì)對(duì)系統(tǒng)其他功能產(chǎn)生影響。

用戶查詢商品時(shí)輸入必須輸入字符串否則查詢不到相關(guān)商品。

輸出信息:用戶注冊(cè)時(shí)如果輸入的內(nèi)容不匹配,將會(huì)出現(xiàn)紅色顏色的字體提示。環(huán)境方面,系統(tǒng)分辨率最好為1024*768,瀏覽器為IE最佳。數(shù)據(jù)庫(kù)編碼應(yīng)為UTF-8。故障處理:主要可能是tomcat配置問(wèn)。導(dǎo)致結(jié)果:無(wú)法運(yùn)行,系統(tǒng)提示錯(cuò)誤。軟件方面故障:根據(jù)實(shí)際的頁(yè)面業(yè)務(wù)進(jìn)行判斷。導(dǎo)致結(jié)果:頁(yè)面出錯(cuò),功能不完善或錯(cuò)亂等。網(wǎng)站流程設(shè)計(jì):

展示所有商品:Bookindex1.jsp通過(guò)點(diǎn)擊商品進(jìn)入→購(gòu)物車:shoping.jsp

若購(gòu)買商品需進(jìn)行登錄,若是不是會(huì)員需→進(jìn)入注冊(cè)頁(yè)面:register.jspregister.jsp→然后進(jìn)入登錄頁(yè)面:login.jsp→我的賬戶:userInfo.jsp→可以上傳頭像UploadImage.jsp以及進(jìn)入留言頁(yè)面liuyan.jsp以及后臺(tái)管理頁(yè)面bkLogin.jsp,添加書頁(yè)面bkAdd.jsp,后臺(tái)書本信息bkShowBookInfo.jsp以及查看日志功能.

3第二章概要設(shè)計(jì)

3.1項(xiàng)目主體模塊

用戶否是否是管理員是管理書籍和用戶可購(gòu)買享受折扣書進(jìn)庫(kù)和增刪改購(gòu)買存入購(gòu)物車用戶的注冊(cè)考核賬戶付款存入數(shù)據(jù)庫(kù)存入

3.1.1對(duì)性能的規(guī)定

a.靈活性方面,此系統(tǒng)采用MVC架構(gòu)模式,將業(yè)務(wù)層和邏輯層進(jìn)行了分離,便于日后的修改與維護(hù),維護(hù)人員只需修改部分業(yè)務(wù)即可,而且不會(huì)對(duì)系統(tǒng)其他功能產(chǎn)生影響。b.環(huán)境方面,系統(tǒng)分辨率最好為1024*768,瀏覽器為IE最佳。數(shù)據(jù)庫(kù)編碼應(yīng)為UTF-8。3.1.2輸人輸出要求

用戶查詢商品時(shí)輸入相關(guān)信息否則檢索不到相關(guān)商品。

輸出信息:用戶注冊(cè)時(shí)如果輸入的內(nèi)容不匹配,將會(huì)出現(xiàn)紅色顏色的字體提示。3.1.3數(shù)據(jù)管理能力要求

需管理的數(shù)據(jù)表:書表:book;用戶表:user;用戶消費(fèi)信息表:userRecord表;用戶賬戶表:userAccount;庫(kù)存表:stack;

其中表中各項(xiàng)數(shù)據(jù)的長(zhǎng)度一般為30.可隨實(shí)際情況進(jìn)行修改。若含有URL大小一般定為100.(也可根據(jù)實(shí)際情況進(jìn)行長(zhǎng)度修改)。3.1.4故障處理要求

環(huán)境方面故障:主要可能是tomcat配置問(wèn)。導(dǎo)致結(jié)果:無(wú)法運(yùn)行,系統(tǒng)提示錯(cuò)誤。軟件方面故障:根據(jù)實(shí)際的頁(yè)面業(yè)務(wù)進(jìn)行判斷。導(dǎo)致結(jié)果:頁(yè)面出錯(cuò),功能不完善或錯(cuò)亂等。

3.1.5其他專門要求

對(duì)于用戶需安全保密方面的信息采用MD5加密。3.2運(yùn)行環(huán)境3.2.1設(shè)備

屏幕分辨率:最佳分辨率為1024*768;3.2.2支持軟件

支持Windows、Linux等系統(tǒng)使用。3.2.3接口服務(wù)器接口:8088數(shù)據(jù)通信協(xié)議:Http3.3接口設(shè)計(jì)3.3.1內(nèi)部接口

展示所有商品:Bookindex1.jsp通過(guò)點(diǎn)擊商品進(jìn)入→購(gòu)物車:shoping.jsp

若購(gòu)買商品需進(jìn)行登錄,若是不是會(huì)員需→進(jìn)入注冊(cè)頁(yè)面:register.jspregister.jsp→然后進(jìn)入登錄頁(yè)面:login.jsp→我的賬戶:userInfo.jsp→可以上傳頭像UploadImage.jsp以及進(jìn)入留言頁(yè)面liuyan.jsp以及后臺(tái)管理頁(yè)面bkLogin.jsp,添加書頁(yè)面bkAdd.jsp,后臺(tái)書本信息bkShowBookInfo.jsp以及查看日志功能.

3.4運(yùn)行設(shè)計(jì)

3.4.1運(yùn)行模塊組合:用戶注冊(cè)

實(shí)現(xiàn)功能:本頁(yè)面要實(shí)現(xiàn)用戶注冊(cè)信息的功能,并在客戶端進(jìn)行用戶提交的基本信息的驗(yàn)證,驗(yàn)證成功后再提交到數(shù)據(jù)庫(kù)進(jìn)行驗(yàn)證。

所需用到知識(shí):jQuery表單驗(yàn)證、驗(yàn)證碼的使用、圖片代替提交按鈕、層的布局與使用,數(shù)據(jù)庫(kù)連接池。用戶登錄

實(shí)現(xiàn)功能:主要實(shí)現(xiàn)用戶登錄的功能。只需進(jìn)行簡(jiǎn)單的數(shù)據(jù)驗(yàn)證即可提交服務(wù)器,然后根據(jù)用戶提交的信息查詢數(shù)據(jù)庫(kù),如果與數(shù)據(jù)庫(kù)里的信息一致方可成功登錄系統(tǒng)。所需用到知識(shí):jQuery表單驗(yàn)證、圖片代替提交按鈕、層的布局與使用,數(shù)據(jù)庫(kù)連接池。個(gè)人信息管理

實(shí)現(xiàn)功能:管理用戶使用本站的詳細(xì)信息。包括用戶注冊(cè)相關(guān)信息等。所用到知識(shí):Servlet和JSP動(dòng)態(tài)顯示用戶登錄信息,數(shù)據(jù)庫(kù)增刪改查功能。我的購(gòu)物車

實(shí)現(xiàn)功能:動(dòng)態(tài)顯示用戶的購(gòu)物信息,統(tǒng)計(jì)用戶所購(gòu)的商品信息。

所用到知識(shí):Servlet和JSP動(dòng)態(tài)顯示用戶登錄信息,數(shù)據(jù)庫(kù)增刪改查功能。個(gè)人資料管理

實(shí)現(xiàn)功能:供用戶修改個(gè)人詳細(xì)信息。

所用到知識(shí):表單的詳細(xì)使用,數(shù)據(jù)庫(kù)連接池與數(shù)據(jù)庫(kù)更新功能。商品詳細(xì)信息頁(yè)面

實(shí)現(xiàn)功能:此頁(yè)面主要顯示用戶欲購(gòu)買的商品的詳細(xì)信息。所用知識(shí):Servlet和JSP動(dòng)態(tài)顯示用戶登錄信息,數(shù)據(jù)庫(kù)查詢。3.5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3.5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)數(shù)據(jù)庫(kù)名:WBS標(biāo)示符:書表:book;用戶表:user;

用戶賬戶表:userAccount;留言表:liuyan;庫(kù)存表:stack;管理員表:super;3.5.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)

通過(guò)MD5加密方法實(shí)現(xiàn)用戶信息的保密,并存儲(chǔ)于數(shù)據(jù)庫(kù)內(nèi)。3.6系統(tǒng)出錯(cuò)處理設(shè)計(jì)3.6.1出錯(cuò)信息a.404請(qǐng)求錯(cuò)誤。b.505相應(yīng)錯(cuò)誤。

4第三章數(shù)據(jù)庫(kù)設(shè)計(jì)

4.1數(shù)據(jù)庫(kù)表

本項(xiàng)目采用mysql數(shù)據(jù)庫(kù)。數(shù)據(jù)表如下:4.1圖書表

書表(book)字段名idBookNameBookAuthorBookPriceBookImageURLBookLibraryIdBookPublishBookRebateBookFileBookPagesBookTotalBookCodeBookEdition字段類型intvarcharvarcharfloat(10,2)varcharintcharfloat(10)charintintcharchar字段長(zhǎng)度3030100301003030是否為空非是否為主鍵是否否否否否否否否否否否否否BookPublishTimedate

4.2用戶表

用戶表(user)字段名idusernamepasswordemailuserPicture字段類型intvarcharvarcharvarcharvarchar字段長(zhǎng)度303030100是否為空是否為主鍵是否否否否

4.3書類表

書類表(BookLibrary)字段名Id字段類型int字段長(zhǎng)度30

是否為空非是否為主鍵是否BookLibraryNamevarchar4.4用戶賬戶表

用戶賬戶表(UserAccount)字段名iduserNameBalance類型intvarchar長(zhǎng)度30是否為空非主鍵是否否外鍵float(10,2)4.5用戶消費(fèi)表

用戶消費(fèi)表(ConsumRecord)字段名iduserId

ConsumTimeBuyBookName類型intIntdatevarchar長(zhǎng)度30是否為空非主鍵是外鍵

4.6留言表

留言表(messages)

字段名iduserIdMessage

類型intintvarchar

長(zhǎng)度6300

是否為空非

主鍵是否否

外鍵

4.7留言回復(fù)表replymessage

4.8管理員表super

5第四章詳細(xì)設(shè)計(jì)

5.1開(kāi)發(fā)規(guī)范

5.1.1定義

a.包命名方法:com.jingdong.#;

(#:biz,bocodechange,controller,bo,db,fileter,listener,md5,upload,Upload.util,vo等各類包。)

b.Jsp頁(yè)面位置:所以jsp頁(yè)面均存在WEBROOT目錄下,后臺(tái)頁(yè)面放置在WEBROOT目錄下的background目錄中;

c.統(tǒng)一WebRoot各個(gè)jsp頁(yè)面均引用相對(duì)應(yīng)的文件夾的資源圖片資源統(tǒng)一在一個(gè)文件夾內(nèi)d.在WebRoot/WEB-INF/lib下存放需要的jar文件。commons-collections-3.2.1.jar,commons-fileupload-1.2.2.jar,commons-io-2.0.1.jar,commons-logging-1.1.1.jar,cos.jar,FileUpload.jar,filters-2.0.235.jar,jcaptcha-api-1.0.jar,

jcaptcha-2.0-alpha-1-SNAPSHOT.jar,

jcaptcha-integration-simple-servlet-2.0-alpha-1-SNAPSHOT.jar,kaptcha-2.3.2.jar,mysql.jar;

*注:1所有JSP頁(yè)面的樣式設(shè)計(jì)要與JSP頁(yè)面分離2JavaScript腳本與頁(yè)面分離

3頂部和尾部頁(yè)面只需調(diào)用即可,無(wú)需設(shè)計(jì)。(注:保持每個(gè)頁(yè)面頂部與底部的一致性)

4將自己用到的文件存在WEBROOT下的IMAGES包里,便于日后整合。5頁(yè)面名字以及包名要統(tǒng)一為上面的,便于鏈接調(diào)用以及減少后期修改時(shí)間。

6如需新增頁(yè)面或者jar文件、js或css等?梢愿鶕(jù)實(shí)際情況增加,但是務(wù)必放于指定的位置下。

7其他需要的內(nèi)容自己先定義,然后再與小組其他人員討論。

5.2程序設(shè)計(jì)說(shuō)明

5.2.1程序頁(yè)面描述JSP頁(yè)面設(shè)計(jì)

注冊(cè)頁(yè)面:register.jsp用戶登錄頁(yè)面:login.jsp管理員登陸頁(yè)面:bkLogin.jsp首頁(yè):Bookindex1.jsp展示所有商品:Bookindex1.jsp分類頁(yè)面:Bookclass.jsp高級(jí)查詢頁(yè)面:ComplexQuery.jsp錯(cuò)誤頁(yè)面:fail.jsp留言頁(yè)面:liuyan.jsp

商品詳細(xì)信息頁(yè)面:product.jsp上傳圖像頁(yè)面:UploadImage.jsp賬戶信息:userInfo.jsp

管理員添加書籍頁(yè)面:bkAdd.jsp查看系統(tǒng)運(yùn)行日志頁(yè)面:looklog.jsp

5.2.2程序業(yè)務(wù)描述

a.數(shù)據(jù)庫(kù)連接池:DBManager(已經(jīng)建立統(tǒng)一的鏈接池,可以直接調(diào)用);

b.數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)名:WBS;書表:book;用戶表:user;用戶消費(fèi)記錄表:userRecord表;庫(kù)存表:stack表;用戶賬戶表:userAccount表;

c.前期業(yè)務(wù):主要實(shí)現(xiàn)注冊(cè)、登錄、注銷、修改密碼、驗(yàn)證碼業(yè)務(wù)、訂單的提交并著手開(kāi)始建立購(gòu)物車業(yè)務(wù)。

中期業(yè)務(wù):提取已提交的訂單信息、所有商品的分類、購(gòu)物車的完善、個(gè)人資料提交、以及搜索功能的完善、上傳業(yè)務(wù)。

后期業(yè)務(wù):添加購(gòu)物車到商品頁(yè)面、并完成其分頁(yè)業(yè)務(wù)、MD5加密業(yè)務(wù)、監(jiān)聽(tīng)和過(guò)濾業(yè)務(wù)、

后臺(tái)管理業(yè)務(wù)等。(并可以根據(jù)自己的想法提出建議再做增加)。

5.2.3功能商品檢索:查詢數(shù)據(jù)庫(kù)(商品返回用戶輸入文本字段表)

商品基本信息購(gòu)買商品:添加購(gòu)物車(商返回用戶點(diǎn)擊購(gòu)買品)商品信息(含件數(shù))

此系統(tǒng)采用MVC架構(gòu)模式,將業(yè)務(wù)層和邏輯層進(jìn)行了分離,便于日后的修改與維護(hù),維護(hù)人員只需修改部分業(yè)務(wù)即可,而且不會(huì)對(duì)系統(tǒng)其他功能產(chǎn)生影響。

5.2.4輸人輸出要求

用戶查詢商品時(shí)必須輸入,否則查詢不到相關(guān)商品。

輸出信息:用戶注冊(cè)時(shí)如果輸入的內(nèi)容不匹配,將會(huì)出現(xiàn)紅色顏色的。5.2.5接口服務(wù)器端口:8080。數(shù)據(jù)通信協(xié)議:Http。

數(shù)據(jù)庫(kù)層:com.jingdong.db連接數(shù)據(jù)庫(kù)可調(diào)用該層的類DBManagerJavabean層:com.jingdong.vo該層提供了User,等具體類Dao層:com.jingdong.dao提供了BaseDao,PublicDao等類

控制層:com.jingdong.controller可針對(duì)每一個(gè)功能創(chuàng)建相應(yīng)的servlet業(yè)務(wù)層:com.jingdong.bo可創(chuàng)建具體的業(yè)務(wù)類5.2.6限制條件服務(wù)器端口:8080。數(shù)據(jù)通信協(xié)議:Http。

屏幕分辨率:最佳分辨率為1024*768;最佳瀏覽器:IE5.2.7測(cè)試計(jì)劃

環(huán)境配置成功后,運(yùn)行各個(gè)頁(yè)面,所有按鈕功能和數(shù)據(jù)庫(kù)連接查詢等功能皆能實(shí)現(xiàn)。

5.3主要代碼設(shè)計(jì)說(shuō)明

5.3.1數(shù)據(jù)庫(kù)代碼

設(shè)置數(shù)據(jù)庫(kù)編碼信息

setcharacter_set_database=utf8;setcharacter_set_server=utf8;

setcharacter_set_connection=utf8;setcharacter_set_client=utf8;setcharacter_set_results=utf8;

setcollation_connection=utf8_bin;setcollation_database=utf8_bin;setcollation_server=utf8_bin;dropdatabaseifexistsWBS;#如果商品數(shù)據(jù)庫(kù)不存在就創(chuàng)建之createdatabaseifnotexistsWBS

characterset"utf8"collate"utf8_general_ci";

useWBS;

創(chuàng)建BookLibrary表

createtableBookLibrary(idintauto_increment,

BookLibraryNamevarchar(30),primarykey(id));

創(chuàng)建BookPublish表

createtableBookPublish(idintauto_increment,BookPublishNamevarchar(30),BookPublishAddressvarchar(60),BookPublishTellvarchar(30),BookPublishPersonvarchar(30),primarykey(id));

創(chuàng)建Book表BookRebate書本折扣BookCode條形碼BookEdition版次createtableBook(idintauto_increment,BookNamevarchar(30),BookAuthorvarchar(30),BookPricefloat(10,2),BookImageURLvarchar(100),BookLibraryIdint,

BookPublishchar(30),BookPublishTimedate,

BookRebatefloat(10),BookFilechar(100),BookPagesint,BookTotalint,

BookCodechar(30),BookEditionchar(30),primarykey(id));

創(chuàng)建user表

createtableuser(idintauto_increment,

usernamevarchar(30)notnull,passwordvarchar(30)notnull,emailvarchar(30)notnull,userPicturevarchar(100),primarykey(id));

創(chuàng)建SellList表

createtableSellList(idintauto_increment,BookIdint,SellTimedate,BookAmountint,primarykey(id));

創(chuàng)建EnterBookList表EnterBookRebate進(jìn)書折扣createtableEnterBookList(idintauto_increment,BookIdint,BookEnterdate,BookAmountint,

EnterBookRebatefloat(10),primarykey(id));

創(chuàng)建UserAccount表

createtableUserAccount(idintauto_increment,userNamevarchar(30),Balancefloat(10,2),primarykey(id));

創(chuàng)建ConsumRecord表

createtableConsumRecord(idintauto_increment,userIdint,

ConsumTimedate,

BuyBookNamevarchar(30),primarykey(id),

foreignkey(userId)referencesuser(id)ondeletecascadeonupdatecascade);

創(chuàng)建Message表

createtableMessage(idintauto_increment,MessageInfovarchar(100),primarykey(id));

創(chuàng)建Stack表Stack書庫(kù)

createtableStack(idintauto_increment,BookLibraryIdint,BookIdint,

BookAmountint,primarykey(id),

foreignkey(BookLibraryId)referencesBookLibrary(id)ondeletecascadeonupdatecascade,

foreignkey(BookId)referencesBook(id)ondeletecascadeonupdatecascade);

BookList表書目錄表createtableBookList(

idintprimarykeynotnullauto_increment,bookIdint,

list1char(60),list2char(60),list3char(60),list4char(60),list5char(60));管理員表

createtableSuper(

idintauto_increment,

usernamevarchar(30)notnull,passwordvarchar(100)notnull,emailvarchar(30)notnull,userPicturevarchar(100),primarykey(id));留言表

createtableLiuYan(

idintauto_increment,userIdintnotnull,

Messagevarchar(300)notnull,primarykey(id),

foreignkey(userId)referencesuser(id)ondeletecascadeonupdatecascade);回復(fù)留言表

createtablereplymessage(

idint(11)notnullauto_increment,contentvarchar(250)defaultnull,msgIdint(11)defaultnull,adminIdint(11)defaultnull,publishDatedatedefaultnull,primarykey(id));

5.3.2底層數(shù)據(jù)庫(kù)連接代碼

publicclassDBManager{//創(chuàng)建數(shù)據(jù)庫(kù)連接類privatestaticDBManagerdbManager=null;privateDBManager(){}

//單例模式,單次只生成一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象

publicsynchronizedstaticDBManagergetInstance(){

if(dbManager==null){

dbManager=newDBManager();}

returndbManager;}

//通過(guò)數(shù)據(jù)連接池創(chuàng)建數(shù)據(jù)庫(kù)連接

publicsynchronizedstaticConnectiongetConnection()throwsSQLException,NamingException{

return((DataSource)new

InitialContext().lookup("java:comp/env/jdbc/WBS")).getConnection();}

//關(guān)閉數(shù)據(jù)庫(kù)連接方法

privatestaticvoidcloseConn(Connectionconn)throwsSQLException{

if(conn!=null){

conn.close();conn=null;}}

//關(guān)閉數(shù)據(jù)庫(kù)傳參方法

privatestaticvoidcloseStmt(PreparedStatementpstmt)throwsSQLException{

if(pstmt!=null){

pstmt.close();pstmt=null;}}

//關(guān)閉結(jié)果集方法

privatestaticvoidcloseRs(ResultSetrs)throwsSQLException{

if(rs!=null){

rs.close();rs=null;}}

//調(diào)用以上關(guān)閉方法,形成關(guān)閉總方法

publicstaticvoidclose(Connectionconn,PreparedStatementpstmt,ResultSetrs)throwsSQLException{

closeRs(rs);

closeStmt(pstmt);closeConn(conn);}}

5.3.3底層業(yè)務(wù)代碼

A、圖書展示主頁(yè)以及購(gòu)物車部分業(yè)務(wù)

publicclassShopCartBo{//添加日志

Loggerlog=Logger.getLogger("com.jingdong.controller.ShopCartBo.class");//統(tǒng)計(jì)商品表中商品的數(shù)量(即獲取總的記錄條數(shù))

publicintgetWareTotalRows()throwsNamingException,SQLException{Stringsql="selectcount(*)astotalRowsfrombook";

Map[]count=newPublicDao().getRowsMap(sql,null);//獲取所有商品數(shù)集合inttotalRows=0;

if(count!=null&&count.length>0){

totalRows=((Long)count[0].get("totalRows")).intValue();}

returntotalRows;//查詢得到的總的記錄數(shù)}

//分頁(yè)查詢/**

*startIndex當(dāng)前頁(yè)起始位置*currentPage當(dāng)前頁(yè)碼

*pageSize每頁(yè)顯示的條目數(shù)**/

publicMap[]getWarePage(intcurrentPage,intpageSize)throwsNamingException,SQLException{

//mysql的分頁(yè)查詢一般使用limit即可

Stringsql="select*fromBooklimit?,?";

//計(jì)算下一數(shù)據(jù)頁(yè)索引的開(kāi)始位置(算法:下一頁(yè)起始索引=(當(dāng)前頁(yè)-1)*每頁(yè)顯示記錄數(shù))

intstartIndex=(currentPage-1)*pageSize;ListparamList=newArrayList();

paramList.add(newInteger(startIndex));paramList.add(newInteger(pageSize));

returnnewPublicDao().getRowsMap(sql,paramList);//按startIndex與pageSize的預(yù)編譯參數(shù)傳遞,查詢分頁(yè)頁(yè)面信息}

//所有商品列表

publicMap[]queryWareList()throwsNamingException,SQLException{Stringsql="select*frombook";

returnnewPublicDao().getRowsMap(sql,null);}

//依據(jù)商品標(biāo)識(shí)號(hào)查詢出商品

publicMap[]queryAllThingById(intid,Stringsql)throwsSQLException,NamingException{

returnnewShoppingDao().queryWareList(id,sql);}

//依據(jù)商品標(biāo)識(shí)號(hào)查詢出商品

publicMap[]queryWareList(intcid)throwsNamingException,SQLException{Stringsql="select*frombookwhereid=?";ListparamList=newArrayList();paramList.add(newInteger(cid));

returnnewPublicDao().getRowsMap(sql,paramList);}

//判斷欲添加商品在購(gòu)物車中是否存在

privateBookItemisEquals(MapshoppingCart,Bookbook){BookItembookItem=null;

for(Integerkey:shoppingCart.keySet()){

bookItem=shoppingCart.get(key);//遍歷查詢判斷商品項(xiàng)是否存在if(bookItem!=null){

if(bookItem.getBook().getId()==book.getId()){bookItem.setCount(bookItem.getCount()+1);subtotal(bookItem,book);//小計(jì)金額returnbookItem;}}}

returnnull;}

//判斷數(shù)據(jù)庫(kù)中是否有欲添加的商品

privateBookisEquals(Map[]map,intid){if(map!=null&&map.length>0){if(map[0]!=null){

Bookbook=newBook();

book.setId((Integer)map[0].get("id"));

book.setBookPrice((Float)map[0].get("BookPrice"));book.setBookName(map[0].get("BookName").toString());

returnbook;//判斷數(shù)據(jù)庫(kù)查詢結(jié)果中商品是否存在,如果存在封裝到VO中}}

returnnull;}

//小計(jì)金額

privatevoidsubtotal(BookItembookItem,Bookbook){

bookItem.setSubtotal(bookItem.getCount()*bookItem.getBook().getBookPrice());}

//向新產(chǎn)生的商品項(xiàng)中添加商品

privatevoidaddShoppingItem(BookItembookItem,Bookbook){bookItem.setBook(book);bookItem.setCount(1);

subtotal(bookItem,book);//小計(jì)金額}

//添加購(gòu)物車

publicStringaddShoppingCar(HttpSessionsession,intid,HttpServletRequest

request)throwsNamingException,SQLException{Stringmessage="商品不存在";

MapshoppingCart=null;BookItembookItem=null;Bookbook=null;

Stringsql="select*frombookwhereid=?";Map[]map=queryAllThingById(id,sql);if(session!=null){

shoppingCart=(Map)session.getAttribute("shoppingcart");if(shoppingCart!=null&&shoppingCart.size()>0){book=isEquals(map,id);//數(shù)據(jù)庫(kù)中商品信息if(book!=null){

bookItem=isEquals(shoppingCart,book);//購(gòu)物車中商品項(xiàng)if(bookItem==null){

bookItem=newBookItem();

addShoppingItem(bookItem,book);

Useruser=(User)session.getAttribute("user");if(user==null||user.equals("")){

log.debug("向購(gòu)物車中添加了"+bookItem.getCount()+"本的書");}else{

log.debug(user.getUsername()+"向購(gòu)物車中添加了"+bookItem.getCount()+"本的書");}}}else{

//商品不存在

request.setAttribute("message",message);return"index.jsp";}}else{

//購(gòu)物車不存在的情況,只需判斷數(shù)據(jù)庫(kù)中商品是否存在,然后再添加商品項(xiàng)

shoppingCart=newHashMap();bookItem=newBookItem();book=isEquals(map,id);if(book!=null){

addShoppingItem(bookItem,book);

Useruser=(User)session.getAttribute("user");if(user==null||user.equals("")){

log.debug("向購(gòu)物車中添加了"+bookItem.getCount()+"本

的書");}else{

log.debug(user.getUsername()+"向購(gòu)物車中添加了

"+bookItem.getCount()+"本的書");}

}else{

//商品不存在

request.setAttribute("message",message);return"index.jsp";}}

shoppingCart.put(book.getId(),bookItem);//將商品編號(hào)和商品項(xiàng)添加至購(gòu)物車

session.setAttribute("shoppingcart",shoppingCart);getTotalPrice(session);}else{

//沒(méi)有創(chuàng)建會(huì)話連接

message="不能夠創(chuàng)建會(huì)話連接……";

request.setAttribute("message",message);return"fail.jsp";}

return"shoping.jsp";}

//統(tǒng)計(jì)總金額

publicvoidgetTotalPrice(HttpSessionsession){doublesum=0.0d;Map

shoppingCar=(Map)session.getAttribute("shoppingcart");if(shoppingCar!=null&&shoppingCar.size()>0){for(Integerkey:shoppingCar.keySet()){

sum+=(double)shoppingCar.get(key).getBook().getBookPrice()*(double)shoppingCar.get(key).getCount();}}

session.setAttribute("sum",sum);}}

B、圖書展示主頁(yè)以及購(gòu)物車部分業(yè)務(wù)

publicclassShoppingBo{//驗(yàn)證用戶名密碼

publicUsercheckUser(Stringusername,Stringpassword)throwsSQLException,

NamingException{

Stringsql="select*fromuserwhereusername=?";ArrayListparamList=newArrayList();paramList.add(username);

Map[]userMap=newShoppingBo().queryAllThingInWhere(sql,paramList);if(userMap==null||userMap.length==0){

returnnull;}

if(userMap!=null||userMap.length>0){

Stringpwd=(String)userMap[0].get("password");Useruser=newUser();

user.setId((Integer)userMap[0].get("id"));user.setUsername(username);user.setPassword(pwd);

Stringemail=(String)userMap[0].get("email");

if(userMap[0].get("userPicture")!=null){

user.setUserPicture((String)userMap[0].get("userPicture"));}

user.setEmail(email);

returnuser;}

returnnull;}

//篩選管理員

publicSuperBocheckSuper(Stringusername,Stringpassword)throwsSQLException,NamingException{

Stringsql="selectpasswordfromSuperwhereusername=?";ArrayListparamList=newArrayList();paramList.add(username);

Map[]userMap=newShoppingBo().queryAllThingInWhere(sql,paramList);if(userMap==null||userMap.length==0){

returnnull;}

if(userMap!=null||userMap.length>0){

Stringpwd=(String)userMap[0].get("password");SuperBosup=newSuperBo();sup.setUsername(username);sup.setPassword(pwd);

if(userMap[0].get("userPicture")!=null){

sup.setUserPicture((String)userMap[0].get("userPicture"));}

returnsup;}

returnnull;}

//查看注冊(cè)用戶名和郵箱是否存在

publicbooleanisregisterUser(Stringusername,Stringemail)throwsSQLException,NamingException{

Stringsql="select*fromuserwhereusername=?oremail=?";ArrayListparamList=newArrayList();paramList.add(username);paramList.add(email);

Map[]userMap=newShoppingBo().queryAllThingInWhere(sql,paramList);if(userMap==null||userMap.length==0){

returnfalse;}

if(userMap!=null||userMap.length>0){

returntrue;}

returnfalse;}

//注冊(cè)用戶名密碼

publicintregisterUser(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().updateWareList(sql,paramList);}

//插入圖書

publicintinertintoConsumRecord(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().updateWareList(sql,paramList);

}

//插入用戶賬戶

publicintiertintoUserAccount(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().updateWareList(sql,paramList);}

//插入圖像

publicintinertintoUser(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().updateWareList(sql,paramList);}

//插入留言

publicintinertintoLiuYan(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().updateWareList(sql,paramList);}

//用Id查詢商品

publicMap[]queryAllThingById(intid,Stringsql)throwsSQLException,NamingException{

returnnewShoppingDao().queryWareList(id,sql);}

//直接查詢商品

publicMap[]queryAllThing(Stringsql)throwsSQLException,NamingException{

returnnewShoppingDao().queryWareList(sql);}

//用where語(yǔ)句查詢商品,參數(shù)放入到ArrayList中

publicMap[]queryAllThingInWhere(Stringsql,ListparamList)throwsSQLException,NamingException{

returnnewShoppingDao().queryWareList(sql,paramList);}

//用id查詢書

publicMap[]queryBookList(intcid)throwsSQLException,NamingException{

returnnewShoppingCartDao().queryBookList(cid);}

//查看書項(xiàng)中是否有已選書籍

privateBookItemisEquals(MapshoppingCart,Bookbook){

BookItembookItem=null;

for(Integerkey:shoppingCart.keySet()){

bookItem=shoppingCart.get(key);if(bookItem!=null){

if(bookItem.getBook().getId()==book.getId()){

bookItem.setCount(bookItem.getCount()+1);subtotal(bookItem,book);returnbookItem;}}}

returnnull;}

//小計(jì)

privatevoidsubtotal(BookItembookItem,Bookbook){

bookItem.setSubtotal(bookItem.getCount()*bookItem.getBook().getBookPrice());}

//添加書

privatevoidaddShoppingItem(BookItembookItem,Bookbook){

bookItem.setBook(book);bookItem.setCount(1);subtotal(bookItem,book);}

//向書中添加數(shù)據(jù)

privateBookisEquals(Map[]map,intid){

if(map!=null&&map.length>0){

if(map[0]!=null){

Bookbook=newBook();

book.setId((Integer)map[0].get("id"));

book.setBookImageURL((String)map[0].get("BookImageURL"));book.setBookLibraryId((Integer)map[0].get("BookLibraryId"));

book.setBookPublish((String)map[0].get("BookPublish"));book.setBookName((String)map[0].get("BookName"));book.setBookAuthor((String)map[0].get("BookAuthor"));

book.setBookPublishTime((Date)map[0].get("BookPublishTime"));

book.setBookPrice((Float)map[0].get("BookPrice"));

book.setBookRebate((Float)map[0].get("BookRebate"));book.setBookFile((String)map[0].get("BookFile"));book.setBookPages((Integer)map[0].get("BookPages"));book.setBookTotal((Integer)map[0].get("BookTotal"));book.setBookCode((String)map[0].get("BookCode"));

book.setBookEdition((String)map[0].get("BookEdition"));

returnbook;}}

returnnull;}

//添加購(gòu)物車

publicStringaddShoppingCar(HttpSessionsession,intid,HttpServletRequestrequest)throwsSQLException,NamingException{

Stringmessage="商品不存在";

MapshoppingCart=null;BookItembookItem=null;Bookbook=null;

Map[]map=queryBookList(id);if(session!=null){

shoppingCart=(Map)session.getAttribute("shoppingcart");

if(shoppingCart!=null&&shoppingCart.size()>0){

book=isEquals(map,id);if(book!=null){

bookItem=isEquals(shoppingCart,book);if(bookItem==null){

bookItem=newBookItem();

addShoppingItem(bookItem,book);

}}else{

request.setAttribute("message",message);return"fail.jsp";}}else{

shoppingCart=newHashMap();bookItem=newBookItem();book=isEquals(map,id);if(book!=null){

addShoppingItem(bookItem,book);}else{

request.setAttribute("message",message);return"fail.jsp";}}

shoppingCart.put(book.getId(),bookItem);

session.setAttribute("shoppingcart",shoppingCart);getTotalPrice(session);}else{

message="不能夠創(chuàng)建會(huì)話連接……";

request.setAttribute("message",message);return"fail.jsp";}

return"shoppingcartpage/shoppingcart.jsp";}

//返回商品總價(jià)

publicvoidgetTotalPrice(HttpSessionsession){

doublesum=0.0d;

Map

shoppingCar=(Map)session.getAttribute("shoppingcart");if(shoppingCar!=null&&shoppingCar.size()>0){

for(Integerkey:shoppingCar.keySet()){

sum+=shoppingCar.get(key).getBook().getBookPrice()*shoppingCar.get(key).getCount();

}

}}

session.setAttribute("sum",sum);}

5.3.4底層數(shù)據(jù)層代碼

//javabean封裝數(shù)據(jù)庫(kù)讀取數(shù)據(jù)。

publicclassBookimplementsSerializable{

privateintid;

privateStringbookImageURL;privateStringbookName;privateintbookLibraryId;privateStringbookPublish;privateStringbookAuthor;privateDatebookPublishTime;privatefloatbookPrice;privatefloatbookRebate;privateStringbookFile;privateintbookPages;privateintbookTotal;privateStringbookCode;privateStringbookEdition;publicintgetId(){returnid;}

publicvoidsetId(intid){this.id=id;}

publicStringgetBookImageURL(){returnbookImageURL;}

publicvoidsetBookImageURL(StringbookImageURL){this.bookImageURL=bookImageURL;}

publicStringgetBookName(){returnbookName;}

publicvoidsetBookName(StringbookName){this.bookName=bookName;}

publicintgetBookLibraryId(){returnbookLibraryId;}

publicvoidsetBookLibraryId(intbookLibraryId){

this.bookLibraryId=bookLibraryId;}

publicStringgetBookPublish(){returnbookPublish;}

publicvoidsetBookPublish(StringbookPublish){this.bookPublish=bookPublish;}

publicStringgetBookAuthor(){returnbookAuthor;}

publicvoidsetBookAuthor(StringbookAuthor){this.bookAuthor=bookAuthor;}

publicDategetBookPublishTime(){returnbookPublishTime;}

publicvoidsetBookPublishTime(DatebookPublishTime){this.bookPublishTime=bookPublishTime;}

publicfloatgetBookPrice(){returnbookPrice;}

publicvoidsetBookPrice(floatbookPrice){this.bookPrice=bookPrice;}

publicfloatgetBookRebate(){returnbookRebate;}

publicvoidsetBookRebate(floatbookRebate){this.bookRebate=bookRebate;}

publicStringgetBookFile(){returnbookFile;}

publicvoidsetBookFile(StringbookFile){this.bookFile=bookFile;}

publicintgetBookPages(){returnbookPages;}

publicvoidsetBookPages(intbookPages){this.bookPages=bookPages;}

publicintgetBookTotal(){

}

returnbookTotal;}

publicvoidsetBookTotal(intbookTotal){this.bookTotal=bookTotal;}

publicStringgetBookCode(){returnbookCode;}

publicvoidsetBookCode(StringbookCode){this.bookCode=bookCode;}

publicStringgetBookEdition(){returnbookEdition;}

publicvoidsetBookEdition(StringbookEdition){this.bookEdition=bookEdition;}

5.3.5底層業(yè)務(wù)代碼

由于項(xiàng)目代碼繁多,請(qǐng)參見(jiàn)附錄A源代碼。

5.4程序設(shè)計(jì)說(shuō)明

5.4.1登錄頁(yè)面,如圖1-1-1

圖1-1-1

5.4.2用戶注冊(cè),如圖1-1-2

圖1-1-2

5.4.3留言頁(yè)面,如圖1-1-3

圖1-1-3

5.4.4購(gòu)物車,如圖1-1-4

圖1-1-4

5.4.5普通搜索,如圖1-1-5

圖1-1-5

5.4.6高級(jí)搜索,如圖1-1-6

圖1-1-6

5.4.7圖書信息,如圖1-1-7

圖1-1-7

5.4.8頭像上傳,如圖1-1-8

圖1-1-8

5.4.9賬戶信息,如圖1-1-9

圖1-1-9

5.4.10管理員登錄,如圖1-2-1

圖1-2-1

5.4.11管理員主界面,如圖1-2-2

圖1-2-2

5.4.12運(yùn)行日志,如圖1-2-3

圖1-2-3

5.4.13管理員圖書列表,如圖1-2-4

圖1-2-4

5.4.14管理員添加圖書,如圖1-2-5

圖1-2-5

5.4.15管理員留言列表,如圖1-2-6

圖1-2-6

5.4.16管理員退出系統(tǒng),如圖1-2-7

圖1-2-7

結(jié)論

系統(tǒng)設(shè)計(jì)選用的開(kāi)發(fā)軟件是myeclipse,后臺(tái)數(shù)據(jù)庫(kù)為Mysql。網(wǎng)絡(luò)書店目標(biāo)是基于先進(jìn)的頁(yè)面處理和JSP技術(shù)。網(wǎng)絡(luò)書店系統(tǒng)設(shè)計(jì)不僅要考慮書店目標(biāo)的實(shí)現(xiàn),而且更要關(guān)心實(shí)現(xiàn)的過(guò)程以及用戶在這個(gè)瀏覽的過(guò)程中獲得信息以及在消費(fèi)中的安全問(wèn)題。針對(duì)Web網(wǎng)絡(luò)書店的特點(diǎn),從用戶的實(shí)際需求出發(fā),設(shè)計(jì)和規(guī)劃出一套適用的基于Web的網(wǎng)絡(luò)書店系統(tǒng),解決使用時(shí)的不便和安全隱患,將圖書銷售信息更清晰化,更便捷化。通過(guò)直觀的網(wǎng)站布局,讓用戶在獲取消費(fèi)信息和資源的前提下,擁有更簡(jiǎn)單的操作來(lái)實(shí)現(xiàn)繁雜的消費(fèi)流程。

致謝

首先,在我撰寫這篇畢業(yè)論文時(shí),我要感謝學(xué)校給我的良好教育,使我掌握很多知識(shí)。然后我要感謝眾多老師對(duì)我的大力支持,沒(méi)有老師的幫助我不可能完成這個(gè)項(xiàng)目?傊,千言萬(wàn)語(yǔ)一句話,謝謝!

參考文獻(xiàn)

[1](美)韋斯.《數(shù)據(jù)結(jié)構(gòu)與算法分析》.出版社:機(jī)械工業(yè)201*.[2]李軍.《高性能MySQL》.出版社:電子工業(yè)201*第二版.

[3](英)福塔.《MySQL必知必會(huì)》.出版社:人民郵電201*(9).[4]王志剛.《MySQL高效編程》.出版社:人民郵電201*.

[5]鄧芳偉.《基于處理分布的C/S計(jì)算模式的研究》.計(jì)算機(jī)工程與科學(xué),1999.[6]羅娜,林和平,袁福宇.《面向?qū)ο筌浖䴗y(cè)試的方法研究[J]》.東北師大學(xué)報(bào)(自然科學(xué)版),201*.

[7]田苗苗.《基于面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)方法[J]》.吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),201*.

[8]Y.DanielLiang著李娜譯.《java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇(第8版)》.北京:機(jī)械工業(yè)出版社,201*.

[9]PaulDuBois.《MySQLCookbook》,出版社:O’ReillyMedia201*.

[10]半場(chǎng)方人著,孔令峰譯.《javaScript&DynamicHTML語(yǔ)法辭典》.出版社:中國(guó)青年出版社201*.

[11]王新著,《SQL語(yǔ)法與范例詳解詞典》.出版社:機(jī)械工業(yè),201*.[12](美)?藸.《java編程思想》.出版社:機(jī)械工業(yè)201*.

[13]袁然,鄭自國(guó),來(lái)為國(guó),《java案例開(kāi)發(fā)集錦(第二版)》,電子工業(yè)出版社,201*年.

附錄A

友情提示:本文中關(guān)于《網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告》給出的范例僅供您參考拓展思維使用,網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


網(wǎng)上書店系統(tǒng)總結(jié)報(bào)告》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.hmlawpc.com/gongwen/708843.html