版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 天津工業(yè)大學(xué)</b></p><p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 基于JSP/Servlet的易購網(wǎng)上圖書銷售系統(tǒng)</p><p> 姓 名 </p><p> 學(xué) 院 計(jì)算機(jī)科學(xué)與軟件&
2、lt;/p><p> 專 業(yè) 軟件工程 </p><p> 指導(dǎo)教師 </p><p> 職 稱 工程師 教授 </p><p> 2012年 6月 13日</p><p> 天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><
3、p> 院長 教研室主任 指導(dǎo)教師 </p><p> 畢業(yè)設(shè)計(jì)(論文)開題報告表</p><p><b> 2012年3月5日</b></p><p><b> 摘 要</b></p><p> 21世紀(jì)
4、是網(wǎng)絡(luò)經(jīng)濟(jì)時代,計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,對傳統(tǒng)的商品交易形式和流通方式產(chǎn)生了極大地影響。隨著人們對信息的獲取方式和獲取途徑的改變,對傳統(tǒng)的書店的銷售和管理模式帶來挑戰(zhàn),建立相應(yīng)的網(wǎng)上書店顯得尤其必要。</p><p> 網(wǎng)上圖書銷售系統(tǒng)使用Jsp和Servlet技術(shù)、采用Mysql做系統(tǒng)后臺數(shù)據(jù)庫。論文首先闡述了國內(nèi)外網(wǎng)上書店的發(fā)展與現(xiàn)狀,在對網(wǎng)上書店進(jìn)行綜合分析的基礎(chǔ)上,結(jié)合系統(tǒng)開發(fā)技術(shù),明確了系統(tǒng)需求,
5、并在此基礎(chǔ)上對系統(tǒng)進(jìn)行了詳細(xì)的規(guī)劃設(shè)計(jì),確定了系統(tǒng)所具有的前臺管理和后臺管理兩大基本功能模塊的功能,主要包括用戶登陸、圖書查詢、查看購物車、訂單信息等,論文對每個功能模塊的實(shí)現(xiàn)進(jìn)行了詳細(xì)的闡述,并介紹了對系統(tǒng)進(jìn)行測試的情況。</p><p> 系統(tǒng)經(jīng)測試和試運(yùn)行后基本達(dá)到設(shè)計(jì)要求,系統(tǒng)的圖書查找功能和管理員管理圖書功能,將為書店的銷售和管理帶來極大的方便。</p><p> 關(guān)鍵詞:網(wǎng)
6、上書店;Servlet;購物車 </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)開發(fā)背景1</p><p> 1.1.1網(wǎng)上書店的發(fā)展1</p><p> 1.1.2網(wǎng)上圖書銷售系統(tǒng)的研究現(xiàn)狀2</p><p> 1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)及開發(fā)意義3</p><
13、p> 第二章 相關(guān)技術(shù)介紹4</p><p> 2.1 JSP動態(tài)網(wǎng)站開發(fā)技術(shù)簡介4</p><p> 2.2 系統(tǒng)的主要架構(gòu)及開發(fā)模式4</p><p> 2.2.1 基于B/S的體系結(jié)構(gòu)5</p><p> 2.2.2 基于MVC的應(yīng)用開發(fā)模型5</p><p> 2.2.3 Servl
14、et控制器6</p><p> 2.3 MySQL數(shù)據(jù)庫的介紹10</p><p> 第三章 系統(tǒng)需求分析12</p><p> 3.1市場需求可行性12</p><p> 3.2功能需求分析12</p><p> 3.2.1前臺12</p><p> 3.2.2后臺管理
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ù)庫設(shè)計(jì)15</p><p> 4.2.1數(shù)據(jù)庫需求分析
16、16</p><p> 4.2.2數(shù)據(jù)庫結(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功能頁面結(jié)構(gòu)及實(shí)現(xiàn)19</p><p> 5.2.1注冊登錄19</p><p> 5.2.2查看書籍23&
17、lt;/p><p> 5.2.3購物車24</p><p> 5.2.4訂 單25</p><p> 5.2.5后臺書籍管理28</p><p> 5.2.6 用戶管理29</p><p> 5.2.7 公告管理31</p><p> 5.2.8 留言板管理33</p&
18、gt;<p> 第六章 系統(tǒng)測試及分析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開發(fā)工具35</p><p> 6.2.2數(shù)據(jù)庫的連接36</p><p> 6.3系統(tǒng)測試36</p><p> 6.3.1 單元測試36</p><p> 6.3.2集成測試36</p><p> 6.3.3系統(tǒng)測試37</p><p> 6.3
20、.4確認(rèn)測試37</p><p> 6.4對軟件功能測試的結(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ù)活動,即利用計(jì)算機(jī)網(wǎng)絡(luò)
22、進(jìn)行產(chǎn)品、服務(wù)、信息等的買賣活動。電子商務(wù)作為一種獨(dú)立的經(jīng)濟(jì)形態(tài),已初具規(guī)模,一些電子商務(wù)網(wǎng)站的成功給人們的生活帶來了巨大的影響。網(wǎng)絡(luò)技術(shù)發(fā)展到今天,Web數(shù)據(jù)庫技術(shù)已經(jīng)成為應(yīng)用最為廣泛的網(wǎng)站架構(gòu)基礎(chǔ)技術(shù)。而JSP、MYSQL兩者的結(jié)合,為Web數(shù)據(jù)庫技術(shù)提供了很好的實(shí)現(xiàn)體系。</p><p> 正是在這些因素的支持下網(wǎng)上書店才得以更好的發(fā)展,網(wǎng)上書店系統(tǒng)具有分類檢索搜索、購物車、訂單提交和查詢等網(wǎng)上書店所需的
23、功能,還具備靈活的網(wǎng)站內(nèi)容維護(hù)功能和會員功能,適合建立各種網(wǎng)上書店。</p><p> 1.1 系統(tǒng)開發(fā)背景</p><p> 1.1.1網(wǎng)上書店的發(fā)展</p><p> 國外最早的電子商務(wù)體驗(yàn)其實(shí)是從網(wǎng)上售書開始的。1994年7月,美國考夫·貝佐斯在西雅圖開設(shè)了全球第一家網(wǎng)上書店——亞馬遜書店,而且取得了巨大的成功。隨著亞馬遜成功的示范效應(yīng),網(wǎng)上售
24、書在世界范圍內(nèi)很快形成了一股洶涌之潮,尤其是西歐、北美等發(fā)達(dá)國家。甚至在傳統(tǒng)發(fā)行體系頗為完善的德國,也同樣刮起了網(wǎng)上售書的旋風(fēng)。</p><p> 在亞馬遜書店,讀者找到自己所需要的圖書后,可立即發(fā)出購書信息,一小時之內(nèi)就可收到所購圖書。而每當(dāng)打開網(wǎng)上書店的網(wǎng)頁,各種打折、讓利的廣告總是讓你不僅心動而且馬上行動。比如亞馬遜書店對《紐約時報》評選的暢銷書以40%至50%的價格出售。價格武器也是網(wǎng)上書店對傳統(tǒng)書店的
25、核心優(yōu)勢所在。</p><p> 此外,通過計(jì)算機(jī)存貯的資料,網(wǎng)上書店毫不費(fèi)力地建立起自己龐大的全球化讀者信息庫,對客戶需求和產(chǎn)品行情的預(yù)測也就更準(zhǔn)確。從而有效地降低庫存,減少資金占用。此外,網(wǎng)上虛擬書店,業(yè)務(wù)環(huán)節(jié)大為簡化,能節(jié)約費(fèi)用開支,降低銷售成本。</p><p> 2000年左右,中國也引入了網(wǎng)上書店這種B2C的電子商務(wù)模式。有以卓越網(wǎng)和當(dāng)當(dāng)網(wǎng)為代表的直接建立在因特網(wǎng)上的虛擬書
26、店,其中卓越定位于精品圖書的銷售,當(dāng)當(dāng)網(wǎng)則是追隨亞馬遜模式的多品種銷售的代表;還有一類是出于競爭或仿效也加入網(wǎng)上書店行列的一些老牌圖書銷售商,如新華書店。</p><p> 當(dāng)當(dāng)是中國最早學(xué)習(xí)亞馬遜的互聯(lián)網(wǎng)公司,實(shí)行全品種備貨,面向全世界中文讀者提供30多萬種中文圖書,占中國大陸可供書市場的90%。低價與規(guī)模成為當(dāng)當(dāng)網(wǎng)最為看重的兩大法寶。在價格上,實(shí)施沃爾瑪式的“天天低價”策略,并開發(fā)出一套智能比價系統(tǒng),通過與
27、同類競品價格掃描對比后自動調(diào)價。</p><p> 卓越網(wǎng)自成立之初就確立了專注在圖書音像產(chǎn)品領(lǐng)域,堅(jiān)持“精選品種、全場庫存、快捷配送”的卓越模式。這一模式的優(yōu)勢是,在動用較少的資金和資源下,能相對保證產(chǎn)品質(zhì)量和服務(wù),在管理執(zhí)行上的效率較高,但不利于擴(kuò)張。亞馬遜在2004年9月斥資約7500萬美元收購了卓越網(wǎng),開始把卓越全面亞馬遜化的“還魂與再造”,向“做大而精”轉(zhuǎn)型。</p><p>
28、 但無論是當(dāng)當(dāng)網(wǎng)還是卓越網(wǎng),在中國要復(fù)制亞馬遜模式,就意味著要接受庫存、配送、銷售和管理成本的考量。此外,更大的難度還在于,目前中國圖書音像業(yè)供應(yīng)鏈并不成熟,要做到像亞馬遜那樣既要零庫存又要配送及時實(shí)在是不可能完成的任務(wù)。歷時7年之后,雖然已經(jīng)把實(shí)體書店沖擊得七零八落,但是當(dāng)當(dāng)網(wǎng)和卓越網(wǎng)自己仍沒有實(shí)現(xiàn)盈利,未來如何實(shí)現(xiàn)規(guī)模與利潤的平衡將是他們一個長期的難題。</p><p> 1.1.2網(wǎng)上圖書銷售系統(tǒng)的研究
29、現(xiàn)狀</p><p> 國際上書店前景看好,至少在1997年,國外網(wǎng)上書店己達(dá)兩百家以上。而在國內(nèi),自從杭州新華書店創(chuàng)辦第一家網(wǎng)上書店后,網(wǎng)上書店如雨后春筍般涌現(xiàn)出來。其中最為有名的莫過于1999年1月1日開通的上海書城網(wǎng)上書店和3月9日正式營業(yè)的北京圖書大廈網(wǎng)上書店,還有2004年7月15日由沈陽市北方圖書城開通的中國內(nèi)地品種最全的網(wǎng)上書店?,F(xiàn)在,到底有多少家中文圖書的網(wǎng)上書店,恐怕很難統(tǒng)計(jì)完整。數(shù)據(jù)之多,多
30、少也能看出國內(nèi)網(wǎng)上書店競爭的激烈性。據(jù)統(tǒng)計(jì),2004年我國網(wǎng)民己達(dá)8700萬,其中87.7%的網(wǎng)民曾體驗(yàn)過網(wǎng)上購物。在有實(shí)際購買行為的網(wǎng)民中,有57.6%的網(wǎng)民購買的是圖書,有26.4%的購買的是音像制品,這充分說明以網(wǎng)上書店為代表的出版物在線銷售面臨著良好的發(fā)展機(jī)遇。出版物網(wǎng)上銷售有諸多優(yōu)點(diǎn):24小時服務(wù)、送貨上門、無店鋪銷售、搜索查詢數(shù)據(jù)庫等優(yōu)點(diǎn),彌補(bǔ)了傳統(tǒng)出版發(fā)行業(yè)的不足,更為廣大農(nóng)村、偏遠(yuǎn)地區(qū)的老百姓提供了方便。隨著人們購物觀念
31、、購物習(xí)慣的改變以及網(wǎng)上購物質(zhì)量、信譽(yù)的提升,出版物在線銷售將有更大市場空間。出版物網(wǎng)上銷售不僅是傳統(tǒng)銷售模式的發(fā)展和補(bǔ)充,也是未來的發(fā)展方向。但應(yīng)該看到,目前我國網(wǎng)上書</p><p> 1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)及開發(fā)意義</p><p> 當(dāng)代社會,人們已經(jīng)深深的領(lǐng)略到信息革命第二次浪潮的沖擊?,F(xiàn)在信息技術(shù)突破了單位性和地域性的局限,實(shí)現(xiàn)了網(wǎng)絡(luò)和全球化,以英特網(wǎng)為代表的現(xiàn)代信息網(wǎng)絡(luò)正在
32、以每月15%的速度急劇增長,其應(yīng)用范圍也開始從單純的通訊。教育和信息查詢向更具效益的商業(yè)領(lǐng)域擴(kuò)張。這一趨勢告訴人們,電子商務(wù)在信息技術(shù)的強(qiáng)有力的推動下,已經(jīng)叩響了人類的大門。計(jì)算機(jī)的全球聯(lián)網(wǎng),形成了與地域、空間無關(guān)的時間一體化市場,一種新的,基于計(jì)算機(jī)網(wǎng)絡(luò)的新型商業(yè)機(jī)制正在逐步形成,這是處于激烈競爭環(huán)境中的各國政府、制造商、銷售商及有關(guān)研究部門所不能回避的現(xiàn)實(shí),在已經(jīng)邁入21世紀(jì)的今天,認(rèn)識電子商務(wù)、了解電子商務(wù)、進(jìn)而參與電子商務(wù),是每
33、一位消費(fèi)者都不得不認(rèn)真對待的一項(xiàng)新任務(wù)。</p><p> 隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,本系統(tǒng)在電子商務(wù)技術(shù)的應(yīng)用使得企業(yè)或個人通過電子商務(wù)技術(shù)進(jìn)行圖書的網(wǎng)上購買,新用戶注冊、用戶登陸、商品分類、查詢商品、購物車和訂單等基本功能。通過開發(fā)在線電子書店系統(tǒng),改變了傳統(tǒng)購書方式,充分利用了現(xiàn)代化的各種高科技手段,方便、快捷滿足人們的需要。</p><p> 第二章 相關(guān)技術(shù)介紹</p
34、><p> 合理的選擇開發(fā)技術(shù),對于網(wǎng)站開發(fā)的完成情況有著非常重要的影響。要開發(fā)一個網(wǎng)站,首先要選擇好相關(guān)技術(shù)和工具。本網(wǎng)站運(yùn)用比較流行的動態(tài)網(wǎng)頁開發(fā)技術(shù)JSP、Servlet等,數(shù)據(jù)庫運(yùn)用MySql,下面我們進(jìn)行簡要介紹。</p><p> 2.1 JSP動態(tài)網(wǎng)站開發(fā)技術(shù)簡介</p><p> JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptl
35、ets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。</p><p> Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)
36、頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。</p><p> JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。</p><p> JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺。</p><p&
37、gt; JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。</p><p>
38、 自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。</p><p> JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。</p><p> 2.2 系統(tǒng)的主要架構(gòu)及開發(fā)模式</p><p> 系統(tǒng)的建設(shè)關(guān)鍵在于其所使用的架構(gòu),而網(wǎng)上購物這種基于web的系統(tǒng), B/
39、S基于瀏覽器的架構(gòu)則是目前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主流,它將大量的數(shù)據(jù)處理工作交給服務(wù)器端來處理,客戶端只用通過普通的瀏覽器即可訪問系統(tǒng),方便快捷而且利于系統(tǒng)的更新和維護(hù),Java語言在這方面有很大的優(yōu)勢,J2EE規(guī)范的出現(xiàn)則使系統(tǒng)的開發(fā)更加規(guī)范,層次更加清楚,更利于對復(fù)雜事務(wù)的處理,而且在安全性方面也做的更好。基于mvc的開發(fā)流程則使開發(fā)過程更加清晰明了,利于做一些復(fù)雜的邏輯實(shí)現(xiàn),從而節(jié)省了開發(fā)周期和開發(fā)成本。</p><p
40、> 2.2.1 基于B/S的體系結(jié)構(gòu)</p><p> 在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請求,而其余如數(shù)據(jù)請求、加工、結(jié)果返回以及動態(tài)網(wǎng)頁生成等工作全部由Web
41、 Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來,由Web服務(wù)器單獨(dú)組成一層來負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。這種三層體系結(jié)構(gòu)如圖2-1所示。 </p><p> 圖2-1 B/S三層架構(gòu)示意圖</p><p> 這種結(jié)構(gòu)不僅把客戶機(jī)從沉重的負(fù)擔(dān)和不斷對其提高的性能的要求中解放出來,也把技術(shù)維護(hù)人員從
42、繁重的維護(hù)升級工作中解脫出來。由于客戶機(jī)把事務(wù)處理邏輯部分分給了功能服務(wù)器,使客戶機(jī)一下子"苗條"了許多,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,所以維護(hù)人員不再為程序的維護(hù)工作奔波于每個客戶機(jī)之間,而把主要精力放在功能服務(wù)器上程序的更新工作。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會影響其它層的功能。 </p><p> 2.2.2 基于MVC的應(yīng)用開發(fā)模型&l
43、t;/p><p> 在本網(wǎng)上圖書銷售系統(tǒng)中,將采用通行的MVC模式來構(gòu)建應(yīng)用。MVC 模型把一個應(yīng)用的輸入、處理、輸出流程按照模型(model)、 視圖(view)和控制器(controller)的方式進(jìn)行分離,形成模型層、視圖層、控制層三個層次,這種結(jié)構(gòu)解決了前面所述的所有問題,在我們的應(yīng)用集成網(wǎng)絡(luò)中,通過企業(yè)級高端J2EE應(yīng)用服務(wù)器實(shí)現(xiàn)MVC開發(fā)模型。MVC的邏輯圖如圖2-2所示:</p><
44、;p> 圖2-2 應(yīng)用服務(wù)器之上采用MVC開發(fā)的邏輯示意圖</p><p> 2.2.3 Servlet控制器</p><p> 在本項(xiàng)目的開發(fā)過程中最為核心的技術(shù)應(yīng)用就是Servlet的運(yùn)用。Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺和協(xié)議的特性,可以生成動態(tài)的Web頁面。 它擔(dān)當(dāng)客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器
45、上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。</p><p> Servlet的優(yōu)點(diǎn)</p><p><b> ?。?) 方便 </b></p>
46、<p> Servlet提供了大量的實(shí)用工具例程,例如自動地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會話狀態(tài)等。</p><p><b> ?。?)功能強(qiáng)大</b></p><p> 在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序
47、不能。Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實(shí)現(xiàn)。</p><p><b> ?。?) 可移植性好</b></p><p> Servlet用Java編寫,Servlet API具有完善的標(biāo)準(zhǔn)。因此,為IPlanet Enterprise Server寫的Servlet無需任何實(shí)質(zhì)上的改動即可移植到Apachee、Mi
48、crosoft IIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet。</p><p><b> ?。?)節(jié)省投資 </b></p><p> 不僅有許多廉價甚至免費(fèi)的Web服務(wù)器可供個人或小規(guī)模網(wǎng)站使用,而且對于現(xiàn)有的服務(wù)器,如果它不支持Servlet的話,要加上這部分功能也往往是免費(fèi)的(或只需要極少的投資)。</p&
49、gt;<p> 2.Servlet的生命周期</p><p> 加載Servlet。這項(xiàng)操作一般是動態(tài)執(zhí)行的。然而,Server通常會提供一個管理的選項(xiàng),用于在Server啟動時強(qiáng)制裝載和初始化特定的Servlet。</p><p> Server創(chuàng)建一個Servlet的實(shí)例</p><p> Server調(diào)用Servlet的init()方法&
50、lt;/p><p> 一個客戶端的請求到達(dá)Server</p><p> Server創(chuàng)建一個請求對象</p><p> Server創(chuàng)建一個響應(yīng)對象</p><p> Server激活Servlet的service()方法,傳遞請求和響應(yīng)對象作為參數(shù)</p><p> service()方法獲得關(guān)于請求對象的信
51、息,處理請求,訪問其他資源,獲得需要的信息</p><p> service()方法使用響應(yīng)對象的方法,將響應(yīng)傳回Server,最終到達(dá)客戶端。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發(fā)的新的方法。</p><p> 對于更多的客戶端請求,Server創(chuàng)建新的請求和響應(yīng)對象,仍然激活此Servlet的service()方法,將這
52、兩個對象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無需再次調(diào)用init()方法。一般Servlet只初始化一次(只有一個對象),當(dāng)Server不再需要Servlet時(一般當(dāng)Server關(guān)閉時),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 時執(zhí)行的。 可以配置服務(wù)器,以在啟動服務(wù)器或客戶機(jī)首次訪問 Servlet 時裝入 Servlet。 無論有多少客戶機(jī)訪問 Servlet,都不會重復(fù)執(zhí)行 init() 。</p><p>
54、 (2) service() 方法</p><p> service() 方法是 Servlet 的核心。每當(dāng)一個客戶請求一個HttpServlet 對象,該對象的service() 方法就要被調(diào)用,而且傳遞給這個方法一個"請求"(ServletRequest)對象和一個"響應(yīng)"(ServletResponse)對象作為參數(shù)。 在 HttpServlet 中已存在 se
55、rvice() 方法。缺省的服務(wù)功能是調(diào)用與 HTTP 請求的方法相應(yīng)的 do 功能。例如, 如果 HTTP 請求方法為 GET,則缺省情況下就調(diào)用 doGet() 。Servlet 應(yīng)該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因?yàn)?HttpServlet.service() 方法會檢查請求方法是否調(diào)用了適當(dāng)?shù)奶幚矸椒?,不必要覆蓋 service() 方法。只需覆蓋相應(yīng)的 do 方法就可以了。</p>
56、<p> Servlet的響應(yīng)可以是下列幾種類型:</p><p> 一個輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進(jìn)行解釋。</p><p> 一個HTTP錯誤響應(yīng), 重定向到另一個URL、servlet、JSP。</p><p> (3)doGet()方法</p><p> 當(dāng)一個客戶通過HTML 表單發(fā)出
57、一個HTTP GET請求或直接請求一個URL時,doGet()方法被調(diào)用。與GET請求相關(guān)的參數(shù)添加到URL的后面,并與這個請求一起發(fā)送。當(dāng)不會修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doGet()方法。</p><p> (4)doPost()方法</p><p> 當(dāng)一個客戶通過HTML 表單發(fā)出一個HTTP POST請求時,doPost()方法被調(diào)用。與POST請求相關(guān)的參數(shù)作為一個單獨(dú)的
58、HTTP 請求從瀏覽器發(fā)送到服務(wù)器。當(dāng)需要修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doPost()方法。</p><p> (5) destroy() 方法</p><p> destroy() 方法僅執(zhí)行一次,即在服務(wù)器停止且卸裝Servlet 時執(zhí)行該方法。典型的,將 Servlet 作為服務(wù)器進(jìn)程的一部分來關(guān)閉。缺省的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理
59、服務(wù)器端資源。例如,如果 Servlet 在運(yùn)行時會累計(jì)統(tǒng)計(jì)數(shù)據(jù),則可以編寫一個 destroy() 方法,該方法用于在未裝入 Servlet 時將統(tǒng)計(jì)數(shù)字保存在文件中。另一個示例是關(guān)閉數(shù)據(jù)庫連接。</p><p> 當(dāng)服務(wù)器卸裝 Servlet 時,將在所有 service() 方法調(diào)用完成后,或在指定的時間間隔過后調(diào)用 destroy() 方法。一個Servlet 在運(yùn)行service() 方法時可能會產(chǎn)生
60、其它的線程,因此請確認(rèn)在調(diào)用 destroy() 方法時,這些線程已終止或完成。</p><p> (6) GetServletConfig()方法</p><p> GetServletConfig()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數(shù)和ServletContext。ServletContext 接口提供有關(guān)servlet 的環(huán)境信息。</
61、p><p> (7) GetServletInfo()方法</p><p> GetServletInfo()方法是一個可選的方法,它提供有關(guān)servlet 的信息,如作者、版本、版權(quán)。</p><p> 當(dāng)服務(wù)器調(diào)用sevlet 的Service()、doGet()和doPost()這三個方法時,均需要 "請求"和"響應(yīng)"
62、對象作為參數(shù)。"請求"對象提供有關(guān)請求的信息,而"響應(yīng)"對象提供了一個將響應(yīng)信息返回給瀏覽器的一個通信途徑。</p><p> javax.servlet 軟件包中的相關(guān)類為ServletResponse和ServletRequest,而javax.servlet.http 軟件包中的相關(guān)類為HttpServletRequest 和 HttpServletResponse
63、。Servlet 通過這些對象與服務(wù)器通信并最終與客戶機(jī)通信。Servlet 能通過調(diào)用"請求"對象的方法獲知客戶機(jī)環(huán)境,服務(wù)器環(huán)境的信息和所有由客戶機(jī)提供的信息。Servlet 可以調(diào)用"響應(yīng)"對象的方法發(fā)送響應(yīng),該響應(yīng)是準(zhǔn)備發(fā)回客戶機(jī)的。</p><p> 4.Servlet的工作模式</p><p> ?。?)客戶端發(fā)送請求至服務(wù)器。<
64、/p><p> ?。?)服務(wù)器啟動并調(diào)用Servlet,Servlet根據(jù)客戶端請求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。</p><p> ?。?)服務(wù)器將響應(yīng)返回客戶端。</p><p> 2.3 MySQL數(shù)據(jù)庫的介紹</p><p><b> MySQL簡介:</b></p><p> 對于采用
65、瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)的網(wǎng)上購物系統(tǒng),我選擇了MySQL數(shù)據(jù)庫軟件。MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)
66、化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。 </p><p> MySQL的產(chǎn)生背景:</p><p> MySQL最初的開發(fā)者的意圖是用mSQL和他們自己的快速低級例程(ISAM)去連接表格。經(jīng)過一些測試后,開發(fā)者得出結(jié)論:mSQL并
67、沒有他們需要的那么快和靈活。這導(dǎo)致了一個使用幾乎和mSQL一樣的API接口的用于他們的數(shù)據(jù)庫的新的SQL接口的產(chǎn)生,這樣,這個API被設(shè)計(jì)成允許為用于mSQL而寫的第三方代碼更容易移植到MySQL。</p><p> MySQL這個名字是怎么來的已經(jīng)不清楚了?;局改虾痛罅康膸旌凸ぞ邘в星熬Y“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的的女兒也叫My。這兩個到底是哪一個給出了MySQL這個
68、名字至今依然是個迷,包括開發(fā)者在內(nèi)也不知道。</p><p> MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha
69、的一個小鎮(zhèn)的名字。</p><p><b> MySQL的特性:</b></p><p> 1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性</p><p> 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Win
70、dows等多種操作系統(tǒng)</p><p> 3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。</p><p> 4.支持多線程,充分利用CPU資源</p><p> 5.優(yōu)化的SQL查詢算法,有效地提高查詢速度</p><p> 6.既能夠作為一個單
71、獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名</p><p> 7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑</p><p> 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具</p><p> 9
72、.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫</p><p> 10.支持多種存儲引擎</p><p> 第三章 系統(tǒng)需求分析</p><p> 系統(tǒng)需求分析是平臺開發(fā)的一個不可缺少的環(huán)節(jié),為了能夠使本系統(tǒng)更好、更完善地被設(shè)計(jì)出來,就必須先進(jìn)行需求調(diào)查研究。在系統(tǒng)調(diào)查的基礎(chǔ)上,對新系統(tǒng)的功能進(jìn)行細(xì)致的分析,從而才能夠開發(fā)出完整的系統(tǒng)設(shè)計(jì)</p><
73、;p> 3.1市場需求可行性</p><p> 四通八達(dá)的網(wǎng)絡(luò)隨著網(wǎng)上貿(mào)易的不斷發(fā)展,網(wǎng)上書店這種新興的商業(yè)形式開始悄悄興起。當(dāng)人們不用走出家門就能得到自己想要的書籍的時候,他就己經(jīng)體會到電子商務(wù)的優(yōu)越性了。我們所做的這網(wǎng)上書店網(wǎng)站設(shè)計(jì)正是要實(shí)現(xiàn)網(wǎng)上交易,來滿足當(dāng)前社會人們的購物需求。</p><p><b> 3.2功能需求分析</b></p>
74、;<p> 本系統(tǒng)主要有以下功能要求:</p><p><b> 3.2.1前臺</b></p><p> 注冊登錄模塊:完成用戶的注冊、登錄和留言功能。</p><p> 查看書籍模塊:完成書籍的查看及搜索想要的書籍的功能。</p><p> 購物車模塊:完成用戶購買想要的書籍及修改購買書籍?dāng)?shù)量
75、功能。</p><p> 訂單模塊:完成訂單的提交及查看自己訂單的功能。</p><p> 3.2.2后臺管理模塊</p><p> 書籍管理模塊:主要包括書籍的添加、查看、刪除、修改等操作。</p><p> 訂單管理模塊:主要包括訂單的查看、查詢、發(fā)送、凍結(jié)等操作。</p><p> 用戶管理模塊: 主要
76、包括用戶的查看、查詢、凍結(jié)等操作。</p><p> 公告管理模塊:主要包括公告的查看、添加和修改等操作。</p><p> 留言板管理模塊:主要包括留言的查看、刪除等操作。</p><p> 功能需求結(jié)構(gòu)如圖3-1所示。</p><p><b> 1.前臺:</b></p><p>&l
77、t;b> 2.后臺</b></p><p> 圖3-1 功能需求結(jié)構(gòu)圖</p><p> 3.3 業(yè)務(wù)流程分析</p><p> 網(wǎng)上書店前臺業(yè)務(wù)的基本流程如圖3-2所示主要包括以下內(nèi)容:</p><p> 顧客在主頁面瀏覽圖書,遇到想買的圖書點(diǎn)擊購買,只有已注冊的用戶才能購買圖書,已經(jīng)注冊過的顧客點(diǎn)擊購買進(jìn)入登
78、錄頁面,未注冊的顧客進(jìn)入注冊頁面進(jìn)行注冊,登錄和注冊后都需重新選擇想要的圖書進(jìn)行購買,點(diǎn)擊購買頁面跳轉(zhuǎn)至購物車頁面,在此頁面可以進(jìn)行數(shù)量的修改,點(diǎn)擊結(jié)算進(jìn)入訂單頁面,訂單中有用戶注冊的住址、聯(lián)系方式等信息,用戶進(jìn)行核對,核對結(jié)束后無誤點(diǎn)擊提交訂單,訂單發(fā)送至后臺管理系統(tǒng)等待處理,用戶結(jié)束購物。</p><p> 圖3-2 基本業(yè)務(wù)流程圖</p><p> 3.4系統(tǒng)設(shè)計(jì)的總體規(guī)則&l
79、t;/p><p> 無論哪個網(wǎng)站都要有它自己的設(shè)計(jì)規(guī)則。該平臺也一樣,它的主要設(shè)計(jì)規(guī)則有:</p><p> 簡單性:在實(shí)現(xiàn)平臺的功能的同時,盡量讓平臺操作簡單易懂,這對于一個網(wǎng)站來說是非常重要的。</p><p> 針對性:該平臺設(shè)計(jì)是對網(wǎng)上瀏覽圖書、購買圖書、后臺處理訂單、管理圖書定向開發(fā)設(shè)計(jì)的,所以具有專業(yè)突出和很強(qiáng)的針對性。</p><
80、p> 實(shí)用性:該平臺能及時發(fā)布新書上市、優(yōu)惠活動等消息,可以讓用戶快速、輕松買到想要的圖書,具有良好的實(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 前后臺用例圖</p><p><b> 4.2 數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 現(xiàn)在我們已經(jīng)對易購網(wǎng)上圖書銷售系統(tǒng)設(shè)計(jì),模塊劃分有了比較全面的認(rèn)識,本節(jié)將介紹系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)</p><
82、p> 4.2.1數(shù)據(jù)庫需求分析</p><p> 針對網(wǎng)上圖書銷售系統(tǒng)的需求,設(shè)計(jì)如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p> 管理員信息,包括的數(shù)據(jù)項(xiàng)有:管理員ID,登錄名,密碼。</p><p> 書籍信息表,包括的數(shù)據(jù)項(xiàng)有:書籍ID,子類ID,書籍名稱,ISBN,書籍的介紹,書籍原價,書籍現(xiàn)價,書籍圖片,出版社,作者,訂購時間,書籍?dāng)?shù)量。<
83、;/p><p> 公告信息表,包括的數(shù)據(jù)項(xiàng):公告ID,公告標(biāo)題,公告內(nèi)容,公告時間,標(biāo)記。</p><p> 留言信息表,包括的數(shù)據(jù)項(xiàng):留言ID,用戶ID,留言主題,留言內(nèi)容,留言時間。</p><p> 訂單詳細(xì)表,包括的數(shù)據(jù)項(xiàng):訂單詳細(xì)表ID,訂單ID,書籍ID,書籍?dāng)?shù)量。</p><p> 訂單表,包括的數(shù)據(jù)項(xiàng):訂單ID,用戶ID,
84、真名,地址,郵編,電子郵件,訂單時間,狀態(tài)。</p><p> 子類書籍表,包括的數(shù)據(jù)項(xiàng):子類ID,父類ID,子類名稱。</p><p> 父類書籍表,包括的數(shù)據(jù)項(xiàng):父類ID,父類名稱。</p><p> 用戶表,包括的數(shù)據(jù)項(xiàng):用戶ID,登錄名,密碼,電子郵件,真名,性別,生日,地址,郵編,電話,問題,是否凍結(jié)。</p><p> 對
85、于上述表結(jié)構(gòu),每一個表都有一個ID來唯一標(biāo)識該表的每條記錄,其中書籍信息表,留言信息表,訂單詳細(xì)表,訂單表,子類書籍表為本系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)的的核心表,幾個表中均有外鍵,這樣就把與之相關(guān)的表聯(lián)系起來了,同樣,有了上面的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)項(xiàng)和數(shù)據(jù)流程分析,我們就能進(jìn)行下面的數(shù)據(jù)庫設(shè)計(jì)。</p><p> 4.2.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)</p><p> 數(shù)據(jù)庫設(shè)計(jì)要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些
86、嚴(yán)格的約束和要求。盡量分離各實(shí)體對應(yīng)的表,一個實(shí)體對應(yīng)一個表,搞清楚該實(shí)體有哪些屬性,對應(yīng)有些什么字段,以及各實(shí)體之間有何種聯(lián)系。實(shí)體、屬性與聯(lián)系是進(jìn)行概念設(shè)計(jì)時要考慮的三個元素,也是一個好的數(shù)據(jù)庫設(shè)計(jì)的核心。</p><p> 本網(wǎng)站根據(jù)實(shí)際需要設(shè)計(jì)如下9個表,它們分別是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> 首先要創(chuàng)建工程的存儲目錄,例如:D:\Program Files\MyEclipse 10運(yùn)行myeclipse主程序,并選擇web project,建立名稱為易購網(wǎng)上書店工程下建立目錄結(jié)構(gòu),開始此項(xiàng)目的編寫。</p><p> 5.2功能頁面結(jié)構(gòu)及實(shí)現(xiàn)</p><p> 5.2.1注冊登錄 </p>
90、<p> 注冊登錄是每個網(wǎng)上購物網(wǎng)站所必需擁有的,當(dāng)顧客成為注冊用戶后,他們就有了在網(wǎng)站上個一些權(quán)利更好的體驗(yàn)網(wǎng)站的服務(wù),網(wǎng)站也能更好的為用戶服務(wù)。以下是我的注冊登錄界面。如圖5-1~5-4</p><p><b> 圖5-1注冊頁面</b></p><p> 圖5-2 前臺登錄頁面</p><p> 圖5-3 個人信息設(shè)置頁
91、面</p><p> 圖5-4 密碼更改頁面</p><p><b> 1.功能描述:</b></p><p> 注冊時用戶輸入自己的一系列基本信息,用戶名和密碼不能為空,注冊成功。在用戶登陸時輸入用戶名和密碼,經(jīng)過驗(yàn)證若正確即可登陸。進(jìn)入登陸界面用戶可以通過點(diǎn)擊個人賬戶設(shè)置進(jìn)行自己個人信息的設(shè)置、修改密碼和查看訂單等操作。</p&
92、gt;<p><b> 2.功能實(shí)現(xiàn):</b></p><p> 注冊:輸入到表單的數(shù)據(jù)從后臺獲取,經(jīng)過Servlet-Dao處理后寫入數(shù)據(jù)庫。</p><p> 登陸:輸入的登陸信息從后臺抓取,經(jīng)過check方法處理后驗(yàn)證是否存在此用戶,決定是否可以成功登陸。</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傳值,處理頁面中的請求。</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查看書籍</b></p><p> 在本網(wǎng)站中查看書籍就是在網(wǎng)站主頁完成,主頁左側(cè)是分類右側(cè)是顯示相應(yīng)書籍,這樣就能方便用戶查看書籍還能進(jìn)行搜索和購買等操作,主頁簡潔、大方所有操作一目了然。如圖5-5所示。</p><p> 表5-5 網(wǎng)站首頁</p><p> 在主頁中有三個部分,分別是公告部分、書籍部分和書籍分類部分。三個部是由頁面發(fā)出請求
109、經(jīng)過Servlet處理發(fā)送給Dao,Dao進(jìn)行數(shù)據(jù)庫操作后將所需數(shù)據(jù)返回Servlet,經(jīng)過處理回復(fù)頁面請求顯示在頁面上,再經(jīng)過循環(huán)所得到的,從而一本本書籍簡介、一個個書籍分類就呈現(xiàn)在我們面前。</p><p><b> 5.2.3購物車</b></p><p> 購物車是用戶完成購物的重要工具,進(jìn)入網(wǎng)絡(luò)書城主頁面后,在頁面的上方有添加購物車的表單控件,選擇你所要
110、購買的書籍之后點(diǎn)擊添加到購物車即可實(shí)現(xiàn)添加到購物車功能。如圖5-3所示</p><p> 圖5-6 購物車頁面</p><p> 購物車的實(shí)現(xiàn)還是運(yùn)用MVC結(jié)構(gòu),用戶點(diǎn)擊購買頁面發(fā)出請求,Servlet進(jìn)行處理發(fā)送給Dao層,Dao進(jìn)行數(shù)據(jù)庫操作返回所需數(shù)據(jù),Servlet回復(fù)請求傳值到頁面,頁面動態(tài)顯示用戶購物車信息。</p><p><b>
111、具體程序?qū)崿F(xiàn)如下:</b></p><p> 圖5-3 訂單刪除頁面</p><p><b> 5.2.4訂 單</b></p><p><b> 1.提交訂單</b></p><p> 提交訂單就是你確定購買書籍會出現(xiàn)一個訂單表,用戶對訂單核查后提交訂單,然后訂單被發(fā)送到后臺等
112、待處理。如圖5-7~5-8所示。</p><p> 表5-7 訂單核對頁面</p><p> 表5-8 查看訂單狀態(tài)</p><p><b> 2.訂單管理</b></p><p> 對提交來的訂單后臺要進(jìn)行處理,管理員可以對發(fā)送、查看、凍結(jié)等操作,當(dāng)管理員完成對訂單的處理后用戶會看見訂單狀態(tài)的改變,由未發(fā)送
113、到已發(fā)送,凍結(jié)訂單用會看到自己訂單凍結(jié)狀態(tài)。</p><p> 如圖5-9~5-10所示</p><p> 表5-9 處理訂單頁面</p><p> 表5-10 訂單狀態(tài)改變</p><p> 訂單和管理訂單功能的實(shí)現(xiàn):</p><p> 提交訂單后,訂單數(shù)據(jù)就被提交到數(shù)據(jù)庫里的orders表和order
114、items表中,兩個表為主外鍵關(guān)系,orders表顯示訂單詳細(xì)表ID,訂單ID,書籍ID,書籍?dāng)?shù)量。orderitems表顯示訂單ID,用戶ID,真名,地址,郵編,電子郵件,訂單時間,狀態(tài)。在后臺處理中,后臺發(fā)送請求,Servlet進(jìn)行處理發(fā)送給Dao層,Dao進(jìn)行數(shù)據(jù)庫操作返回所需數(shù)據(jù),Servlet回復(fù)請求傳值到頁面,訂單處理完畢,數(shù)據(jù)庫orders表中flag由1變成0,用戶查看時由未發(fā)送變?yōu)榘l(fā)送。</p><
115、p><b> 相關(guān)代碼主要有:</b></p><p> //此代碼為Dao層訂單查詢和分頁效果實(shí)現(xiàn)的主要代碼</p><p> //flag:為0表示沒有發(fā)貨,為1表發(fā)貨,為2表是凍結(jié)</p><p> public PageBean OrderGetByPage(int pagesize,int currentpage,int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ____屆天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文工作調(diào)查表
- 2019天津工業(yè)大學(xué)840軟件工程考試大綱
- 合肥工業(yè)大學(xué)軟件工程領(lǐng)域
- 合肥工業(yè)大學(xué)軟件工程領(lǐng)域
- 天津工業(yè)大學(xué)2019屆本科畢業(yè)設(shè)計(jì)論文任務(wù)書
- 天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文開題報告表
- 2019年天津工業(yè)大學(xué)840軟件工程考研大綱
- 哈爾濱工業(yè)大學(xué)軟件學(xué)院軟件工程中期報告
- 內(nèi)蒙古工業(yè)大學(xué)軟件工程專業(yè)本科畢業(yè)設(shè)計(jì)說明書
- 安徽工業(yè)大學(xué)軟件工程作業(yè)及答案
- 天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文教師指導(dǎo)記錄
- 天津工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)論文評閱表
- 齊魯工業(yè)大學(xué)2013屆本科生畢業(yè)設(shè)計(jì)(論文)
- 哈爾濱工業(yè)大學(xué)環(huán)境工程專業(yè)本科畢業(yè)設(shè)計(jì)(論文)
- 大連工業(yè)大學(xué)通信工程專業(yè)本科畢業(yè)設(shè)計(jì)(論文)
- 齊魯工業(yè)大學(xué)2015屆本科生畢業(yè)設(shè)計(jì)(論文)
- 長春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)
- 南京工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)
- 天津工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文成績評定表
- 2014哈爾濱工業(yè)大學(xué)軟件工程834考研真題
評論
0/150
提交評論