天津工業(yè)大學(xué)2012屆軟件工程專(zhuān)業(yè)畢業(yè)設(shè)計(jì)(論文)_第1頁(yè)
已閱讀1頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  天津工業(yè)大學(xué)</b></p><p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  基于JSP/Servlet的易購(gòu)網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)</p><p>  姓 名 </p><p>  學(xué) 院 計(jì)算機(jī)科學(xué)與軟件&

2、lt;/p><p>  專(zhuān) 業(yè) 軟件工程 </p><p>  指導(dǎo)教師 </p><p>  職 稱(chēng) 工程師 教授 </p><p>  2012年 6月 13日</p><p>  天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)</p><

3、p>  院長(zhǎng) 教研室主任 指導(dǎo)教師 </p><p>  畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告表</p><p><b>  2012年3月5日</b></p><p><b>  摘 要</b></p><p>  21世紀(jì)

4、是網(wǎng)絡(luò)經(jīng)濟(jì)時(shí)代,計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,對(duì)傳統(tǒng)的商品交易形式和流通方式產(chǎn)生了極大地影響。隨著人們對(duì)信息的獲取方式和獲取途徑的改變,對(duì)傳統(tǒng)的書(shū)店的銷(xiāo)售和管理模式帶來(lái)挑戰(zhàn),建立相應(yīng)的網(wǎng)上書(shū)店顯得尤其必要。</p><p>  網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)使用Jsp和Servlet技術(shù)、采用Mysql做系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)。論文首先闡述了國(guó)內(nèi)外網(wǎng)上書(shū)店的發(fā)展與現(xiàn)狀,在對(duì)網(wǎng)上書(shū)店進(jìn)行綜合分析的基礎(chǔ)上,結(jié)合系統(tǒng)開(kāi)發(fā)技術(shù),明確了系統(tǒng)需求,

5、并在此基礎(chǔ)上對(duì)系統(tǒng)進(jìn)行了詳細(xì)的規(guī)劃設(shè)計(jì),確定了系統(tǒng)所具有的前臺(tái)管理和后臺(tái)管理兩大基本功能模塊的功能,主要包括用戶(hù)登陸、圖書(shū)查詢(xún)、查看購(gòu)物車(chē)、訂單信息等,論文對(duì)每個(gè)功能模塊的實(shí)現(xiàn)進(jìn)行了詳細(xì)的闡述,并介紹了對(duì)系統(tǒng)進(jìn)行測(cè)試的情況。</p><p>  系統(tǒng)經(jīng)測(cè)試和試運(yùn)行后基本達(dá)到設(shè)計(jì)要求,系統(tǒng)的圖書(shū)查找功能和管理員管理圖書(shū)功能,將為書(shū)店的銷(xiāo)售和管理帶來(lái)極大的方便。</p><p>  關(guān)鍵詞:網(wǎng)

6、上書(shū)店;Servlet;購(gòu)物車(chē) </p><p><b>  Abstract</b></p><p>  In the internet times as the 21st century, the development at full speed of the network technology,has influenced the traditional t

7、rade way and circulation style in commercial trade greatly. With the constant enlargement of the business, the scales of some bookstores are expanding continually, and they need to set up some corresponding online bookst

8、ores urgently.</p><p>  This system was based on Jsp and Servlet Web application technology, utilizing Mysql as database. Dreamweaver was used for developing pages. In this thesis firstly explained the devel

9、opment and current situation of the domestic and international online bookstores. And then based on the investigation and analysis to the market of online bookstores, integrating with the exploitation technology of the s

10、ystem, it confirmed the demand analyse of the system and made a detailed scheme design .It confir</p><p>  This system could meet the basic design demand more or less after the test and trial operation .It

11、will be more convenient for the administrator to keep control of books ,searching book function, selling book function.</p><p>  Keywords:Online Bookstore;Servlet;Shopping Cart;</p><p><b>

12、  目 錄</b></p><p>  第一章 緒 論1</p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景1</p><p>  1.1.1網(wǎng)上書(shū)店的發(fā)展1</p><p>  1.1.2網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)的研究現(xiàn)狀2</p><p>  1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)及開(kāi)發(fā)意義3</p><

13、p>  第二章 相關(guān)技術(shù)介紹4</p><p>  2.1 JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)技術(shù)簡(jiǎn)介4</p><p>  2.2 系統(tǒng)的主要架構(gòu)及開(kāi)發(fā)模式4</p><p>  2.2.1 基于B/S的體系結(jié)構(gòu)5</p><p>  2.2.2 基于MVC的應(yīng)用開(kāi)發(fā)模型5</p><p>  2.2.3 Servl

14、et控制器6</p><p>  2.3 MySQL數(shù)據(jù)庫(kù)的介紹10</p><p>  第三章 系統(tǒng)需求分析12</p><p>  3.1市場(chǎng)需求可行性12</p><p>  3.2功能需求分析12</p><p>  3.2.1前臺(tái)12</p><p>  3.2.2后臺(tái)管理

15、模塊12</p><p>  3.3 業(yè)務(wù)流程分析14</p><p>  3.4系統(tǒng)設(shè)計(jì)的總體規(guī)則14</p><p>  第四章 系統(tǒng)設(shè)計(jì)15</p><p>  4.1 系統(tǒng)模塊設(shè)計(jì)15</p><p>  4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)15</p><p>  4.2.1數(shù)據(jù)庫(kù)需求分析

16、16</p><p>  4.2.2數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)16</p><p>  第五章 系統(tǒng)的具體實(shí)現(xiàn)19</p><p>  5.1 創(chuàng)建工程19</p><p>  5.2功能頁(yè)面結(jié)構(gòu)及實(shí)現(xiàn)19</p><p>  5.2.1注冊(cè)登錄19</p><p>  5.2.2查看書(shū)籍23&

17、lt;/p><p>  5.2.3購(gòu)物車(chē)24</p><p>  5.2.4訂 單25</p><p>  5.2.5后臺(tái)書(shū)籍管理28</p><p>  5.2.6 用戶(hù)管理29</p><p>  5.2.7 公告管理31</p><p>  5.2.8 留言板管理33</p&

18、gt;<p>  第六章 系統(tǒng)測(cè)試及分析35</p><p>  6.1系統(tǒng)運(yùn)行環(huán)境的搭建35</p><p>  6.1.1 JAVA虛擬機(jī)的安裝35</p><p>  6.1.2 Tomcat環(huán)境搭建35</p><p>  6.2 系統(tǒng)程序的安裝和加載35</p><p>  6.2.

19、1 Myeclipse開(kāi)發(fā)工具35</p><p>  6.2.2數(shù)據(jù)庫(kù)的連接36</p><p>  6.3系統(tǒng)測(cè)試36</p><p>  6.3.1 單元測(cè)試36</p><p>  6.3.2集成測(cè)試36</p><p>  6.3.3系統(tǒng)測(cè)試37</p><p>  6.3

20、.4確認(rèn)測(cè)試37</p><p>  6.4對(duì)軟件功能測(cè)試的結(jié)論37</p><p><b>  結(jié)  論38</b></p><p><b>  參考文獻(xiàn)52</b></p><p>  附錄 文獻(xiàn)翻譯53</p><p><b>  Ⅰ 英

21、文原文53</b></p><p><b> ?、?中文譯文57</b></p><p><b>  謝 辭61</b></p><p><b>  第一章 緒 論</b></p><p>  電子商務(wù)是在Internet上進(jìn)行的商務(wù)活動(dòng),即利用計(jì)算機(jī)網(wǎng)絡(luò)

22、進(jìn)行產(chǎn)品、服務(wù)、信息等的買(mǎi)賣(mài)活動(dòng)。電子商務(wù)作為一種獨(dú)立的經(jīng)濟(jì)形態(tài),已初具規(guī)模,一些電子商務(wù)網(wǎng)站的成功給人們的生活帶來(lái)了巨大的影響。網(wǎng)絡(luò)技術(shù)發(fā)展到今天,Web數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為應(yīng)用最為廣泛的網(wǎng)站架構(gòu)基礎(chǔ)技術(shù)。而JSP、MYSQL兩者的結(jié)合,為Web數(shù)據(jù)庫(kù)技術(shù)提供了很好的實(shí)現(xiàn)體系。</p><p>  正是在這些因素的支持下網(wǎng)上書(shū)店才得以更好的發(fā)展,網(wǎng)上書(shū)店系統(tǒng)具有分類(lèi)檢索搜索、購(gòu)物車(chē)、訂單提交和查詢(xún)等網(wǎng)上書(shū)店所需的

23、功能,還具備靈活的網(wǎng)站內(nèi)容維護(hù)功能和會(huì)員功能,適合建立各種網(wǎng)上書(shū)店。</p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景</p><p>  1.1.1網(wǎng)上書(shū)店的發(fā)展</p><p>  國(guó)外最早的電子商務(wù)體驗(yàn)其實(shí)是從網(wǎng)上售書(shū)開(kāi)始的。1994年7月,美國(guó)考夫·貝佐斯在西雅圖開(kāi)設(shè)了全球第一家網(wǎng)上書(shū)店——亞馬遜書(shū)店,而且取得了巨大的成功。隨著亞馬遜成功的示范效應(yīng),網(wǎng)上售

24、書(shū)在世界范圍內(nèi)很快形成了一股洶涌之潮,尤其是西歐、北美等發(fā)達(dá)國(guó)家。甚至在傳統(tǒng)發(fā)行體系頗為完善的德國(guó),也同樣刮起了網(wǎng)上售書(shū)的旋風(fēng)。</p><p>  在亞馬遜書(shū)店,讀者找到自己所需要的圖書(shū)后,可立即發(fā)出購(gòu)書(shū)信息,一小時(shí)之內(nèi)就可收到所購(gòu)圖書(shū)。而每當(dāng)打開(kāi)網(wǎng)上書(shū)店的網(wǎng)頁(yè),各種打折、讓利的廣告總是讓你不僅心動(dòng)而且馬上行動(dòng)。比如亞馬遜書(shū)店對(duì)《紐約時(shí)報(bào)》評(píng)選的暢銷(xiāo)書(shū)以40%至50%的價(jià)格出售。價(jià)格武器也是網(wǎng)上書(shū)店對(duì)傳統(tǒng)書(shū)店的

25、核心優(yōu)勢(shì)所在。</p><p>  此外,通過(guò)計(jì)算機(jī)存貯的資料,網(wǎng)上書(shū)店毫不費(fèi)力地建立起自己龐大的全球化讀者信息庫(kù),對(duì)客戶(hù)需求和產(chǎn)品行情的預(yù)測(cè)也就更準(zhǔn)確。從而有效地降低庫(kù)存,減少資金占用。此外,網(wǎng)上虛擬書(shū)店,業(yè)務(wù)環(huán)節(jié)大為簡(jiǎn)化,能節(jié)約費(fèi)用開(kāi)支,降低銷(xiāo)售成本。</p><p>  2000年左右,中國(guó)也引入了網(wǎng)上書(shū)店這種B2C的電子商務(wù)模式。有以卓越網(wǎng)和當(dāng)當(dāng)網(wǎng)為代表的直接建立在因特網(wǎng)上的虛擬書(shū)

26、店,其中卓越定位于精品圖書(shū)的銷(xiāo)售,當(dāng)當(dāng)網(wǎng)則是追隨亞馬遜模式的多品種銷(xiāo)售的代表;還有一類(lèi)是出于競(jìng)爭(zhēng)或仿效也加入網(wǎng)上書(shū)店行列的一些老牌圖書(shū)銷(xiāo)售商,如新華書(shū)店。</p><p>  當(dāng)當(dāng)是中國(guó)最早學(xué)習(xí)亞馬遜的互聯(lián)網(wǎng)公司,實(shí)行全品種備貨,面向全世界中文讀者提供30多萬(wàn)種中文圖書(shū),占中國(guó)大陸可供書(shū)市場(chǎng)的90%。低價(jià)與規(guī)模成為當(dāng)當(dāng)網(wǎng)最為看重的兩大法寶。在價(jià)格上,實(shí)施沃爾瑪式的“天天低價(jià)”策略,并開(kāi)發(fā)出一套智能比價(jià)系統(tǒng),通過(guò)與

27、同類(lèi)競(jìng)品價(jià)格掃描對(duì)比后自動(dòng)調(diào)價(jià)。</p><p>  卓越網(wǎng)自成立之初就確立了專(zhuān)注在圖書(shū)音像產(chǎn)品領(lǐng)域,堅(jiān)持“精選品種、全場(chǎng)庫(kù)存、快捷配送”的卓越模式。這一模式的優(yōu)勢(shì)是,在動(dòng)用較少的資金和資源下,能相對(duì)保證產(chǎn)品質(zhì)量和服務(wù),在管理執(zhí)行上的效率較高,但不利于擴(kuò)張。亞馬遜在2004年9月斥資約7500萬(wàn)美元收購(gòu)了卓越網(wǎng),開(kāi)始把卓越全面亞馬遜化的“還魂與再造”,向“做大而精”轉(zhuǎn)型。</p><p>

28、  但無(wú)論是當(dāng)當(dāng)網(wǎng)還是卓越網(wǎng),在中國(guó)要復(fù)制亞馬遜模式,就意味著要接受庫(kù)存、配送、銷(xiāo)售和管理成本的考量。此外,更大的難度還在于,目前中國(guó)圖書(shū)音像業(yè)供應(yīng)鏈并不成熟,要做到像亞馬遜那樣既要零庫(kù)存又要配送及時(shí)實(shí)在是不可能完成的任務(wù)。歷時(shí)7年之后,雖然已經(jīng)把實(shí)體書(shū)店沖擊得七零八落,但是當(dāng)當(dāng)網(wǎng)和卓越網(wǎng)自己仍沒(méi)有實(shí)現(xiàn)盈利,未來(lái)如何實(shí)現(xiàn)規(guī)模與利潤(rùn)的平衡將是他們一個(gè)長(zhǎng)期的難題。</p><p>  1.1.2網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)的研究

29、現(xiàn)狀</p><p>  國(guó)際上書(shū)店前景看好,至少在1997年,國(guó)外網(wǎng)上書(shū)店己達(dá)兩百家以上。而在國(guó)內(nèi),自從杭州新華書(shū)店創(chuàng)辦第一家網(wǎng)上書(shū)店后,網(wǎng)上書(shū)店如雨后春筍般涌現(xiàn)出來(lái)。其中最為有名的莫過(guò)于1999年1月1日開(kāi)通的上海書(shū)城網(wǎng)上書(shū)店和3月9日正式營(yíng)業(yè)的北京圖書(shū)大廈網(wǎng)上書(shū)店,還有2004年7月15日由沈陽(yáng)市北方圖書(shū)城開(kāi)通的中國(guó)內(nèi)地品種最全的網(wǎng)上書(shū)店。現(xiàn)在,到底有多少家中文圖書(shū)的網(wǎng)上書(shū)店,恐怕很難統(tǒng)計(jì)完整。數(shù)據(jù)之多,多

30、少也能看出國(guó)內(nèi)網(wǎng)上書(shū)店競(jìng)爭(zhēng)的激烈性。據(jù)統(tǒng)計(jì),2004年我國(guó)網(wǎng)民己達(dá)8700萬(wàn),其中87.7%的網(wǎng)民曾體驗(yàn)過(guò)網(wǎng)上購(gòu)物。在有實(shí)際購(gòu)買(mǎi)行為的網(wǎng)民中,有57.6%的網(wǎng)民購(gòu)買(mǎi)的是圖書(shū),有26.4%的購(gòu)買(mǎi)的是音像制品,這充分說(shuō)明以網(wǎng)上書(shū)店為代表的出版物在線銷(xiāo)售面臨著良好的發(fā)展機(jī)遇。出版物網(wǎng)上銷(xiāo)售有諸多優(yōu)點(diǎn):24小時(shí)服務(wù)、送貨上門(mén)、無(wú)店鋪銷(xiāo)售、搜索查詢(xún)數(shù)據(jù)庫(kù)等優(yōu)點(diǎn),彌補(bǔ)了傳統(tǒng)出版發(fā)行業(yè)的不足,更為廣大農(nóng)村、偏遠(yuǎn)地區(qū)的老百姓提供了方便。隨著人們購(gòu)物觀念

31、、購(gòu)物習(xí)慣的改變以及網(wǎng)上購(gòu)物質(zhì)量、信譽(yù)的提升,出版物在線銷(xiāo)售將有更大市場(chǎng)空間。出版物網(wǎng)上銷(xiāo)售不僅是傳統(tǒng)銷(xiāo)售模式的發(fā)展和補(bǔ)充,也是未來(lái)的發(fā)展方向。但應(yīng)該看到,目前我國(guó)網(wǎng)上書(shū)</p><p>  1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)及開(kāi)發(fā)意義</p><p>  當(dāng)代社會(huì),人們已經(jīng)深深的領(lǐng)略到信息革命第二次浪潮的沖擊?,F(xiàn)在信息技術(shù)突破了單位性和地域性的局限,實(shí)現(xiàn)了網(wǎng)絡(luò)和全球化,以英特網(wǎng)為代表的現(xiàn)代信息網(wǎng)絡(luò)正在

32、以每月15%的速度急劇增長(zhǎng),其應(yīng)用范圍也開(kāi)始從單純的通訊。教育和信息查詢(xún)向更具效益的商業(yè)領(lǐng)域擴(kuò)張。這一趨勢(shì)告訴人們,電子商務(wù)在信息技術(shù)的強(qiáng)有力的推動(dòng)下,已經(jīng)叩響了人類(lèi)的大門(mén)。計(jì)算機(jī)的全球聯(lián)網(wǎng),形成了與地域、空間無(wú)關(guān)的時(shí)間一體化市場(chǎng),一種新的,基于計(jì)算機(jī)網(wǎng)絡(luò)的新型商業(yè)機(jī)制正在逐步形成,這是處于激烈競(jìng)爭(zhēng)環(huán)境中的各國(guó)政府、制造商、銷(xiāo)售商及有關(guān)研究部門(mén)所不能回避的現(xiàn)實(shí),在已經(jīng)邁入21世紀(jì)的今天,認(rèn)識(shí)電子商務(wù)、了解電子商務(wù)、進(jìn)而參與電子商務(wù),是每

33、一位消費(fèi)者都不得不認(rèn)真對(duì)待的一項(xiàng)新任務(wù)。</p><p>  隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,本系統(tǒng)在電子商務(wù)技術(shù)的應(yīng)用使得企業(yè)或個(gè)人通過(guò)電子商務(wù)技術(shù)進(jìn)行圖書(shū)的網(wǎng)上購(gòu)買(mǎi),新用戶(hù)注冊(cè)、用戶(hù)登陸、商品分類(lèi)、查詢(xún)商品、購(gòu)物車(chē)和訂單等基本功能。通過(guò)開(kāi)發(fā)在線電子書(shū)店系統(tǒng),改變了傳統(tǒng)購(gòu)書(shū)方式,充分利用了現(xiàn)代化的各種高科技手段,方便、快捷滿(mǎn)足人們的需要。</p><p>  第二章 相關(guān)技術(shù)介紹</p

34、><p>  合理的選擇開(kāi)發(fā)技術(shù),對(duì)于網(wǎng)站開(kāi)發(fā)的完成情況有著非常重要的影響。要開(kāi)發(fā)一個(gè)網(wǎng)站,首先要選擇好相關(guān)技術(shù)和工具。本網(wǎng)站運(yùn)用比較流行的動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)JSP、Servlet等,數(shù)據(jù)庫(kù)運(yùn)用MySql,下面我們進(jìn)行簡(jiǎn)要介紹。</p><p>  2.1 JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)技術(shù)簡(jiǎn)介</p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的tags和scriptl

35、ets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。</p><p>  Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶(hù)。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)

36、頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。</p><p>  JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶(hù)端的就是一個(gè)HTML文本,因此客戶(hù)端只要有瀏覽器就能瀏覽。</p><p>  JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見(jiàn)稿也已出臺(tái)。</p><p&

37、gt;  JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶(hù)端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶(hù)端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。</p><p> 

38、 自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語(yǔ)言。</p><p>  JSP可用一種簡(jiǎn)單易懂的等式表示為:HTML+Java=JSP。</p><p>  2.2 系統(tǒng)的主要架構(gòu)及開(kāi)發(fā)模式</p><p>  系統(tǒng)的建設(shè)關(guān)鍵在于其所使用的架構(gòu),而網(wǎng)上購(gòu)物這種基于web的系統(tǒng), B/

39、S基于瀏覽器的架構(gòu)則是目前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主流,它將大量的數(shù)據(jù)處理工作交給服務(wù)器端來(lái)處理,客戶(hù)端只用通過(guò)普通的瀏覽器即可訪問(wèn)系統(tǒng),方便快捷而且利于系統(tǒng)的更新和維護(hù),Java語(yǔ)言在這方面有很大的優(yōu)勢(shì),J2EE規(guī)范的出現(xiàn)則使系統(tǒng)的開(kāi)發(fā)更加規(guī)范,層次更加清楚,更利于對(duì)復(fù)雜事務(wù)的處理,而且在安全性方面也做的更好。基于mvc的開(kāi)發(fā)流程則使開(kāi)發(fā)過(guò)程更加清晰明了,利于做一些復(fù)雜的邏輯實(shí)現(xiàn),從而節(jié)省了開(kāi)發(fā)周期和開(kāi)發(fā)成本。</p><p

40、>  2.2.1 基于B/S的體系結(jié)構(gòu)</p><p>  在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶(hù)通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶(hù)所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡(jiǎn)化了客戶(hù)機(jī)的工作,客戶(hù)機(jī)上只需配置少量的客戶(hù)端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請(qǐng)求,而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由Web

41、 Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶(hù)機(jī)的任務(wù)中分離出來(lái),由Web服務(wù)器單獨(dú)組成一層來(lái)負(fù)擔(dān)其任務(wù),這樣客戶(hù)機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。這種三層體系結(jié)構(gòu)如圖2-1所示。 </p><p>  圖2-1 B/S三層架構(gòu)示意圖</p><p>  這種結(jié)構(gòu)不僅把客戶(hù)機(jī)從沉重的負(fù)擔(dān)和不斷對(duì)其提高的性能的要求中解放出來(lái),也把技術(shù)維護(hù)人員從

42、繁重的維護(hù)升級(jí)工作中解脫出來(lái)。由于客戶(hù)機(jī)把事務(wù)處理邏輯部分分給了功能服務(wù)器,使客戶(hù)機(jī)一下子"苗條"了許多,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問(wèn)等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,所以維護(hù)人員不再為程序的維護(hù)工作奔波于每個(gè)客戶(hù)機(jī)之間,而把主要精力放在功能服務(wù)器上程序的更新工作。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會(huì)影響其它層的功能。 </p><p>  2.2.2 基于MVC的應(yīng)用開(kāi)發(fā)模型&l

43、t;/p><p>  在本網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)中,將采用通行的MVC模式來(lái)構(gòu)建應(yīng)用。MVC 模型把一個(gè)應(yīng)用的輸入、處理、輸出流程按照模型(model)、 視圖(view)和控制器(controller)的方式進(jìn)行分離,形成模型層、視圖層、控制層三個(gè)層次,這種結(jié)構(gòu)解決了前面所述的所有問(wèn)題,在我們的應(yīng)用集成網(wǎng)絡(luò)中,通過(guò)企業(yè)級(jí)高端J2EE應(yīng)用服務(wù)器實(shí)現(xiàn)MVC開(kāi)發(fā)模型。MVC的邏輯圖如圖2-2所示:</p><

44、;p>  圖2-2 應(yīng)用服務(wù)器之上采用MVC開(kāi)發(fā)的邏輯示意圖</p><p>  2.2.3 Servlet控制器</p><p>  在本項(xiàng)目的開(kāi)發(fā)過(guò)程中最為核心的技術(shù)應(yīng)用就是Servlet的運(yùn)用。Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。 它擔(dān)當(dāng)客戶(hù)請(qǐng)求(Web瀏覽器或其他HTTP客戶(hù)程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器

45、上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。</p><p>  Servlet的優(yōu)點(diǎn)</p><p><b>  (1) 方便  </b></p>

46、<p>  Servlet提供了大量的實(shí)用工具例程,例如自動(dòng)地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會(huì)話(huà)狀態(tài)等。</p><p><b> ?。?)功能強(qiáng)大</b></p><p>  在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序

47、不能。Servlet還能夠在各個(gè)程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫(kù)連接池之類(lèi)的功能很容易實(shí)現(xiàn)。</p><p><b> ?。?) 可移植性好</b></p><p>  Servlet用Java編寫(xiě),Servlet API具有完善的標(biāo)準(zhǔn)。因此,為IPlanet Enterprise Server寫(xiě)的Servlet無(wú)需任何實(shí)質(zhì)上的改動(dòng)即可移植到Apachee、Mi

48、crosoft IIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過(guò)插件支持Servlet。</p><p><b> ?。?)節(jié)省投資  </b></p><p>  不僅有許多廉價(jià)甚至免費(fèi)的Web服務(wù)器可供個(gè)人或小規(guī)模網(wǎng)站使用,而且對(duì)于現(xiàn)有的服務(wù)器,如果它不支持Servlet的話(huà),要加上這部分功能也往往是免費(fèi)的(或只需要極少的投資)。</p&

49、gt;<p>  2.Servlet的生命周期</p><p>  加載Servlet。這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,Server通常會(huì)提供一個(gè)管理的選項(xiàng),用于在Server啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的Servlet。</p><p>  Server創(chuàng)建一個(gè)Servlet的實(shí)例</p><p>  Server調(diào)用Servlet的init()方法&

50、lt;/p><p>  一個(gè)客戶(hù)端的請(qǐng)求到達(dá)Server</p><p>  Server創(chuàng)建一個(gè)請(qǐng)求對(duì)象</p><p>  Server創(chuàng)建一個(gè)響應(yīng)對(duì)象</p><p>  Server激活Servlet的service()方法,傳遞請(qǐng)求和響應(yīng)對(duì)象作為參數(shù)</p><p>  service()方法獲得關(guān)于請(qǐng)求對(duì)象的信

51、息,處理請(qǐng)求,訪問(wèn)其他資源,獲得需要的信息</p><p>  service()方法使用響應(yīng)對(duì)象的方法,將響應(yīng)傳回Server,最終到達(dá)客戶(hù)端。service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開(kāi)發(fā)的新的方法。</p><p>  對(duì)于更多的客戶(hù)端請(qǐng)求,Server創(chuàng)建新的請(qǐng)求和響應(yīng)對(duì)象,仍然激活此Servlet的service()方法,將這

52、兩個(gè)對(duì)象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無(wú)需再次調(diào)用init()方法。一般Servlet只初始化一次(只有一個(gè)對(duì)象),當(dāng)Server不再需要Servlet時(shí)(一般當(dāng)Server關(guān)閉時(shí)),Server調(diào)用Servlet的Destroy()方法。Servlet的生命周期圖如下2-3所示</p><p>  Servlet的生命周期圖如下2-3所示</p><p>  3.Servlet

53、的編程接口</p><p>  (1) init() 方法</p><p>  在 Servlet 的生命期中,僅執(zhí)行一次 init() 方法。它是在服務(wù)器裝入 Servlet 時(shí)執(zhí)行的。 可以配置服務(wù)器,以在啟動(dòng)服務(wù)器或客戶(hù)機(jī)首次訪問(wèn) Servlet 時(shí)裝入 Servlet。 無(wú)論有多少客戶(hù)機(jī)訪問(wèn) Servlet,都不會(huì)重復(fù)執(zhí)行 init() 。</p><p>

54、  (2) service() 方法</p><p>  service() 方法是 Servlet 的核心。每當(dāng)一個(gè)客戶(hù)請(qǐng)求一個(gè)HttpServlet 對(duì)象,該對(duì)象的service() 方法就要被調(diào)用,而且傳遞給這個(gè)方法一個(gè)"請(qǐng)求"(ServletRequest)對(duì)象和一個(gè)"響應(yīng)"(ServletResponse)對(duì)象作為參數(shù)。 在 HttpServlet 中已存在 se

55、rvice() 方法。缺省的服務(wù)功能是調(diào)用與 HTTP 請(qǐng)求的方法相應(yīng)的 do 功能。例如, 如果 HTTP 請(qǐng)求方法為 GET,則缺省情況下就調(diào)用 doGet() 。Servlet 應(yīng)該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因?yàn)?HttpServlet.service() 方法會(huì)檢查請(qǐng)求方法是否調(diào)用了適當(dāng)?shù)奶幚矸椒?,不必要覆蓋 service() 方法。只需覆蓋相應(yīng)的 do 方法就可以了。</p>

56、<p>  Servlet的響應(yīng)可以是下列幾種類(lèi)型:</p><p>  一個(gè)輸出流,瀏覽器根據(jù)它的內(nèi)容類(lèi)型(如text/HTML)進(jìn)行解釋。</p><p>  一個(gè)HTTP錯(cuò)誤響應(yīng), 重定向到另一個(gè)URL、servlet、JSP。</p><p>  (3)doGet()方法</p><p>  當(dāng)一個(gè)客戶(hù)通過(guò)HTML 表單發(fā)出

57、一個(gè)HTTP GET請(qǐng)求或直接請(qǐng)求一個(gè)URL時(shí),doGet()方法被調(diào)用。與GET請(qǐng)求相關(guān)的參數(shù)添加到URL的后面,并與這個(gè)請(qǐng)求一起發(fā)送。當(dāng)不會(huì)修改服務(wù)器端的數(shù)據(jù)時(shí),應(yīng)該使用doGet()方法。</p><p>  (4)doPost()方法</p><p>  當(dāng)一個(gè)客戶(hù)通過(guò)HTML 表單發(fā)出一個(gè)HTTP POST請(qǐng)求時(shí),doPost()方法被調(diào)用。與POST請(qǐng)求相關(guān)的參數(shù)作為一個(gè)單獨(dú)的

58、HTTP 請(qǐng)求從瀏覽器發(fā)送到服務(wù)器。當(dāng)需要修改服務(wù)器端的數(shù)據(jù)時(shí),應(yīng)該使用doPost()方法。</p><p>  (5) destroy() 方法</p><p>  destroy() 方法僅執(zhí)行一次,即在服務(wù)器停止且卸裝Servlet 時(shí)執(zhí)行該方法。典型的,將 Servlet 作為服務(wù)器進(jìn)程的一部分來(lái)關(guān)閉。缺省的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理

59、服務(wù)器端資源。例如,如果 Servlet 在運(yùn)行時(shí)會(huì)累計(jì)統(tǒng)計(jì)數(shù)據(jù),則可以編寫(xiě)一個(gè) destroy() 方法,該方法用于在未裝入 Servlet 時(shí)將統(tǒng)計(jì)數(shù)字保存在文件中。另一個(gè)示例是關(guān)閉數(shù)據(jù)庫(kù)連接。</p><p>  當(dāng)服務(wù)器卸裝 Servlet 時(shí),將在所有 service() 方法調(diào)用完成后,或在指定的時(shí)間間隔過(guò)后調(diào)用 destroy() 方法。一個(gè)Servlet 在運(yùn)行service() 方法時(shí)可能會(huì)產(chǎn)生

60、其它的線程,因此請(qǐng)確認(rèn)在調(diào)用 destroy() 方法時(shí),這些線程已終止或完成。</p><p>  (6) GetServletConfig()方法</p><p>  GetServletConfig()方法返回一個(gè) ServletConfig 對(duì)象,該對(duì)象用來(lái)返回初始化參數(shù)和ServletContext。ServletContext 接口提供有關(guān)servlet 的環(huán)境信息。</

61、p><p>  (7) GetServletInfo()方法</p><p>  GetServletInfo()方法是一個(gè)可選的方法,它提供有關(guān)servlet 的信息,如作者、版本、版權(quán)。</p><p>  當(dāng)服務(wù)器調(diào)用sevlet 的Service()、doGet()和doPost()這三個(gè)方法時(shí),均需要 "請(qǐng)求"和"響應(yīng)"

62、對(duì)象作為參數(shù)。"請(qǐng)求"對(duì)象提供有關(guān)請(qǐng)求的信息,而"響應(yīng)"對(duì)象提供了一個(gè)將響應(yīng)信息返回給瀏覽器的一個(gè)通信途徑。</p><p>  javax.servlet 軟件包中的相關(guān)類(lèi)為ServletResponse和ServletRequest,而javax.servlet.http 軟件包中的相關(guān)類(lèi)為HttpServletRequest 和 HttpServletResponse

63、。Servlet 通過(guò)這些對(duì)象與服務(wù)器通信并最終與客戶(hù)機(jī)通信。Servlet 能通過(guò)調(diào)用"請(qǐng)求"對(duì)象的方法獲知客戶(hù)機(jī)環(huán)境,服務(wù)器環(huán)境的信息和所有由客戶(hù)機(jī)提供的信息。Servlet 可以調(diào)用"響應(yīng)"對(duì)象的方法發(fā)送響應(yīng),該響應(yīng)是準(zhǔn)備發(fā)回客戶(hù)機(jī)的。</p><p>  4.Servlet的工作模式</p><p>  (1)客戶(hù)端發(fā)送請(qǐng)求至服務(wù)器。<

64、/p><p> ?。?)服務(wù)器啟動(dòng)并調(diào)用Servlet,Servlet根據(jù)客戶(hù)端請(qǐng)求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。</p><p>  (3)服務(wù)器將響應(yīng)返回客戶(hù)端。</p><p>  2.3 MySQL數(shù)據(jù)庫(kù)的介紹</p><p><b>  MySQL簡(jiǎn)介:</b></p><p>  對(duì)于采用

65、瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)的網(wǎng)上購(gòu)物系統(tǒng),我選擇了MySQL數(shù)據(jù)庫(kù)軟件。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢(xún)語(yǔ)言”。SQL是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)

66、化語(yǔ)言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。 </p><p>  MySQL的產(chǎn)生背景:</p><p>  MySQL最初的開(kāi)發(fā)者的意圖是用mSQL和他們自己的快速低級(jí)例程(ISAM)去連接表格。經(jīng)過(guò)一些測(cè)試后,開(kāi)發(fā)者得出結(jié)論:mSQL并

67、沒(méi)有他們需要的那么快和靈活。這導(dǎo)致了一個(gè)使用幾乎和mSQL一樣的API接口的用于他們的數(shù)據(jù)庫(kù)的新的SQL接口的產(chǎn)生,這樣,這個(gè)API被設(shè)計(jì)成允許為用于mSQL而寫(xiě)的第三方代碼更容易移植到MySQL。</p><p>  MySQL這個(gè)名字是怎么來(lái)的已經(jīng)不清楚了?;局改虾痛罅康膸?kù)和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的的女兒也叫My。這兩個(gè)到底是哪一個(gè)給出了MySQL這個(gè)

68、名字至今依然是個(gè)迷,包括開(kāi)發(fā)者在內(nèi)也不知道。</p><p>  MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶(hù)在“海豚命名”的競(jìng)賽中建議的大量的名字表中選出的。獲勝的名字是由來(lái)自非洲斯威士蘭的開(kāi)源軟件開(kāi)發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說(shuō),Sakila來(lái)自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha

69、的一個(gè)小鎮(zhèn)的名字。</p><p><b>  MySQL的特性:</b></p><p>  1.使用C和C++編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性</p><p>  2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Win

70、dows等多種操作系統(tǒng)</p><p>  3.為多種編程語(yǔ)言提供了API。這些編程語(yǔ)言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。</p><p>  4.支持多線程,充分利用CPU資源</p><p>  5.優(yōu)化的SQL查詢(xún)算法,有效地提高查詢(xún)速度</p><p>  6.既能夠作為一個(gè)單

71、獨(dú)的應(yīng)用程序應(yīng)用在客戶(hù)端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名</p><p>  7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑</p><p>  8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具</p><p>  9

72、.可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)</p><p>  10.支持多種存儲(chǔ)引擎</p><p>  第三章 系統(tǒng)需求分析</p><p>  系統(tǒng)需求分析是平臺(tái)開(kāi)發(fā)的一個(gè)不可缺少的環(huán)節(jié),為了能夠使本系統(tǒng)更好、更完善地被設(shè)計(jì)出來(lái),就必須先進(jìn)行需求調(diào)查研究。在系統(tǒng)調(diào)查的基礎(chǔ)上,對(duì)新系統(tǒng)的功能進(jìn)行細(xì)致的分析,從而才能夠開(kāi)發(fā)出完整的系統(tǒng)設(shè)計(jì)</p><

73、;p>  3.1市場(chǎng)需求可行性</p><p>  四通八達(dá)的網(wǎng)絡(luò)隨著網(wǎng)上貿(mào)易的不斷發(fā)展,網(wǎng)上書(shū)店這種新興的商業(yè)形式開(kāi)始悄悄興起。當(dāng)人們不用走出家門(mén)就能得到自己想要的書(shū)籍的時(shí)候,他就己經(jīng)體會(huì)到電子商務(wù)的優(yōu)越性了。我們所做的這網(wǎng)上書(shū)店網(wǎng)站設(shè)計(jì)正是要實(shí)現(xiàn)網(wǎng)上交易,來(lái)滿(mǎn)足當(dāng)前社會(huì)人們的購(gòu)物需求。</p><p><b>  3.2功能需求分析</b></p>

74、;<p>  本系統(tǒng)主要有以下功能要求:</p><p><b>  3.2.1前臺(tái)</b></p><p>  注冊(cè)登錄模塊:完成用戶(hù)的注冊(cè)、登錄和留言功能。</p><p>  查看書(shū)籍模塊:完成書(shū)籍的查看及搜索想要的書(shū)籍的功能。</p><p>  購(gòu)物車(chē)模塊:完成用戶(hù)購(gòu)買(mǎi)想要的書(shū)籍及修改購(gòu)買(mǎi)書(shū)籍?dāng)?shù)量

75、功能。</p><p>  訂單模塊:完成訂單的提交及查看自己訂單的功能。</p><p>  3.2.2后臺(tái)管理模塊</p><p>  書(shū)籍管理模塊:主要包括書(shū)籍的添加、查看、刪除、修改等操作。</p><p>  訂單管理模塊:主要包括訂單的查看、查詢(xún)、發(fā)送、凍結(jié)等操作。</p><p>  用戶(hù)管理模塊: 主要

76、包括用戶(hù)的查看、查詢(xún)、凍結(jié)等操作。</p><p>  公告管理模塊:主要包括公告的查看、添加和修改等操作。</p><p>  留言板管理模塊:主要包括留言的查看、刪除等操作。</p><p>  功能需求結(jié)構(gòu)如圖3-1所示。</p><p><b>  1.前臺(tái):</b></p><p>&l

77、t;b>  2.后臺(tái)</b></p><p>  圖3-1 功能需求結(jié)構(gòu)圖</p><p>  3.3 業(yè)務(wù)流程分析</p><p>  網(wǎng)上書(shū)店前臺(tái)業(yè)務(wù)的基本流程如圖3-2所示主要包括以下內(nèi)容:</p><p>  顧客在主頁(yè)面瀏覽圖書(shū),遇到想買(mǎi)的圖書(shū)點(diǎn)擊購(gòu)買(mǎi),只有已注冊(cè)的用戶(hù)才能購(gòu)買(mǎi)圖書(shū),已經(jīng)注冊(cè)過(guò)的顧客點(diǎn)擊購(gòu)買(mǎi)進(jìn)入登

78、錄頁(yè)面,未注冊(cè)的顧客進(jìn)入注冊(cè)頁(yè)面進(jìn)行注冊(cè),登錄和注冊(cè)后都需重新選擇想要的圖書(shū)進(jìn)行購(gòu)買(mǎi),點(diǎn)擊購(gòu)買(mǎi)頁(yè)面跳轉(zhuǎn)至購(gòu)物車(chē)頁(yè)面,在此頁(yè)面可以進(jìn)行數(shù)量的修改,點(diǎn)擊結(jié)算進(jìn)入訂單頁(yè)面,訂單中有用戶(hù)注冊(cè)的住址、聯(lián)系方式等信息,用戶(hù)進(jìn)行核對(duì),核對(duì)結(jié)束后無(wú)誤點(diǎn)擊提交訂單,訂單發(fā)送至后臺(tái)管理系統(tǒng)等待處理,用戶(hù)結(jié)束購(gòu)物。</p><p>  圖3-2 基本業(yè)務(wù)流程圖</p><p>  3.4系統(tǒng)設(shè)計(jì)的總體規(guī)則&l

79、t;/p><p>  無(wú)論哪個(gè)網(wǎng)站都要有它自己的設(shè)計(jì)規(guī)則。該平臺(tái)也一樣,它的主要設(shè)計(jì)規(guī)則有:</p><p>  簡(jiǎn)單性:在實(shí)現(xiàn)平臺(tái)的功能的同時(shí),盡量讓平臺(tái)操作簡(jiǎn)單易懂,這對(duì)于一個(gè)網(wǎng)站來(lái)說(shuō)是非常重要的。</p><p>  針對(duì)性:該平臺(tái)設(shè)計(jì)是對(duì)網(wǎng)上瀏覽圖書(shū)、購(gòu)買(mǎi)圖書(shū)、后臺(tái)處理訂單、管理圖書(shū)定向開(kāi)發(fā)設(shè)計(jì)的,所以具有專(zhuān)業(yè)突出和很強(qiáng)的針對(duì)性。</p><

80、p>  實(shí)用性:該平臺(tái)能及時(shí)發(fā)布新書(shū)上市、優(yōu)惠活動(dòng)等消息,可以讓用戶(hù)快速、輕松買(mǎi)到想要的圖書(shū),具有良好的實(shí)用性。</p><p><b>  第四章 系統(tǒng)設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)模塊設(shè)計(jì)</p><p>  根據(jù)上一章的分析,可以設(shè)計(jì)出系統(tǒng)的總體功能模塊圖,如圖4-1所示。</p><p> 

81、 圖4-1 功能模塊示意圖</p><p>  用例圖,如圖4-2所示</p><p>  圖4-2 前后臺(tái)用例圖</p><p><b>  4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  現(xiàn)在我們已經(jīng)對(duì)易購(gòu)網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)設(shè)計(jì),模塊劃分有了比較全面的認(rèn)識(shí),本節(jié)將介紹系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)</p><

82、p>  4.2.1數(shù)據(jù)庫(kù)需求分析</p><p>  針對(duì)網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)的需求,設(shè)計(jì)如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p>  管理員信息,包括的數(shù)據(jù)項(xiàng)有:管理員ID,登錄名,密碼。</p><p>  書(shū)籍信息表,包括的數(shù)據(jù)項(xiàng)有:書(shū)籍ID,子類(lèi)ID,書(shū)籍名稱(chēng),ISBN,書(shū)籍的介紹,書(shū)籍原價(jià),書(shū)籍現(xiàn)價(jià),書(shū)籍圖片,出版社,作者,訂購(gòu)時(shí)間,書(shū)籍?dāng)?shù)量。<

83、;/p><p>  公告信息表,包括的數(shù)據(jù)項(xiàng):公告ID,公告標(biāo)題,公告內(nèi)容,公告時(shí)間,標(biāo)記。</p><p>  留言信息表,包括的數(shù)據(jù)項(xiàng):留言ID,用戶(hù)ID,留言主題,留言?xún)?nèi)容,留言時(shí)間。</p><p>  訂單詳細(xì)表,包括的數(shù)據(jù)項(xiàng):訂單詳細(xì)表ID,訂單ID,書(shū)籍ID,書(shū)籍?dāng)?shù)量。</p><p>  訂單表,包括的數(shù)據(jù)項(xiàng):訂單ID,用戶(hù)ID,

84、真名,地址,郵編,電子郵件,訂單時(shí)間,狀態(tài)。</p><p>  子類(lèi)書(shū)籍表,包括的數(shù)據(jù)項(xiàng):子類(lèi)ID,父類(lèi)ID,子類(lèi)名稱(chēng)。</p><p>  父類(lèi)書(shū)籍表,包括的數(shù)據(jù)項(xiàng):父類(lèi)ID,父類(lèi)名稱(chēng)。</p><p>  用戶(hù)表,包括的數(shù)據(jù)項(xiàng):用戶(hù)ID,登錄名,密碼,電子郵件,真名,性別,生日,地址,郵編,電話(huà),問(wèn)題,是否凍結(jié)。</p><p>  對(duì)

85、于上述表結(jié)構(gòu),每一個(gè)表都有一個(gè)ID來(lái)唯一標(biāo)識(shí)該表的每條記錄,其中書(shū)籍信息表,留言信息表,訂單詳細(xì)表,訂單表,子類(lèi)書(shū)籍表為本系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)的的核心表,幾個(gè)表中均有外鍵,這樣就把與之相關(guān)的表聯(lián)系起來(lái)了,同樣,有了上面的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)項(xiàng)和數(shù)據(jù)流程分析,我們就能進(jìn)行下面的數(shù)據(jù)庫(kù)設(shè)計(jì)。</p><p>  4.2.2數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)要遵循一些規(guī)則,一個(gè)好的數(shù)據(jù)庫(kù)滿(mǎn)足一些

86、嚴(yán)格的約束和要求。盡量分離各實(shí)體對(duì)應(yīng)的表,一個(gè)實(shí)體對(duì)應(yīng)一個(gè)表,搞清楚該實(shí)體有哪些屬性,對(duì)應(yīng)有些什么字段,以及各實(shí)體之間有何種聯(lián)系。實(shí)體、屬性與聯(lián)系是進(jìn)行概念設(shè)計(jì)時(shí)要考慮的三個(gè)元素,也是一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)的核心。</p><p>  本網(wǎng)站根據(jù)實(shí)際需要設(shè)計(jì)如下9個(gè)表,它們分別是admins表、books表、informs表、notes表、orderitems表、Orders表、subtypes表、supertype

87、s表、</p><p>  uers表。如下4-1~4-9表</p><p>  表4-1 admins表</p><p>  表4-2 books表</p><p>  表4-3 informs表</p><p>  表4-4 notes表</p><p>  表4-5 orderite

88、ms表</p><p>  表4-6 Orders表</p><p>  表4-7 subtypes表</p><p>  表4-8 supertypes表</p><p>  表4-9 uers表</p><p>  第五章 系統(tǒng)的具體實(shí)現(xiàn)</p><p><b>  5.1 創(chuàng)建

89、工程</b></p><p>  首先要?jiǎng)?chuàng)建工程的存儲(chǔ)目錄,例如:D:\Program Files\MyEclipse 10運(yùn)行myeclipse主程序,并選擇web project,建立名稱(chēng)為易購(gòu)網(wǎng)上書(shū)店工程下建立目錄結(jié)構(gòu),開(kāi)始此項(xiàng)目的編寫(xiě)。</p><p>  5.2功能頁(yè)面結(jié)構(gòu)及實(shí)現(xiàn)</p><p>  5.2.1注冊(cè)登錄 </p>

90、<p>  注冊(cè)登錄是每個(gè)網(wǎng)上購(gòu)物網(wǎng)站所必需擁有的,當(dāng)顧客成為注冊(cè)用戶(hù)后,他們就有了在網(wǎng)站上個(gè)一些權(quán)利更好的體驗(yàn)網(wǎng)站的服務(wù),網(wǎng)站也能更好的為用戶(hù)服務(wù)。以下是我的注冊(cè)登錄界面。如圖5-1~5-4</p><p><b>  圖5-1注冊(cè)頁(yè)面</b></p><p>  圖5-2 前臺(tái)登錄頁(yè)面</p><p>  圖5-3 個(gè)人信息設(shè)置頁(yè)

91、面</p><p>  圖5-4 密碼更改頁(yè)面</p><p><b>  1.功能描述:</b></p><p>  注冊(cè)時(shí)用戶(hù)輸入自己的一系列基本信息,用戶(hù)名和密碼不能為空,注冊(cè)成功。在用戶(hù)登陸時(shí)輸入用戶(hù)名和密碼,經(jīng)過(guò)驗(yàn)證若正確即可登陸。進(jìn)入登陸界面用戶(hù)可以通過(guò)點(diǎn)擊個(gè)人賬戶(hù)設(shè)置進(jìn)行自己個(gè)人信息的設(shè)置、修改密碼和查看訂單等操作。</p&

92、gt;<p><b>  2.功能實(shí)現(xiàn):</b></p><p>  注冊(cè):輸入到表單的數(shù)據(jù)從后臺(tái)獲取,經(jīng)過(guò)Servlet-Dao處理后寫(xiě)入數(shù)據(jù)庫(kù)。</p><p>  登陸:輸入的登陸信息從后臺(tái)抓取,經(jīng)過(guò)check方法處理后驗(yàn)證是否存在此用戶(hù),決定是否可以成功登陸。</p><p>  3.具體程序?qū)崿F(xiàn)如下:</p>

93、<p>  以下為修改密碼相關(guān)重要代碼:</p><p>  //此段代為修改密碼代碼,其中必須輸入舊密碼和新密碼,帶有驗(yàn)證。</p><p>  public boolean changePwd(String loginname,String pwd){</p><p>  String strSql = "update users set

94、 password='"+pwd+"' where loginname='"+loginname+"'";</p><p>  DBConn db = new DBConn();</p><p>  int iRs = db.exeCUD(strSql);</p><p>  db.c

95、lose();</p><p>  return iRs>0?true:false;</p><p><b>  }</b></p><p>  public boolean findPwd(String loginname,String question,String answer){</p><p>  Str

96、ing strSql = "select answer from users where loginname='"+loginname+"' and question='"+question+"'";</p><p>  DBConn db = new DBConn();</p><p>  Res

97、ultSet rs = db.exeR(strSql);</p><p><b>  try {</b></p><p>  if(rs.next()){</p><p>  return rs.getString(1).equals(answer)?true:false;</p><p><b>  }<

98、;/b></p><p>  return false;</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  db.close();

99、</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  //在UserServlet中完成相應(yīng)的doGet、doPost傳值,處理頁(yè)面中的請(qǐng)求。</p><p>  public v

100、oid doGet(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  doPost(request, response);</p><p><b>  }</b>

101、</p><p>  public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  PrintWriter out = response.getWriter(

102、);</p><p><b>  //修改密碼</b></p><p>  if(request.getParameter("oper").equals("updatepass"))</p><p><b>  {</b></p><p>  HttpS

103、ession session = request.getSession();</p><p>  Users uvo = (Users) session.getAttribute("users");</p><p>  //step1:獲得參數(shù)</p><p>  String strOldPwd = request.getParameter(&

104、quot;txtOldPwd");</p><p>  String strNewPwd = request.getParameter("txtNewPwd");</p><p>  if(uvo.getPassword().equals(strOldPwd)){</p><p>  int userid = uvo.getUserid

105、();</p><p>  //step2:處理參數(shù)</p><p>  UsersDao udao = new UsersDao();</p><p>  boolean bRs = udao.userChangePass(userid, strNewPwd);</p><p>  uvo.setPassword(strNewPwd);&l

106、t;/p><p>  session.setAttribute("users", uvo);</p><p>  response.sendRedirect("updatepwdSuccess.jsp");</p><p><b>  }else{</b></p><p>  out.

107、println("<script>alert('password wrong');history.back();</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  5.2.

108、2查看書(shū)籍</b></p><p>  在本網(wǎng)站中查看書(shū)籍就是在網(wǎng)站主頁(yè)完成,主頁(yè)左側(cè)是分類(lèi)右側(cè)是顯示相應(yīng)書(shū)籍,這樣就能方便用戶(hù)查看書(shū)籍還能進(jìn)行搜索和購(gòu)買(mǎi)等操作,主頁(yè)簡(jiǎn)潔、大方所有操作一目了然。如圖5-5所示。</p><p>  表5-5 網(wǎng)站首頁(yè)</p><p>  在主頁(yè)中有三個(gè)部分,分別是公告部分、書(shū)籍部分和書(shū)籍分類(lèi)部分。三個(gè)部是由頁(yè)面發(fā)出請(qǐng)求

109、經(jīng)過(guò)Servlet處理發(fā)送給Dao,Dao進(jìn)行數(shù)據(jù)庫(kù)操作后將所需數(shù)據(jù)返回Servlet,經(jīng)過(guò)處理回復(fù)頁(yè)面請(qǐng)求顯示在頁(yè)面上,再經(jīng)過(guò)循環(huán)所得到的,從而一本本書(shū)籍簡(jiǎn)介、一個(gè)個(gè)書(shū)籍分類(lèi)就呈現(xiàn)在我們面前。</p><p><b>  5.2.3購(gòu)物車(chē)</b></p><p>  購(gòu)物車(chē)是用戶(hù)完成購(gòu)物的重要工具,進(jìn)入網(wǎng)絡(luò)書(shū)城主頁(yè)面后,在頁(yè)面的上方有添加購(gòu)物車(chē)的表單控件,選擇你所要

110、購(gòu)買(mǎi)的書(shū)籍之后點(diǎn)擊添加到購(gòu)物車(chē)即可實(shí)現(xiàn)添加到購(gòu)物車(chē)功能。如圖5-3所示</p><p>  圖5-6 購(gòu)物車(chē)頁(yè)面</p><p>  購(gòu)物車(chē)的實(shí)現(xiàn)還是運(yùn)用MVC結(jié)構(gòu),用戶(hù)點(diǎn)擊購(gòu)買(mǎi)頁(yè)面發(fā)出請(qǐng)求,Servlet進(jìn)行處理發(fā)送給Dao層,Dao進(jìn)行數(shù)據(jù)庫(kù)操作返回所需數(shù)據(jù),Servlet回復(fù)請(qǐng)求傳值到頁(yè)面,頁(yè)面動(dòng)態(tài)顯示用戶(hù)購(gòu)物車(chē)信息。</p><p><b>  

111、具體程序?qū)崿F(xiàn)如下:</b></p><p>  圖5-3 訂單刪除頁(yè)面</p><p><b>  5.2.4訂 單</b></p><p><b>  1.提交訂單</b></p><p>  提交訂單就是你確定購(gòu)買(mǎi)書(shū)籍會(huì)出現(xiàn)一個(gè)訂單表,用戶(hù)對(duì)訂單核查后提交訂單,然后訂單被發(fā)送到后臺(tái)等

112、待處理。如圖5-7~5-8所示。</p><p>  表5-7 訂單核對(duì)頁(yè)面</p><p>  表5-8 查看訂單狀態(tài)</p><p><b>  2.訂單管理</b></p><p>  對(duì)提交來(lái)的訂單后臺(tái)要進(jìn)行處理,管理員可以對(duì)發(fā)送、查看、凍結(jié)等操作,當(dāng)管理員完成對(duì)訂單的處理后用戶(hù)會(huì)看見(jiàn)訂單狀態(tài)的改變,由未發(fā)送

113、到已發(fā)送,凍結(jié)訂單用會(huì)看到自己訂單凍結(jié)狀態(tài)。</p><p>  如圖5-9~5-10所示</p><p>  表5-9 處理訂單頁(yè)面</p><p>  表5-10 訂單狀態(tài)改變</p><p>  訂單和管理訂單功能的實(shí)現(xiàn):</p><p>  提交訂單后,訂單數(shù)據(jù)就被提交到數(shù)據(jù)庫(kù)里的orders表和order

114、items表中,兩個(gè)表為主外鍵關(guān)系,orders表顯示訂單詳細(xì)表ID,訂單ID,書(shū)籍ID,書(shū)籍?dāng)?shù)量。orderitems表顯示訂單ID,用戶(hù)ID,真名,地址,郵編,電子郵件,訂單時(shí)間,狀態(tài)。在后臺(tái)處理中,后臺(tái)發(fā)送請(qǐng)求,Servlet進(jìn)行處理發(fā)送給Dao層,Dao進(jìn)行數(shù)據(jù)庫(kù)操作返回所需數(shù)據(jù),Servlet回復(fù)請(qǐng)求傳值到頁(yè)面,訂單處理完畢,數(shù)據(jù)庫(kù)orders表中flag由1變成0,用戶(hù)查看時(shí)由未發(fā)送變?yōu)榘l(fā)送。</p><

115、p><b>  相關(guān)代碼主要有:</b></p><p>  //此代碼為Dao層訂單查詢(xún)和分頁(yè)效果實(shí)現(xiàn)的主要代碼</p><p>  //flag:為0表示沒(méi)有發(fā)貨,為1表發(fā)貨,為2表是凍結(jié)</p><p>  public PageBean OrderGetByPage(int pagesize,int currentpage,int

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論