基于jsp的網(wǎng)上書(shū)店設(shè)計(jì)的與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b>  (二零 屆)</b></p><p>  基于JSP的網(wǎng)上書(shū)店設(shè)計(jì)的與實(shí)現(xiàn)</p><p>  所在學(xué)院 </p><p>  專業(yè)班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù) </p&

2、gt;<p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p>  摘要:本文重點(diǎn)介紹了“網(wǎng)上書(shū)店”的開(kāi)發(fā)意義及如何分析、設(shè)計(jì)和實(shí)現(xiàn)的?;竟δ馨ㄓ脩糇?cè)會(huì)

3、員、登錄、圖書(shū)展示、圖書(shū)查詢、在線瀏覽圖書(shū)、遠(yuǎn)程購(gòu)買、遠(yuǎn)程交易等。系統(tǒng)開(kāi)發(fā)工具是使用JSP及MySQL數(shù)據(jù)庫(kù),系統(tǒng)是基于零售商實(shí)體背景開(kāi)發(fā)的,可以有效的實(shí)現(xiàn)網(wǎng)上圖書(shū)交易。 在論文中首先介紹了電子商務(wù)及開(kāi)發(fā)所使用軟件的相關(guān)知識(shí),并根據(jù)以上知識(shí)制作網(wǎng)站。文中主要包括需求分析,總體設(shè)計(jì),功能設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)等,并通過(guò)流程圖和文字加以解釋說(shuō)明。</p><p>  關(guān)鍵詞:JAVA;JSP;網(wǎng)絡(luò)編程;網(wǎng)上書(shū)店<

4、;/p><p>  Design and Implementation of Online Bookshop based on JSP</p><p>  Abstract:This article has introduced the main body of ‘the web bookshop’ exploitation significance and how to analyses,

5、design and realize. The fundamental function logs on including consumer register member, the book shows book, browses on line, long-range purchase, long-range business etc. The system develop implement is to use JSP and

6、the MySQL data base , system is that background is development owing to entity family of retail dealer , the book trades on being able to be effective realizing</p><p>  Key words: JAVA;JSP;Network programmi

7、ng; bookshop Online</p><p><b>  目錄</b></p><p><b>  1 引言1</b></p><p>  1.1 開(kāi)發(fā)網(wǎng)上書(shū)店的目的1</p><p>  1.2 開(kāi)發(fā)網(wǎng)絡(luò)書(shū)店的意義2</p><p>  2 開(kāi)發(fā)環(huán)境

8、與開(kāi)發(fā)工具介紹4</p><p>  2.1 系統(tǒng)開(kāi)發(fā)語(yǔ)言JSP4</p><p>  2.1.1 JSP的MVC模式4</p><p>  2.1.1 JSP技術(shù)的強(qiáng)勢(shì)4</p><p>  2.1.2 JSP技術(shù)的弱勢(shì)5</p><p>  2.2 系統(tǒng)開(kāi)發(fā)工具M(jìn)yEclipse5</p&

9、gt;<p>  2.3 系統(tǒng)開(kāi)發(fā)環(huán)境Apache Tomcat5</p><p>  2.4 系統(tǒng)數(shù)據(jù)庫(kù)MySQL6</p><p>  3 系統(tǒng)分析與設(shè)計(jì)7</p><p>  3.1 需求分析7</p><p>  3.2 總體設(shè)計(jì)7</p><p>  3.3 功能設(shè)計(jì)8&

10、lt;/p><p>  3.3.1 圖書(shū)信息管理8</p><p>  3.3.2 購(gòu)物車管理8</p><p>  3.3.3 會(huì)員注冊(cè)8</p><p>  3.3.4 訂單處理8</p><p>  3.4 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)8</p><p>  3.5 網(wǎng)上書(shū)店UML圖

11、9</p><p>  3.6 網(wǎng)上書(shū)店各頁(yè)面功能9</p><p>  3.6.1 網(wǎng)上書(shū)店首頁(yè)bookMain.jsp詳細(xì)功能及描述9</p><p>  3.6.2 顯示圖書(shū)詳細(xì)信息bookShow.jsp頁(yè)面詳細(xì)功能及描述10</p><p>  3.6.3 顯示購(gòu)物車信息bookShopCart.jsp頁(yè)面詳細(xì)功能及

12、描述10</p><p>  3.6.4 網(wǎng)上書(shū)店客戶登錄userLogin.jsp頁(yè)面詳細(xì)功能及描述11</p><p>  3.6.5 網(wǎng)上書(shū)店客戶注冊(cè)u(píng)serRegister.jsp頁(yè)面詳細(xì)功能及描述11</p><p>  3.6.6 選擇送貨方式及付款方式orderAddress.jsp頁(yè)面詳細(xì)功能及描述11</p><p

13、>  3.6.7 確認(rèn)訂單信息orderConfirm.jsp頁(yè)面詳細(xì)功能及描述11</p><p>  3.6.8 顯示客戶所有訂單信息orderHistory.jsp頁(yè)面詳細(xì)功能及描述12</p><p>  3.7 業(yè)務(wù)邏輯層各bean功能12</p><p>  3.8 控制處理層13</p><p>  4

14、主要源代碼介紹15</p><p>  4.1 創(chuàng)建數(shù)據(jù)表的腳本15</p><p>  4.2 購(gòu)物車模塊15</p><p>  4.3 管理員模塊20</p><p>  4.4 數(shù)據(jù)庫(kù)連接模塊23</p><p>  5 進(jìn)一步的探討25</p><p>  5.1

15、 系統(tǒng)的設(shè)計(jì)情況25</p><p>  5.2 本網(wǎng)站的特色25</p><p>  5.3 本網(wǎng)站的優(yōu)點(diǎn)26</p><p>  5.4 本網(wǎng)站需要改進(jìn)的地方26</p><p>  5.5 系統(tǒng)今后發(fā)展的方向27</p><p><b>  6 結(jié)束語(yǔ)28</b>&l

16、t;/p><p>  7 參考文獻(xiàn)29</p><p><b>  1 引言</b></p><p>  1.1 開(kāi)發(fā)網(wǎng)上書(shū)店的目的</p><p>  目前,網(wǎng)絡(luò)正以一種前所未有的沖擊力在影響著人類的活動(dòng),包括人類的生產(chǎn)和日常生活。網(wǎng)絡(luò)的誕生和發(fā)展,顛覆了傳統(tǒng)的信息傳播方式,沖破了存在于傳統(tǒng)交流方式中時(shí)間和空間的種

17、種壁壘,極大地改變了人類從物質(zhì)到精神、從形式到內(nèi)容、從生產(chǎn)到生活的各種活動(dòng),并且給人類帶來(lái)了新的機(jī)遇和挑戰(zhàn)。通過(guò)互聯(lián)網(wǎng)傳遞的大量信息使得現(xiàn)有的社會(huì)資源獲得高效配置,社會(huì)勞動(dòng)生產(chǎn)率大幅度提高,并推動(dòng)經(jīng)濟(jì)結(jié)構(gòu)革新和產(chǎn)業(yè)結(jié)構(gòu)的升級(jí)。電子商務(wù)是互聯(lián)網(wǎng)發(fā)展日臻成熟的直接后果,是網(wǎng)絡(luò)技術(shù)應(yīng)用新的發(fā)展方向?;ヂ?lián)網(wǎng)自身所具有的開(kāi)放性、全球性、低成本、高效率的特點(diǎn),已成為電子商務(wù)的內(nèi)在特征,并使得電子商務(wù)大大超越了作為一種新的貿(mào)易形式所具有的價(jià)值。近幾年

18、來(lái),計(jì)算機(jī)技術(shù)飛速發(fā)展,人類社會(huì)正從工業(yè)化社會(huì)跨進(jìn)信息化社會(huì),越來(lái)越多的信息資源被人們利用信息資源的有效管理和利用是一個(gè)國(guó)家一個(gè)部門信息建設(shè)的重要內(nèi)容。</p><p>  21世紀(jì)可以說(shuō)是電子商務(wù)的世紀(jì)。電子商務(wù)通過(guò)大幅度地降低交易成本、增加貿(mào)易機(jī)會(huì)、簡(jiǎn)化交易流程、提高服務(wù)質(zhì)量、改善物流電子商務(wù)網(wǎng)站等,極大地推動(dòng)了全球經(jīng)濟(jì)的發(fā)展,并在很大程序上影響著我們的生活方式和工作方式。眾所周知,電子商務(wù)的存在與發(fā)展都離不

19、開(kāi)商務(wù)網(wǎng)絡(luò)的支持,各種商務(wù)網(wǎng)站不僅已經(jīng)成為現(xiàn)代企業(yè)的門戶,同時(shí)也是企業(yè)從電子商務(wù)活動(dòng)必不可少的基礎(chǔ)平臺(tái)[1]。</p><p>  企業(yè)開(kāi)展電子商務(wù),有四大優(yōu)勢(shì)。一、提高了企業(yè)的經(jīng)營(yíng)管理水平;二、促進(jìn)了企業(yè)經(jīng)營(yíng)管理觀念和制度的變革;三、培養(yǎng)和鍛煉了一大批人才;四、改善了企業(yè)形象。這對(duì)于提高企業(yè)的市場(chǎng)認(rèn)知程度有很大幫助。一般地,互聯(lián)網(wǎng)應(yīng)用水平較高的企業(yè),其市場(chǎng)開(kāi)拓能力、成本控制能力、業(yè)務(wù)流程的重組及企業(yè)管理的觀念與

20、制度,均得到了不同程度的提高和優(yōu)化。中石化集團(tuán)通過(guò)網(wǎng)上采購(gòu),對(duì)采購(gòu)全過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控,使采購(gòu)過(guò)程公開(kāi)化、規(guī)范化,實(shí)現(xiàn)了“陽(yáng)光作業(yè)”,在很大程度上杜絕了暗箱操作,大大降低了采購(gòu)成本。</p><p>  通過(guò)網(wǎng)上圖書(shū)銷售系統(tǒng)的設(shè)計(jì)來(lái)理解如何把一個(gè)實(shí)體企業(yè)網(wǎng)絡(luò)化,搭建B2C模式的網(wǎng)上交易平臺(tái),縱觀現(xiàn)在的兩大主流開(kāi)發(fā)體系:Microsoft的.NET體系和SUN公司的以J2EE(Java2 Enterprise Edi

21、tion)為核心的SUN-ONE(SUN Open Network Environment)戰(zhàn)略,無(wú)論在哪套體系中,基于WEB的技術(shù)都在被逐步漸加強(qiáng),.NET推出了以ASP.NET為代表的WEB開(kāi)發(fā)技術(shù),而在SUN的Java體系中,則有JSP/Servlet/JavaBean與之相抗衡。本次畢業(yè)設(shè)計(jì)主要采用JSP(Java server pages)技術(shù),并綜合相關(guān)的Java技術(shù),數(shù)據(jù)庫(kù)技術(shù)和軟件工程的理論。在整個(gè)開(kāi)發(fā)的過(guò)程中,需要充分

22、的發(fā)揮自己的能力,包括學(xué)習(xí)能力、成員間的協(xié)作能力和個(gè)人獨(dú)立解決問(wèn)題的能力。</p><p>  1.2 開(kāi)發(fā)網(wǎng)絡(luò)書(shū)店的意義</p><p>  網(wǎng)上書(shū)店擠壓盜版空間。</p><p>  如今發(fā)展最快的,最時(shí)髦的,恐怕就是網(wǎng)絡(luò)了。網(wǎng)絡(luò)給人們帶來(lái)了實(shí)惠、虛擬、幻化,也給文學(xué)和圖書(shū)帶來(lái)了廣闊的生存空間。盜版者利用科學(xué)技術(shù),瞄準(zhǔn)正版書(shū)與盜版書(shū)的差價(jià)牟取暴利。網(wǎng)絡(luò)書(shū)店的興

23、起無(wú)疑給盜版商以有力的打擊,因?yàn)榘l(fā)達(dá)的網(wǎng)絡(luò)可以直接疏通圖書(shū)的發(fā)行渠道,縮短了網(wǎng)上購(gòu)書(shū)者與出版社的距離,給圖書(shū)消費(fèi)者以清新、便宜的享受。</p><p>  網(wǎng)上書(shū)店濃縮了圖書(shū)的庫(kù)存空間</p><p>  傳統(tǒng)圖書(shū)店內(nèi)的圖書(shū)擺放面積是有限的,每增加一本書(shū)其成本都在以一定比例增加,而網(wǎng)絡(luò)書(shū)店解決了存儲(chǔ)空間問(wèn)題,每增加一本書(shū)成本增長(zhǎng)幾乎為零。</p><p>  數(shù)量、

24、種類多,出版時(shí)間跨度大</p><p>  綜合性的網(wǎng)上書(shū)店涉及各種各類內(nèi)容的圖書(shū),提供訂購(gòu)的書(shū)目信息達(dá)上萬(wàn)、幾十萬(wàn)條,而圖書(shū)出版的時(shí)間有最新出版的,也有幾十年前的,這是傳統(tǒng)書(shū)店難以做到的。</p><p><b>  不受時(shí)間、地域限制</b></p><p>  網(wǎng)上書(shū)店是24小時(shí)向全球各地的用戶提供網(wǎng)上服務(wù)的,用戶借助網(wǎng)絡(luò)可以漫游于世界各

25、地的圖書(shū)海洋中,隨時(shí)選書(shū)、下訂單,進(jìn)行異地購(gòu)書(shū)。</p><p><b>  信息豐富</b></p><p>  網(wǎng)上書(shū)店的欄目豐富:特價(jià)書(shū)、書(shū)業(yè)視窗、銷售排行、新品上架、最新推薦等,動(dòng)態(tài)地向用戶提供各種信息,讓用戶了解書(shū)市的最新情況。另外,每種被檢索出來(lái)的圖書(shū)也有詳盡的介紹,如基本書(shū)目信息、封面、目次、內(nèi)容提要、書(shū)評(píng)等,這些信息都有助于用戶選書(shū)。</p>

26、;<p><b>  多途徑綜合檢索</b></p><p>  網(wǎng)上書(shū)店主要提供分類和自定義搜索的方式對(duì)圖書(shū)或其它商品(音像制品、電腦軟件等)進(jìn)行查找。分類一般是結(jié)合《中圖法》按用戶的閱讀習(xí)慣或興趣分類,同一類的圖書(shū)相對(duì)集中在一起,方便用戶在同類圖書(shū)中挑選出高質(zhì)量的圖書(shū)。自定義搜索是用戶根據(jù)自己所需的圖書(shū)以主題、書(shū)名、著者、出版社等信息作為檢索點(diǎn)對(duì)圖書(shū)或其它商品進(jìn)行一般搜索,

27、如果希望檢索結(jié)果更準(zhǔn)確就使用高級(jí)檢索---同時(shí)使用幾個(gè)檢索點(diǎn)查找。這種方法相對(duì)于其它購(gòu)書(shū)方式來(lái)說(shuō)找書(shū)更快捷。</p><p><b>  價(jià)格低廉</b></p><p>  一般來(lái)講,網(wǎng)上書(shū)店買書(shū),要比普通書(shū)店便宜。由于拋棄了傳統(tǒng)書(shū)店運(yùn)作的所需的服務(wù)設(shè)施和多重環(huán)節(jié),絕對(duì)的成本低廉。由于網(wǎng)上書(shū)店運(yùn)營(yíng)方式是有訂購(gòu)需要時(shí)直接到出版社取效性強(qiáng),除了一部分有收藏價(jià)值的外,絕大

28、多數(shù)圖書(shū)都會(huì)“掉價(jià)”[2]。</p><p>  2 開(kāi)發(fā)環(huán)境與開(kāi)發(fā)工具介紹</p><p>  2.1 系統(tǒng)開(kāi)發(fā)語(yǔ)言JSP</p><p>  JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)

29、中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。</p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(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è)

30、計(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代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。</p><p>  JSP與Java Servlet一樣,是在服務(wù)器

31、端執(zhí)行的,通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。     </p><p>  JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Jav

32、a技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。   </p><p>  自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語(yǔ)言。   </p><p>  JSP可用一種簡(jiǎn)單易懂的等式表示為:HTML+Java=JSP。</p><p>  2.1.

33、1 JSP的MVC模式 </p><p>  為了把表現(xiàn)層presentation從請(qǐng)求處理request processing 和數(shù)據(jù)存儲(chǔ)data storage中分離開(kāi)來(lái),SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器”Model-view-controller 模式。規(guī)范的SERVLET或者分離的JSP文件用于處理請(qǐng)求。當(dāng)請(qǐng)求處理完后,控制權(quán)交給一個(gè)只作為創(chuàng)建輸出作用的JSP頁(yè)。有幾種平臺(tái)都基于

34、服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件 模式(比如Struts 和Spring framework)。</p><p>  2.1.2 JSP技術(shù)的強(qiáng)勢(shì)</p><p> ?。?)一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。 </p><p>  (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP

35、/.net的局限性是顯而易見(jiàn)的。 </p><p> ?。?)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 </p><p> ?。?)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的

36、開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 </p><p>  (5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。</p><p>  2.1.3 JSP技術(shù)的弱勢(shì)</p>&l

37、t;p> ?。?) 與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。 </p><p> ?。?) Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來(lái)儲(chǔ)存一系列的.java文件和.class文件,以及對(duì)應(yīng)的版本文件。<

38、/p><p>  2.2 系統(tǒng)開(kāi)發(fā)工具M(jìn)yEclipse</p><p>  MyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)元產(chǎn)品的支持十分不錯(cuò)。</p><p>  MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench

39、 ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。</p><p>  2.3 系統(tǒng)開(kāi)發(fā)環(huán)境Apache Tomc

40、at</p><p>  Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)

41、先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是6.0。</p><p>  Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷地改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。 </p><p&

42、gt;  Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><p

43、>  2.4 系統(tǒng)數(shù)據(jù)庫(kù)MySQL</p><p>  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).對(duì)于MySQL的前途,沒(méi)有任何人抱樂(lè)觀的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)

44、站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。</p><p>  MySQL自身特性:</p><p>  1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性。 </p><p>  2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Win

45、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查詢算法,有效地提高查詢速度 。</p><p>  6.既

46、能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。 </p><p>  3 系統(tǒng)分析與設(shè)計(jì)</p><p><b>  3.1 需求分析</b></p><p>  網(wǎng)上書(shū)店系統(tǒng)主要

47、是實(shí)現(xiàn)網(wǎng)上選書(shū)、購(gòu)書(shū)、產(chǎn)生訂單等功能的系統(tǒng)。一個(gè)典型的網(wǎng)上商城一般都需要實(shí)現(xiàn)商品信息的動(dòng)態(tài)提示、購(gòu)物車管理、客戶信息注冊(cè)登錄管理、訂單處理等模塊[3]。</p><p>  根據(jù)網(wǎng)上書(shū)店的基本需求,本系統(tǒng)需要完成的具體任務(wù)如下:</p><p>  書(shū)圖查詢: 當(dāng)客戶進(jìn)入網(wǎng)上書(shū)店時(shí),應(yīng)該在主頁(yè)面中分類顯示最新的書(shū)目信息,以供客戶選擇所需圖書(shū),同時(shí)也應(yīng)該提供按照?qǐng)D書(shū)名稱,或者作者信息快速查詢

48、所需書(shū)目信息的功能。</p><p>  購(gòu)物車管理:當(dāng)客戶選擇購(gòu)買某圖書(shū)產(chǎn)品時(shí),應(yīng)該能夠?qū)?duì)應(yīng)圖書(shū)信息,如:價(jià)格、數(shù)量記錄到對(duì)應(yīng)的購(gòu)物車中,并允許客戶返回書(shū)目查詢頁(yè)面,選擇其他商品,并添加到購(gòu)物車中,當(dāng)對(duì)應(yīng)的購(gòu)物訂單生成后,應(yīng)該能夠自動(dòng)清除以生成訂單的購(gòu)物車中的信息。</p><p>  訂單處理:對(duì)應(yīng)客戶購(gòu)買圖書(shū)商品信息的需求,在確定了所購(gòu)圖書(shū)商品的價(jià)格、數(shù)量等信息后,提示用戶選擇對(duì)應(yīng)

49、的送貨方式及付款方式,最終生成對(duì)應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進(jìn)行后續(xù)的出貨、送貨的處理。</p><p>  會(huì)員注冊(cè):為了能夠?qū)崿F(xiàn)圖書(shū)商品的購(gòu)買,需要管理客戶相關(guān)的聯(lián)系方式、送貨地點(diǎn)等相關(guān)的信息。</p><p>  圖1網(wǎng)上書(shū)店Use Case圖</p><p><b>  3.2 總體設(shè)計(jì)</b></p>

50、<p>  下表中給出了構(gòu)成網(wǎng)上書(shū)店系統(tǒng)的各個(gè)組件,通過(guò)下表,可以從宏觀上了解各個(gè)組件的功能。</p><p>  表3-1 組件功能表:</p><p><b>  3.3 功能設(shè)計(jì)</b></p><p>  3.3.1 圖書(shū)信息管理</p><p>  該模塊實(shí)現(xiàn)圖書(shū)書(shū)目信息的分類顯示,也是提供圖書(shū)信

51、息依據(jù)書(shū)名及作者信息快速搜索的功能。此外,在用戶選擇了對(duì)應(yīng)書(shū)目信息后,還可以顯示出有關(guān)該圖書(shū)的詳細(xì)信息,以便于客戶了解所購(gòu)商品[4]。</p><p>  3.3.2 購(gòu)物車管理</p><p>  用于維護(hù)每一個(gè)進(jìn)入網(wǎng)上書(shū)店的客戶對(duì)應(yīng)的購(gòu)物車。即將客戶所選購(gòu)的圖書(shū)商品信息記錄到對(duì)應(yīng)的購(gòu)物車中,以便于到收銀臺(tái)進(jìn)行結(jié)賬處理。</p><p>  3.3.3 會(huì)員注

52、冊(cè)</p><p>  實(shí)現(xiàn)網(wǎng)上書(shū)店客戶信息的注冊(cè)、及身份驗(yàn)證。由于目前網(wǎng)上商城普遍采用的方式為送貨上門或者郵寄,因此需要收集與客戶相關(guān)的聯(lián)系方式、通信地址等信息。</p><p>  3.3.4 訂單處理</p><p>  根據(jù)客戶購(gòu)物車中的信息,以及客戶所選擇的送貨方式和付款方式,連同客戶對(duì)應(yīng)的個(gè)人信息生成訂單,以便于后續(xù)進(jìn)行送貨處理。</p>

53、<p>  3.4 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)</p><p>  依據(jù)網(wǎng)上書(shū)店的處理需求,對(duì)就數(shù)據(jù)表的設(shè)計(jì)及功能如下。</p><p>  圖書(shū)基本信息表:存放網(wǎng)上書(shū)店所銷售圖書(shū)的基本信息。</p><p>  圖書(shū)分類基本信息表:存放網(wǎng)上書(shū)店所提供圖書(shū)分類的信息。</p><p>  客戶基本信息表:存放書(shū)店客戶的基本信息。</

54、p><p>  訂單信息表:存放與客戶相關(guān)的訂單的基本信息。</p><p>  訂單條目詳細(xì)信息表:存放訂單中詳細(xì)條目的基本信息。</p><p>  3.5 網(wǎng)上書(shū)店UML圖</p><p><b>  UML活動(dòng)關(guān)系圖。</b></p><p>  下面是進(jìn)入網(wǎng)上書(shū)店系統(tǒng)時(shí)可以進(jìn)行的操作。具體

55、的UML活動(dòng)如圖2所示。</p><p>  圖2 UML活動(dòng)關(guān)系圖</p><p>  3.6 網(wǎng)上書(shū)店各頁(yè)面功能</p><p>  3.6.1 網(wǎng)上書(shū)店首頁(yè)詳細(xì)功能及描述</p><p>  獲取圖書(shū)分類信息以及圖書(shū)基本信息集合</p><p>  循環(huán)顯示圖書(shū)分類信息</p><p>

56、;  提交顯示指定分類圖書(shū)信息的請(qǐng)求,同時(shí)傳遞對(duì)應(yīng)圖書(shū)分類編號(hào)</p><p>  提交書(shū)目搜索請(qǐng)求及搜索條件的表單</p><p>  提交搜索關(guān)鍵字的表單元素</p><p>  選擇搜索條件的表單元素</p><p>  顯示圖書(shū)記錄總數(shù)、當(dāng)前頁(yè)面編號(hào)以及總頁(yè)數(shù)</p><p>  循環(huán)顯示對(duì)應(yīng)圖書(shū)書(shū)目信息<

57、;/p><p>  顯示圖書(shū)名稱、價(jià)格、銷售價(jià)格、作者信息</p><p>  提交顯示圖書(shū)詳細(xì)信息請(qǐng)求的超鏈接</p><p>  提交分頁(yè)顯示請(qǐng)求的超鏈接,同時(shí)提交指定頁(yè)面編號(hào)</p><p>  單擊分類時(shí)將提交請(qǐng)求,以便于獲取對(duì)應(yīng)圖書(shū)分類的相關(guān)信息。當(dāng)選擇了查詢依據(jù),并且輸入了對(duì)應(yīng)關(guān)鍵字,單擊“搜索”按鈕時(shí),將提交請(qǐng)求,同時(shí)提交查詢條件,

58、進(jìn)行后續(xù)書(shū)目信息搜索的處理。當(dāng)在書(shū)目列表中單擊查看詳細(xì)信息請(qǐng)求時(shí),將發(fā)出請(qǐng)求,同時(shí)傳遞對(duì)應(yīng)圖書(shū)記錄的編號(hào),以獲取指定圖書(shū)更加詳細(xì)的信息。此外,在單擊“首頁(yè)”、“上頁(yè)”、“下頁(yè)”超鏈接后,實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)。</p><p>  3.6.2 顯示圖書(shū)詳細(xì)信息頁(yè)面詳細(xì)功能及描述</p><p>  依據(jù)圖書(shū)記錄編號(hào)獲取待顯示詳細(xì)信息的圖書(shū)類型的對(duì)象</p><p>  分

59、別顯示該圖書(shū)對(duì)象的詳細(xì)信息</p><p>  顯示圖書(shū)封面圖片、名稱、詳細(xì)介紹、價(jià)格、銷售價(jià)格</p><p>  單擊“購(gòu)買”按鈕后,將提交放入購(gòu)物車的請(qǐng)求</p><p><b>  顯示圖書(shū)目錄</b></p><p>  本頁(yè)面是在控制器響應(yīng)了網(wǎng)上書(shū)店主頁(yè)提交的查看圖書(shū)詳細(xì)信息請(qǐng)求,即“bookDeatial.

60、do”請(qǐng)求后,跳轉(zhuǎn)到的頁(yè)面。在該頁(yè)面中將獲取到的指定圖書(shū)詳細(xì)信息顯示出來(lái),同時(shí)如果用戶單擊“購(gòu)買”按鈕,將提交“bookBuy.do?bookId=<%=book.getId()%>”請(qǐng)求,進(jìn)行后續(xù)放入購(gòu)物車的處理。</p><p>  3.6.3 顯示購(gòu)物車信息頁(yè)面詳細(xì)功能及描述</p><p>  獲取該用戶購(gòu)物車中信息的集合</p><p>  

61、提交更新購(gòu)物車請(qǐng)求的表單</p><p>  循環(huán)顯示購(gòu)物車中的每一條購(gòu)物記錄信息</p><p>  設(shè)置購(gòu)買數(shù)量的文本框</p><p><b>  顯示圖書(shū)銷售價(jià)格</b></p><p><b>  顯示圖書(shū)總價(jià)</b></p><p>  從購(gòu)物車中移除購(gòu)買記錄信息

62、</p><p><b>  更新訂單按鈕</b></p><p>  提交繼續(xù)購(gòu)書(shū)請(qǐng)求的超鏈接</p><p>  提交清空購(gòu)物車請(qǐng)求的超鏈接</p><p>  提交結(jié)算付款請(qǐng)求的超鏈接</p><p>  本頁(yè)面是在用戶選擇購(gòu)買某種圖書(shū)商品后,進(jìn)入的頁(yè)面。在該頁(yè)面中將顯示該用戶購(gòu)物車中現(xiàn)有的

63、所有購(gòu)買需求記錄。同時(shí)提供更新購(gòu)物車的操作界面,例如,可以輸入購(gòu)買數(shù)量或者選擇刪除購(gòu)買記錄。單擊“更新訂單”按鈕后,將提交“updateShopCart.do”請(qǐng)求,進(jìn)行更新購(gòu)物車信息的處理。此外,也可以單擊“繼續(xù)購(gòu)書(shū)”按鈕,提交“bookSearch.do”請(qǐng)求返回網(wǎng)上書(shū)店主頁(yè)面繼續(xù)購(gòu)書(shū),或者單擊“清空購(gòu)物車”按鈕提交“clearShopCart.do”請(qǐng)求。同時(shí),如果用戶確認(rèn)去收銀臺(tái),則可以單擊“結(jié)算付款”按鈕跳轉(zhuǎn)到“userLog

64、in.jsp”頁(yè)面進(jìn)行用戶登錄。</p><p>  3.6.4 網(wǎng)上書(shū)店客戶登錄頁(yè)面詳細(xì)功能及描述</p><p>  提交用戶登錄請(qǐng)求,同時(shí)提交登錄用戶信息的表單</p><p>  提交登錄用戶用戶名及密碼的表單元素</p><p><b>  登錄按鈕</b></p><p>  提交新

65、用戶注冊(cè)請(qǐng)求的超鏈接</p><p>  本頁(yè)面是客戶在購(gòu)物車頁(yè)面單擊“結(jié)算付款”按鈕后跳轉(zhuǎn)過(guò)來(lái)的頁(yè)面,在該頁(yè)面中,用戶在表單中輸入用戶名及密碼,單擊“用戶登錄”按鈕后,將提交“l(fā)ogin.do”請(qǐng)求,以便于進(jìn)行后續(xù)獲取用戶相關(guān)信息的處理,對(duì)于沒(méi)有用戶身份的新客戶,可以在本頁(yè)面中單擊“新用戶注冊(cè)”按鈕,跳轉(zhuǎn)到“userRegister.jsp”頁(yè)面進(jìn)行用戶注冊(cè)。</p><p>  3.6

66、.5 網(wǎng)上書(shū)店客戶注冊(cè)頁(yè)面詳細(xì)功能及描述</p><p>  提交新用戶注冊(cè)請(qǐng)求,同時(shí)提交新用戶注冊(cè)信息的表單</p><p>  提交注冊(cè)用戶姓名、地址、電子郵件地址、電話、用戶名、密碼以及確認(rèn)密碼的表單元素</p><p><b>  注冊(cè)按鈕</b></p><p>  在本頁(yè)面中注冊(cè)用戶可以在表單中輸入對(duì)應(yīng)的注

67、冊(cè)信息,在單擊“注冊(cè)”按鈕后,將提交“regist.do”請(qǐng)求,同時(shí)提交新用戶的相關(guān)注冊(cè)信息,以便于進(jìn)行后續(xù)新用戶注冊(cè)的處理。</p><p>  3.6.6 選擇送貨方式及付款方式頁(yè)面詳細(xì)功能及描述</p><p><b>  獲取客戶信息</b></p><p>  提交選擇送貨方式及付款方式的表單</p><p>

68、;  顯示客戶信息、姓名、地址、電話、送貨方式、付款方式</p><p>  本頁(yè)面是在用戶登錄通過(guò)后,跳轉(zhuǎn)到的頁(yè)面,在該頁(yè)面中首先獲取對(duì)應(yīng)用戶的客戶資料,同時(shí)提供送貨方式以及付款方式的選擇,在用戶單擊“確認(rèn)”按鈕后,將提交請(qǐng)求,生成完整的訂單信息。</p><p>  3.6.7 確認(rèn)訂單信息頁(yè)面詳細(xì)功能及描述</p><p><b>  獲取購(gòu)物車信

69、息集合</b></p><p>  獲取訂單信息、客戶信息</p><p>  顯示客戶姓名、地址、電話</p><p><b>  顯示購(gòu)物車中的信息</b></p><p>  顯示所購(gòu)圖書(shū)書(shū)名、數(shù)量、總價(jià)</p><p><b>  顯示整張訂單總價(jià)</b>

70、</p><p>  顯示訂單信息中的送貨方式信息</p><p><b>  顯示付款方式信息</b></p><p><b>  顯示訂單編號(hào)</b></p><p><b>  提交繼續(xù)購(gòu)書(shū)的請(qǐng)求</b></p><p>  提交查看該用戶所有訂單

71、的請(qǐng)求</p><p>  本頁(yè)面中將全面顯示該客戶本次購(gòu)物生成的詳細(xì)訂單信息,同時(shí)如果單擊“繼續(xù)購(gòu)書(shū)”按鈕將提交“bookSearch.do”請(qǐng)求返回網(wǎng)上書(shū)店主頁(yè)面,如果單擊“查看訂單”按鈕將提交“orderHistory.do”,跳轉(zhuǎn)到“orderHistory.jsp”頁(yè)面。</p><p>  3.6.8 顯示客戶所有訂單信息頁(yè)面詳細(xì)功能及描述</p><p&

72、gt;  獲取該用戶所有歷史訂單信息</p><p>  顯示訂單信息信息列表</p><p>  顯示訂單編號(hào)、時(shí)間、總價(jià)</p><p>  提交取消訂單請(qǐng)求的超鏈接</p><p>  提交返回購(gòu)書(shū)請(qǐng)求的超鏈接</p><p>  本頁(yè)面將顯示與當(dāng)前用戶相關(guān)的所有訂單信息。同時(shí)用戶可以單擊“取消此單”超鏈接提交“

73、delOrder.do?orderId=<%=order.getId()%>”請(qǐng)求刪除該訂單信息,此外也可以單擊“返回購(gòu)書(shū)”按鈕提交“bookSearch.do”請(qǐng)求跳轉(zhuǎn)到網(wǎng)上書(shū)店主頁(yè)面。</p><p>  3.7 業(yè)務(wù)邏輯層各bean功能</p><p>  在本系統(tǒng)的業(yè)務(wù)邏輯層中分別完成了對(duì)圖書(shū)信息、圖書(shū)分類信息、購(gòu)物車信息、訂單信息以及客戶信息等類型對(duì)象的保存和處理。

74、</p><p>  封裝了數(shù)據(jù)庫(kù)相關(guān)操作的bean(DB.java)</p><p>  采用了Struts架構(gòu)下提供的數(shù)據(jù)庫(kù)連接池建立與數(shù)據(jù)庫(kù)的連接,在該bean中通過(guò)構(gòu)造方法建立與數(shù)據(jù)庫(kù)的連接,并提供了相應(yīng)的方法完成數(shù)據(jù)庫(kù)中的查詢、更新等操作,同時(shí)也提供了關(guān)閉數(shù)據(jù)庫(kù)連接的方法,以便于及時(shí)釋放資源。</p><p>  封裝了圖書(shū)住處處理的bean(Book.j

75、ava)</p><p>  除聲明了與圖書(shū)基本數(shù)據(jù)相關(guān)的基本屬性和方法之外,還提供了圖書(shū)信息的查詢顯示處理相關(guān)的幾個(gè)方法。其中在調(diào)用查詢滿足條件的圖書(shū)信息方法時(shí),需要提供查詢的依據(jù),例如,分類、按作者還是按書(shū)名,對(duì)應(yīng)關(guān)鍵字等。</p><p>  封裝了圖書(shū)分類信息處理的bean(BookCat.java)</p><p>  除了聲明了與圖書(shū)分類數(shù)據(jù)相關(guān)的基本屬

76、性和方法之外,還提供了與圖書(shū)分類信息查詢及顯示處理相關(guān)的幾個(gè)方法。</p><p>  封裝了圖書(shū)查詢及顯示條件的bean(SearchStatus.java)</p><p>  主要封裝了設(shè)置圖書(shū)搜索查詢條件相關(guān)的屬性和方法,該程序中的方法將在搜索圖書(shū)信息的程序中被調(diào)用。</p><p>  封裝了購(gòu)物車信息處理的bean(ShopCart.java)</

77、p><p>  為了能夠簡(jiǎn)化類的定義,考慮到購(gòu)物車中所需要處理的圖書(shū)基本信息與圖書(shū)類型對(duì)象中封裝的信息相同,只是需要再補(bǔ)充上購(gòu)買數(shù)量即可,因此在定義該類時(shí)繼承了圖書(shū)信息類。</p><p>  封裝了訂單住處處理的bean(Order. java)</p><p>  除聲明了與訂單中所需要處理的數(shù)據(jù)相關(guān)的基本屬性和方法之外,還提供了與訂單查詢、插入及刪除處理相關(guān)的幾個(gè)

78、方法。此外,也提供了計(jì)算該訂單所涉及總金額的方法。</p><p>  封裝了客記信息處理的bean(User.java)</p><p>  除聲明了與用戶數(shù)據(jù)相關(guān)的基本屬性和方法之外,還提供了與確認(rèn)用戶身份、獲取用戶相關(guān)信息、插入新用戶信息處理相關(guān)的幾個(gè)方法。</p><p>  3.8 控制處理層</p><p>  下表是網(wǎng)上書(shū)店系

79、統(tǒng)中的Action映射表。該映射決定了 Action與其他Web組件之間的關(guān)聯(lián)關(guān)系。作為前后臺(tái)之間橋梁,本表中指明了每個(gè)Action的入口(即調(diào)用Action的組件)及出口(即請(qǐng)求轉(zhuǎn)發(fā)的目標(biāo)組件),以及傳遞Action的ActionForm。</p><p>  表3-2 Action映射表:</p><p>  BookSearchAction.java</p>

80、<p>  該程序負(fù)責(zé)處理查詢顯示滿足條件圖書(shū)書(shū)目信息時(shí)提交的“bookSearch.do”請(qǐng)求。</p><p>  PageCtrlAction.java</p><p>  該程序負(fù)責(zé)處理分頁(yè)顯示圖書(shū)書(shū)目信息時(shí)進(jìn)行頁(yè)面跳轉(zhuǎn)時(shí)提交的“bookPage.do”請(qǐng)求。</p><p>  BookDetailAction.Java</p>

81、<p>  該程序負(fù)責(zé)處理顯示指定圖書(shū)編號(hào)的對(duì)應(yīng)圖書(shū)詳細(xì)信息時(shí)提交的“bookDetail.do”請(qǐng)求。</p><p>  BookBuyAction.java</p><p>  該程序負(fù)責(zé)處理購(gòu)買圖書(shū)時(shí)提交的“bookBuy.do”請(qǐng)求。</p><p>  UpdateShopCartAction.java</p><p>

82、;  該程序負(fù)責(zé)處理修改購(gòu)物數(shù)量,或者刪除購(gòu)物記錄時(shí)提交的“updateShopCart.do”請(qǐng)求。</p><p>  ClearShopCartAction.java</p><p>  該程序負(fù)責(zé)處理從購(gòu)物車頁(yè)面提交的清空購(gòu)物車時(shí)的“clearShopCart.do”請(qǐng)求。</p><p>  LoginAction.java</p><

83、p>  該程序負(fù)責(zé)處理從用戶登錄頁(yè)面提交的“l(fā)ogin.do”請(qǐng)求。</p><p>  RegistAction.java</p><p>  該程序負(fù)責(zé)處理從新用戶注冊(cè)頁(yè)面提交的“regist.do”請(qǐng)求。</p><p>  AddrConfirmAction.java</p><p>  該程序負(fù)責(zé)處理從訂單處理頁(yè)面提交的選擇送

84、貨方式及付款方式的“addrConfirm.do”請(qǐng)求。</p><p>  OrderHistoryAction.java</p><p>  該程序負(fù)責(zé)處理從確認(rèn)訂單頁(yè)面提交查看所有訂單信息的“orderHistory.do”請(qǐng)求。</p><p>  OrderDelAction.java</p><p>  該程序負(fù)責(zé)處理從訂單信息顯

85、示頁(yè)面選擇“取消訂單”時(shí)提交“delOrder.do”請(qǐng)求。</p><p>  4 主要源代碼介紹</p><p>  4.1 創(chuàng)建數(shù)據(jù)表的腳本</p><p>  //圖書(shū)分類基本信息表</p><p>  DROP TABLE bookcat CASCADE CONSTRAINTS;</p><p>  CR

86、EATE TABLE bookcat(</p><p>  idNUMBER PRIMARY KEY,</p><p>  catnameVARCHAR2 (40) NOT NULL</p><p><b>  );</b></p><p><b>  //圖書(shū)基本信息表</b&g

87、t;</p><p>  DROP TABLE book CASCADE CONSTRAINTS;</p><p>  CREATE TABLE book(</p><p>  idNUMBER PRIMARY KEY,</p><p>  catidNUMBER NOT NULL</p>&l

88、t;p>  REFERENCES bookcat(id) ON DELETE CASCADE,</p><p>  nameVARCHAR2 (50) NOT NULL,</p><p>  priceNUMBER NOT NULL,</p><p>  salepriceNUMBER NOT NULL,</p&

89、gt;<p>  descriptVARCHAR2 (500) NOT NULL,</p><p>  authorVARCHAR2 (50) NOT NULL,</p><p>  contentsVARCHAR2 (2000) NULL,</p><p>  imageVARCHAR2 (50) NULL</p>

90、<p><b>  );</b></p><p><b>  //客戶基本信息表</b></p><p>  DROP TABLE storeuser CASCADE CONSTRAINTS;</p><p>  CREATE TABLE storeuser(</p><p>  us

91、ernameVARCHAR2 (20) PRIMARY KEY,</p><p>  passwordVARCHAR2 (20) NOT NULL,</p><p>  nameVARCHAR2 (20) NOT NULL,</p><p>  telVARCHAR2 (20) NOT NULL,</p><p>  a

92、ddressVARCHAR2 (100) NOT NULL,</p><p>  emailVARCHAR2 (50) NULL</p><p><b>  );</b></p><p><b>  //訂單信息表</b></p><p>  DROP TABLE orders CAS

93、CADE CONSTRAINTS;</p><p>  CREATE TABLE orders(</p><p>  idNUMBER PRIMARY KEY,</p><p>  usernameVARCHAR2 (20) NOT NULL</p><p>  REFERENCES storeuser(usernam

94、e) ON DELETE CASCADE,</p><p>  timeDATE NOT NULL,</p><p>  deliveryVARCHAR2 (20) NOT NULL,</p><p>  paymentVARCHAR2 (20) NOT NULL </p><p><b>  );&l

95、t;/b></p><p>  4.2 購(gòu)物車模塊</p><p><b>  //購(gòu)物車主要代碼</b></p><p>  public class Cart</p><p><b>  {</b></p><p>  private String name;/

96、/用戶的標(biāo)識(shí)</p><p>  private HashMap items;//購(gòu)物車中的物品</p><p>  private int orderID;</p><p>  private float totalPrice;</p><p>  private Connection con;</p><p

97、>  int ordersId=0;</p><p>  static CallableStatement cs=null;</p><p>  static Statement st=null;</p><p>  static ResultSet rs=null;</p><p>  public int getOrderID()&

98、lt;/p><p><b>  {</b></p><p>  return orderID;</p><p><b>  }</b></p><p>  public float getTotalPrice()</p><p><b>  {</b>&l

99、t;/p><p>  return totalPrice;</p><p><b>  }</b></p><p>  public Cart()</p><p><b>  {</b></p><p><b>  try</b></p>&l

100、t;p><b>  {</b></p><p>  con = DBConnection.getConnection();</p><p><b>  }</b></p><p>  catch (Exception e)</p><p><b>  {</b></

101、p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  items = new HashMap();</p><p><b>  }</b></p><p>  public void addItem(String i

102、temId,int quantity)</p><p><b>  {</b></p><p>  items.put(itemId,new Integer(quantity));</p><p><b>  }</b></p><p>  public void removeItem(String

103、 itemId)</p><p><b>  {</b></p><p>  items.remove(itemId);</p><p><b>  }</b></p><p>  public void updateItem(String itemId,int quantity)</p>

104、;<p><b>  {</b></p><p>  if(items.containsKey(itemId))items.remove(itemId);</p><p>  items.put(itemId,new Integer(quantity));</p><p><b>  }</b></p&

105、gt;<p>  public HashMap getItems()</p><p><b>  {</b></p><p>  return this.items;</p><p><b>  }</b></p><p>  public void setName(String na

106、me)</p><p><b>  {</b></p><p>  this.name=name;</p><p><b>  }</b></p><p>  public String getName()</p><p><b>  {</b><

107、/p><p>  return this.name;</p><p><b>  }</b></p><p>  public void clear()</p><p><b>  {</b></p><p>  items.clear();</p><p&g

108、t;<b>  }</b></p><p>  /*public void saveData()</p><p><b>  {</b></p><p>  totalPrice=calPrice();</p><p>  orderID=genOrder(s1,s2,s3,s4);</p&g

109、t;<p>  saveItems();</p><p><b>  }*/</b></p><p>  public int genOrder(String s1,String s2)//生成訂單并返回訂單號(hào)</p><p><b>  {</b></p><p>  String

110、s3=new java.util.Date().toLocaleString();</p><p><b>  try</b></p><p><b>  {</b></p><p>  cs=con.prepareCall("{call Pro_orders(?,?,?,?)}");</p>

111、;<p>  cs.setString(1,s1);</p><p>  cs.setString(2,s2);</p><p>  cs.setString(3,s3);</p><p>  cs.registerOutParameter(4,java.sql.Types.INTEGER);</p><p>  cs.exec

112、ute();</p><p>  ordersId=cs.getInt(4);</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace()

113、;</p><p><b>  }</b></p><p>  return ordersId;</p><p><b>  }</b></p><p>  /*public float calPrice()//計(jì)算當(dāng)前購(gòu)物車內(nèi)物品的總價(jià)格</p><p><b>

114、  {</b></p><p>  總價(jià)格在Cart.jsp中計(jì)算</p><p><b>  }*/</b></p><p>  public float calPrice(float totalPrice)//計(jì)算當(dāng)前購(gòu)物車內(nèi)物品的總價(jià)格</p><p><b>  {</b><

115、;/p><p>  return this.totalPrice=totalPrice;</p><p><b>  }</b></p><p>  public void addOrder(String orderName,String totalPrice)</p><p><b>  {</b>&

116、lt;/p><p><b>  try</b></p><p><b>  {</b></p><p>  String dateTime=new java.util.Date().toLocaleString();</p><p>  PreparedStatement pst = con.prepa

117、reStatement("insert into orders values(?,?,?)");</p><p>  pst.setString(1,orderName);</p><p>  pst.setString(2,totalPrice);</p><p>  pst.setString(3,dateTime);</p>

118、<p>  int i= pst.executeUpdate();</p><p>  pst.close();</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>

119、;  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void saveItems(int i1,String s3,String s4,int i2)//存儲(chǔ)當(dāng)前訂單物品明細(xì)</p><p>

120、;<b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  /*System.out.println("*****"+i1+" "+i2+" "+s3+"

121、 "+s4);</p><p>  String sql="insert into orderDetails values("+i1+",'"+s3+"','"+s4+"',"+i2+")";</p><p>  System.out.println

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論