畢業(yè)設(shè)計(jì)基于web的大學(xué)跳蚤市場的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  湖 南 農(nóng) 業(yè) 大 學(xué)</p><p>  全日制普通本科生畢業(yè)設(shè)計(jì)</p><p>  基于WEB的大學(xué)跳蚤市場的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  DESIGN AND IMPLEMENTATION OF UNIVERSITIES’ FLEA MARKET BASED ON WEB</p><p><b>  

2、學(xué)生姓名:</b></p><p>  學(xué) 號:200641802123</p><p>  年級專業(yè)及班級:2006級信息工程(1)班</p><p>  指導(dǎo)老師及職稱: 講師</p><p>  學(xué) 院:信息科學(xué)技術(shù)學(xué)院</p><p><b>  湖南·長

3、沙</b></p><p>  提交日期:2010年6月</p><p><b>  目 錄</b></p><p><b>  摘 要:1</b></p><p><b>  關(guān) 鍵 詞:1</b></p><p><b&g

4、t;  1 前言2</b></p><p>  1.1 研究背景及意義2</p><p>  1.2 國內(nèi)外研究現(xiàn)狀2</p><p>  1.3 可行性分析3</p><p>  1.3.1 經(jīng)濟(jì)可行性3</p><p>  1.4 本設(shè)計(jì)所用技術(shù)的簡介3</p>&

5、lt;p>  1.4.1 MVC設(shè)計(jì)模式概述3</p><p>  1.4.2 常見web開發(fā)語言mvc框架6</p><p>  1.4.3 本設(shè)計(jì)實(shí)現(xiàn)mvc的技術(shù)6</p><p>  2 系統(tǒng)需求分析6</p><p>  2.1 需求調(diào)研6</p><p>  2.2 業(yè)務(wù)流程分析

6、7</p><p>  2.3 系統(tǒng)數(shù)據(jù)流圖7</p><p>  2.4 系統(tǒng)功能需求分析8</p><p>  2.4.1 功能劃分8</p><p>  2.4.2 功能描述9</p><p>  3 系統(tǒng)設(shè)計(jì)10</p><p>  3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)10&

7、lt;/p><p>  3.2 數(shù)據(jù)庫表的設(shè)計(jì)10</p><p>  3.3 系統(tǒng)開發(fā)與運(yùn)行環(huán)境確定12</p><p>  3.3.1 系統(tǒng)開發(fā)環(huán)境12</p><p>  3.3.2 系統(tǒng)運(yùn)行環(huán)境12</p><p>  3.4 系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù)13</p><p>

8、  3.4.1 jsp與tomcat技術(shù)13</p><p>  3.4.2 JDBC簡介13</p><p>  4 詳細(xì)設(shè)計(jì)14</p><p>  4.1 系統(tǒng)登錄模塊模塊簡介14</p><p>  4.2 模塊體系結(jié)構(gòu)15</p><p>  4.3 運(yùn)行圖15</p>

9、<p>  4.4 設(shè)計(jì)說明16</p><p>  4.4.1 新用戶注冊子模塊17</p><p>  4.4.2 用戶登錄子模塊18</p><p>  4.4.3 商品發(fā)布模塊19</p><p>  4.4.4 商品搜索模塊20</p><p>  4.4.5 查看商品詳細(xì)信息

10、模塊22</p><p>  4.4.6 管理員管理模塊24</p><p><b>  5 測試29</b></p><p><b>  6 總結(jié)29</b></p><p><b>  參考文獻(xiàn)29</b></p><p><b

11、>  致 謝31</b></p><p>  基于web的大學(xué)跳蚤市場的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  學(xué) 生:</b></p><p>  指導(dǎo)老師: </p><p>  (湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,長沙 410128)</p><p> 

12、 摘 要:隨著Internet的使用越來越廣泛,網(wǎng)絡(luò)跳蚤市場已成為很多大學(xué)生進(jìn)行物品交易的一個平臺。它為供需雙方提供了極為便利的二手物品信息交流,特別是對于廣大青年學(xué)生,這種經(jīng)濟(jì)型消費(fèi)模式更是受到推崇。本設(shè)計(jì)遵循了模塊化設(shè)計(jì)的原則,將一個完整的大學(xué)生購物網(wǎng)站分解為各個模塊,然后逐一實(shí)現(xiàn)各個模塊的功能,最后把各個模塊組裝到一起構(gòu)成了一個完整的二手購物網(wǎng)站。本系統(tǒng)采用MVC的設(shè)計(jì)模式進(jìn)行設(shè)計(jì),用jsp+servlet+JavaBean的開

13、發(fā)方式來實(shí)現(xiàn)此模式, 以MyEclipse作為主要的開發(fā)工具,很好的實(shí)現(xiàn)了一個購物網(wǎng)站基本的功能,很好地體現(xiàn)了MVC設(shè)計(jì)模式的思想。</p><p>  關(guān) 鍵 詞:購物網(wǎng)站;MVC;MyEclipse</p><p>  DESIGN AND IMPLEMENTATION OF UNIVERSITIES’ FLEA MARKET BASED ON WEB</p><p

14、> ?。–ollege of Information Science and Technology, Hunan Agricultural University, Changsha 410128,China)</p><p>  Abstract: As the Internet used more widely,the network flea market has become a platform o

15、f trading goods for many college student. It provides a very convenient platform for both supply and demand to exchange of information, especially for the young students, this economic model is admired.This design follow

16、s the principles of modular design. The shopping site break down into various modules and then one by one to achieve the functions of each module, and finally to assemble the modules togethe</p><p>  Keyword

17、s:shopping site;MVC;MyEclipse</p><p><b>  1 前言</b></p><p>  1.1 研究背景及意義</p><p>  隨著Internet的使用越來越廣泛,網(wǎng)絡(luò)跳蚤市場已成為很多大學(xué)生進(jìn)行交易的一個平臺。它為供需雙方提供了極為便利的二手物品信息交流,特別是對于廣大青年學(xué)生,這種經(jīng)濟(jì)型消費(fèi)模

18、式更是受到推崇。</p><p>  隨著大學(xué)生的畢業(yè),他們手中有很多有價值的東西,但對于他們來說已經(jīng)失去了利用價值,但直接丟掉有很可惜,所以又很大一部分人將之出售,以得到資金;而一些在校大學(xué)生有相當(dāng)一部分人,經(jīng)濟(jì)能力相對較差,但他們也要購買一些物品,所以二手貨就成了他們的首選。所以二手商品交易對出售者和購買者都有積極的意義。</p><p>  隨著網(wǎng)路的發(fā)展,上網(wǎng)的人越來越多,上網(wǎng)的條

19、件也越來越方便,學(xué)生就是一個上網(wǎng)的主要群體。網(wǎng)絡(luò)作為信息交換的媒介,越來越多的人已經(jīng)能夠接受并且習(xí)慣從網(wǎng)上搜索信息,因?yàn)榫W(wǎng)絡(luò)有其足不出戶,卻可以方便的得知大量信息的優(yōu)點(diǎn)。在現(xiàn)在這個推崇時間和效益的社會里,它的優(yōu)點(diǎn)越來越得到體現(xiàn),坐在電腦前點(diǎn)擊鼠標(biāo)、敲擊鍵盤,就能獲得自己所想要的信息資源。所以在網(wǎng)絡(luò)上進(jìn)行二手交易是提高信息資源利用率和交易效率的有力途徑。基于這個目的而做的二手商品交易網(wǎng)站,就是給網(wǎng)絡(luò)上的二手商品交易提供一個載體,使之有規(guī)則

20、、有條理地集中在一起,方便交易雙方的信息發(fā)布和信息查看。所以二手商品交易網(wǎng)站對網(wǎng)絡(luò)二手交易有積極的影響。</p><p>  網(wǎng)站的設(shè)計(jì)和規(guī)劃現(xiàn)在國內(nèi)外已經(jīng)作為進(jìn)行宣傳和交易的主流方式。發(fā)展情況一日千里。而且不同的網(wǎng)站有各自不同的特色和功能。尤其在頁面設(shè)置上正在簡單化、條理化,實(shí)現(xiàn)的功能不斷增加。</p><p>  隨著網(wǎng)絡(luò)的普及和電子銀行服務(wù)的完善。使人們不用出門就能以低廉的價格買到需

21、要的物品。給現(xiàn)代忙碌的人節(jié)省時間和金錢。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶可以在成千上萬的商品中通過收索功能輕松的找到自己想要的商品,并且能貨比三家。開發(fā)此系統(tǒng)的目的和意義就在于花費(fèi)很少的時間和金錢就能買到需要的,質(zhì)量好的商品。</p><p>  1.2 國內(nèi)外研究現(xiàn)狀</p><p>  近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并進(jìn)入傳統(tǒng)的流通領(lǐng)域.于是電

22、子商務(wù)開始流行起來,一種全新的購物理念開始形成并逐步發(fā)展.網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng).它向用戶提供靜態(tài)和動態(tài)兩類信息資源.</p><p>  自2003年上半年以來,沉寂了多年的中國互聯(lián)網(wǎng)產(chǎn)業(yè)正以強(qiáng)勁的勢頭復(fù)蘇并發(fā)展起來,除了傳統(tǒng)的瀏覽,資料搜索,電子郵件等基本應(yīng)用外,國內(nèi)網(wǎng)民已經(jīng)開始習(xí)慣通過網(wǎng)絡(luò)接受商務(wù),旅游,購物,通訊,娛樂等服務(wù),根據(jù)中國互聯(lián)網(wǎng)信息中心最近提供的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報告

23、》調(diào)查顯示,網(wǎng)上購物已經(jīng)由以前的嘗試性購買向日常的生活習(xí)慣發(fā)展,其中以書籍,計(jì)算機(jī)產(chǎn)品,音像制品及器材等為網(wǎng)上購物的主要對象,服裝,體育用品,生活家居用品等消費(fèi)額也開始大幅度提高。</p><p>  1.3 可行性分析</p><p>  本系統(tǒng)主要從經(jīng)濟(jì)可行性和技術(shù)可行性兩個角度對其可行性進(jìn)行分析:</p><p>  1.3.1 經(jīng)濟(jì)可行性</p&g

24、t;<p>  由于本設(shè)計(jì)是針對當(dāng)前在校大學(xué)生這種消費(fèi)群體的,當(dāng)前大學(xué)生經(jīng)濟(jì)能力有限,而又對時尚、前沿的東西感興趣,而這些東西更新?lián)Q代的速度很快,而大學(xué)生的消費(fèi)觀念還不很成熟,這樣就有可能造成買到的東西過一段時間之后就失去了興趣,而這自己不用了的東西如果可以出售給需要的人,這就是一種節(jié)約型的消費(fèi)觀念。</p><p>  本設(shè)計(jì)無需再經(jīng)濟(jì)上購買居額設(shè)備就可實(shí)現(xiàn),所以在經(jīng)濟(jì)上是可行的。</p&g

25、t;<p>  1.3.2 技術(shù)可行性</p><p>  本系統(tǒng)使用jsp作為開發(fā)技術(shù),使用目前大多數(shù)web應(yīng)用程序開發(fā)的mvc的設(shè)計(jì)模式,而選用Apache tomcat作為服務(wù)器和選用mysql數(shù)據(jù)庫,這都是當(dāng)前首選的開發(fā)web應(yīng)用程序的最常用的環(huán)境。所以在技術(shù)上是完全可以勝任這個大學(xué)生跳蚤購物網(wǎng)站的。</p><p>  按上述兩方面進(jìn)行可行性分析、研究后,我們認(rèn)為該

26、項(xiàng)目在技術(shù)上是可行的,</p><p>  經(jīng)濟(jì)上是可合理的,可以進(jìn)行開發(fā)。</p><p>  1.4 本設(shè)計(jì)所用技術(shù)的簡介</p><p>  1.4.1 MVC設(shè)計(jì)模式概述</p><p>  傳統(tǒng)web設(shè)計(jì)模式與mvc設(shè)計(jì)模式的比較[1]</p><p>  傳統(tǒng)web開發(fā)模式基本上分為視圖,業(yè)務(wù)邏輯2層,

27、是水平方向的劃分。</p><p>  MVC模式是物理性的劃分為3層,是垂直方向的劃分。</p><p>  圖1 傳統(tǒng)web開發(fā)模式 圖2 MVC開發(fā)模式</p><p>  Fig1 The traditional web development model Fig1 MVC develop

28、ment model</p><p>  MVC架構(gòu)是"Model-View-Controller"的縮寫,中文翻譯為"模型-視圖-控制器"。MVC應(yīng)用程序總是由這三個部分組成。Event(事件)導(dǎo)致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Contr

29、oller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己。MVC架構(gòu)最早是smalltalk語言研究團(tuán)提出的,應(yīng)用于用戶交互應(yīng)用程序中[2]。</p><p>  圖3 MVC組件類型的關(guān)系和功能</p><p>  Fig3 The relations and functions of MVC components’type</p><p>  

30、MVC結(jié)構(gòu)提供了一種按功能對各種對象進(jìn)行分割的方法,其目的是為了將各對象間的耦合程度減至最小。MVC結(jié)構(gòu)本來是為了將傳統(tǒng)的輸入(input)、處理(processing)、輸出(output)任務(wù)運(yùn)用到圖形化用戶交互模型中而設(shè)計(jì)的。但是,將這些概念運(yùn)用于基于Web的企業(yè)級多層應(yīng)用領(lǐng)域也是很適合的。</p><p>  在MVC結(jié)構(gòu)中,模型(Model)代表應(yīng)用程序的數(shù)據(jù)(data)和用于控制訪問和修改這些數(shù)據(jù)的業(yè)

31、務(wù)邏輯(business rule)。</p><p>  當(dāng)模型發(fā)生改變時,它會通知視圖(View),并且為視圖提供查詢模型相關(guān)狀態(tài)的能力。同時,它也為控制器(Controller)提供訪問封裝在模型內(nèi)部的應(yīng)用程序功能的能力。 </p><p>  一個視圖(View)用來組織模型的內(nèi)容。它從模型那里獲得數(shù)據(jù)并指定這些數(shù)據(jù)如何表現(xiàn)。當(dāng)模型變化時,視負(fù)責(zé)維持?jǐn)?shù)據(jù)表現(xiàn)的一致性。視圖同時將

32、用戶要求告知控制器(Controller)。 </p><p>  控制器(Controller)定義了應(yīng)用程序的行為;它負(fù)責(zé)對來自視圖的用戶要求進(jìn)行解釋,并把這些要求映射成相應(yīng)的行為,這些行為由模型負(fù)責(zé)實(shí)現(xiàn)。在獨(dú)立運(yùn)行的GUI客戶端,用戶要求可能是一些鼠標(biāo)單擊或是菜單選擇操作。在一個Web應(yīng)用程序中,它們的表現(xiàn)形式可能是一些來自客戶端的GET或POST的HTTP請求。模型所實(shí)現(xiàn)的行為包括處理業(yè)務(wù)和修改模型的

33、狀態(tài)。根據(jù)用戶要求和模型行為的結(jié)果,控制器選擇一個視作為對用戶請求的應(yīng)答。通常一組相關(guān)功能集對應(yīng)一個控制器。</p><p><b>  視圖</b></p><p>  視圖(View)代表用戶交互界面,對于Web應(yīng)用來說,可以概括為HTML界面,但有可能為XML、WML和Excel。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖

34、,MVC設(shè)計(jì)模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)邏輯的處理。業(yè)務(wù)邏輯的處理由模型(Model)完成。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。</p><p><b>  控制器</b></p><p>  控制器(Controller)可以理解為從用戶接收請求

35、, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數(shù)據(jù)處理。例如,用戶點(diǎn)擊一個連接,控制層接受請求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖可能對應(yīng)多個模型。</p><p><

36、;b>  模型</b></p><p>  模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及數(shù)據(jù)模型的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。模型的設(shè)計(jì)可以說是MVC最主要的核心。</p><p>  1.4.2 常見web開發(fā)語言mvc框架</p><p>  PHP:FleaPHP,Cak

37、ePHP ,Joomla </p><p>  JAVA:Struts ,Spring</p><p>  Python:Django ,Quixote </p><p>  Ruby:Ruby On Rails[3] </p><p>  1.4.3 本設(shè)計(jì)實(shí)現(xiàn)mvc的技術(shù)</p><p>  JSP作為視圖,只用

38、于顯示 </p><p>  Servlet作為控制器,所有的請求,跳轉(zhuǎn)都由servlet完成</p><p>  業(yè)務(wù)邏輯部分由javabean完成</p><p>  圖4 MVC 設(shè)計(jì)模式</p><p>  Fig4 MVC Design Pattern</p><p><b>  2 系統(tǒng)需求分

39、析</b></p><p>  根據(jù)上面所定義的課題研究方向及目標(biāo),本章將對系統(tǒng)功能進(jìn)行具體的需求分析,具體分析跳蚤購物網(wǎng)站所要實(shí)現(xiàn)的功能及欲達(dá)到的效果。</p><p><b>  2.1 需求調(diào)研</b></p><p>  首先從主流的購物網(wǎng)站上面如淘寶網(wǎng)、當(dāng)當(dāng)網(wǎng)去看他們的版面設(shè)計(jì)及功能,同時也在校內(nèi)同學(xué)之間去調(diào)查同學(xué)們對跳

40、蚤網(wǎng)站的一些所要實(shí)現(xiàn)的功能和版面設(shè)計(jì)。同時也到網(wǎng)上去找一些做得比較適合我做的一些大學(xué)生購物網(wǎng)站來學(xué)習(xí),并且自己去注冊一個帳號,親自體會他們網(wǎng)站的強(qiáng)大功能然后記錄下來。</p><p>  2.2 業(yè)務(wù)流程分析</p><p>  本系統(tǒng)工作流程是:用戶用瀏覽器登錄到網(wǎng)站主頁,可以查看各個用戶所要出售的各種商品,同時可以查看商品的詳細(xì)信息包括發(fā)布商品的人的信息和商品數(shù)量和商品狀態(tài)。同時訪問

41、網(wǎng)站的人也可以搜索自己感興趣的商品。但是只有注冊了,才有可能去買商品。同時注冊者也可以通過管理員對自己賬戶充值,類似于支付寶功能。同時管理員可以查詢注冊用戶的詳細(xì)信息。</p><p><b>  具體目標(biāo)如下:</b></p><p> ?。?)操作簡單、界面友好:用戶可以發(fā)布、查詢商品的各種相關(guān)信息,同時可以根據(jù)商品的狀態(tài)來是否購買商品。</p>&

42、lt;p> ?。?)即時可見:登錄用戶可以隨時查看自己所購買的商品的數(shù)量、價格等方面的信息。</p><p>  2.3 系統(tǒng)數(shù)據(jù)流圖</p><p>  本系統(tǒng)主要完成跳蚤網(wǎng)站的瀏覽與管理的功能,因此,在邏輯上可以將系統(tǒng)分為網(wǎng)站瀏覽系統(tǒng)和網(wǎng)站管理系統(tǒng)兩部分,同時,系統(tǒng)的所有數(shù)據(jù)都需通過一個數(shù)據(jù)庫系統(tǒng)來實(shí)現(xiàn)查詢、更新和輸入,所以在總體上可將總系統(tǒng)分為網(wǎng)站瀏覽系統(tǒng)、網(wǎng)站管理系統(tǒng)和數(shù)據(jù)

43、庫系統(tǒng)三個系統(tǒng),對本系統(tǒng)操作的數(shù)據(jù)源有普通瀏覽者、注冊用戶和管理員三種[4]。</p><p>  圖5 系統(tǒng)數(shù)據(jù)流圖 </p><p>  Fig5 System data flow diagram </p><p>  圖6 用戶登錄數(shù)據(jù)流</p><p>  Fig6 The data flow diagram of use

44、r login</p><p>  2.4 系統(tǒng)功能需求分析</p><p>  2.4.1 功能劃分</p><p>  根據(jù)上一節(jié)的流程圖,把系統(tǒng)劃分成兩個大的模塊來完成:前臺模塊和后臺管理模塊。模塊劃分如表所示。</p><p><b>  表1 模塊及功能</b></p><p>  

45、Table1 Modules and function</p><p>  2.4.2 功能描述</p><p><b>  表2前臺功能列表</b></p><p>  Table2 The function list of front modules</p><p><b>  表3用戶管理模塊</

46、b></p><p>  Table3 The user management modules</p><p><b>  3 系統(tǒng)設(shè)計(jì)</b></p><p>  3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)主要包括三大模塊組成:網(wǎng)站訪問者模塊、用戶模塊、系統(tǒng)管理員模塊[5]。</p>

47、<p>  整個系統(tǒng)的結(jié)構(gòu)框架如下圖所示</p><p><b>  圖7 結(jié)構(gòu)框架</b></p><p>  Table7 Structural framework</p><p>  3.2 數(shù)據(jù)庫表的設(shè)計(jì)</p><p>  數(shù)據(jù)庫設(shè)計(jì)是項(xiàng)目開發(fā)中的系統(tǒng)設(shè)計(jì)中非常重要的另一個關(guān)鍵環(huán)節(jié),在這里之所以特別

48、強(qiáng)調(diào)數(shù)據(jù)庫設(shè)計(jì)的重要性,是因?yàn)閿?shù)據(jù)庫設(shè)計(jì)就像在建設(shè)高樓大廈的根基一樣,如果設(shè)計(jì)不好,在后來的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時,甚至在系統(tǒng)開發(fā)過程中,將會引起比較大的問題,會遇到非常大的困難,大量的工作將會重新進(jìn)行[6]。</p><p>  (1) 數(shù)據(jù)庫表及表之間的相互關(guān)系</p><p>  本系統(tǒng)需要設(shè)計(jì)的數(shù)據(jù)庫表如下</p><p><b>  表4數(shù)據(jù)

49、庫表</b></p><p>  Table4 Database table</p><p>  (2) 數(shù)據(jù)庫表結(jié)構(gòu)的詳細(xì)設(shè)計(jì)</p><p>  下面開始對上一節(jié)列出的數(shù)據(jù)表逐一做出詳細(xì)說明。</p><p>  表5 用戶基本信息表tb_member</p><p>  Table5 User bas

50、ic information table tb_member</p><p>  表6 管理員基本信息表tb_manager</p><p>  Table6 Administrator basic information table tb_member</p><p>  表7 商品信息表tb_goods</p><p>  Table7

51、Goods information table tb_goods</p><p>  表8 商品訂單表tb_order</p><p>  Table8 Goods order table tb_order</p><p>  3.3 系統(tǒng)開發(fā)與運(yùn)行環(huán)境確定</p><p>  3.3.1 系統(tǒng)開發(fā)環(huán)境</p><p&

52、gt;  開發(fā)工具對一個系統(tǒng)的成敗具有決定性作用。由于本系統(tǒng)是應(yīng)用于網(wǎng)絡(luò)的,因此,我們選擇了jsp技術(shù)進(jìn)行開發(fā),用MVC的設(shè)計(jì)模式,用jsp+servlet+JavaBean來實(shí)現(xiàn)MVC設(shè)計(jì)模式;同時,選用mysql作為系統(tǒng)后臺數(shù)據(jù)庫,開發(fā)中將用到以下主要幾款開發(fā)工具[7]:</p><p>  表9 開發(fā)工具及用途</p><p>  Table9 Tools and applicati

53、on</p><p>  3.3.2 系統(tǒng)運(yùn)行環(huán)境</p><p><b>  硬件環(huán)境:</b></p><p>  服務(wù)器端: 推薦配置為512M內(nèi)存,CPU為Intel Pentium Ⅳ 1700MHZ,硬盤容量為80G的微機(jī)[8]。</p><p>  通信網(wǎng)絡(luò): Internet網(wǎng)</p>&

54、lt;p><b>  軟件環(huán)境:</b></p><p><b>  服務(wù)器端:</b></p><p>  (1) 操作系統(tǒng): Windows 2000 Server /NT/2003 Server/XP</p><p>  (2) 數(shù)據(jù)庫: mysql5.1</p><p>  (

55、3) Web服務(wù)器:Apache tomcat5.5</p><p><b>  客戶端:</b></p><p>  (1) 操作系統(tǒng): Windows 2000/XP/2003/Vista/7</p><p>  (2) 瀏覽器: Internet Explore 6.0或以上版本</p><p>  (3)

56、 推薦分辨率:1024*768或以上</p><p>  3.4 系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù)</p><p>  3.4.1 jsp與tomcat技術(shù)</p><p><b>  Tomcat簡介</b></p><p>  Tomcat是Apache 軟件基金會(Apache Software Foundation)的

57、Jakarta 項(xiàng)目中的一個核心項(xiàng)目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是6.0。Tomcat 是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選[9]。</p><p>

58、;  Tomcat與JSP的結(jié)合</p><p>  在過去,客戶機(jī)/服務(wù)器結(jié)構(gòu)的設(shè)計(jì)與Web的相關(guān)技術(shù)幾乎處于平行線上,兩者相互獨(dú)立并無法作出集成性的設(shè)計(jì)。現(xiàn)在我們利用tomcat+JSP構(gòu)成三層式Web結(jié)構(gòu)的中間一層,將客戶機(jī)/服務(wù)器結(jié)構(gòu)與Web密切結(jié)合,完成前后端兩者的集成輸出功能,使得Web站點(diǎn)的開發(fā)更方便,實(shí)現(xiàn)的功能更強(qiáng)大。</p><p>  利用tomcat+JSP技術(shù)來集成

59、Web前后端所帶來的強(qiáng)大效益可歸結(jié)為以下幾個方面:</p><p><b>  減少構(gòu)建和維護(hù)成本</b></p><p><b>  加快聯(lián)機(jī)過程</b></p><p>  應(yīng)用軟件集中在服務(wù)器端開發(fā)管理</p><p>  前端可使用任何瀏覽器(IE、Netscape…..)</p>

60、;<p>  后端可存取任何數(shù)據(jù)庫 (SQL、Access、mysql、Oracle…..)</p><p>  可使用任何腳本語言開發(fā) (VBScript、JavaScript、PERL…..)</p><p>  3.4.2 JDBC簡介</p><p>  JDBC(Java DataBase Connectivity,Java數(shù)據(jù)庫連接):是

61、一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成[10]。</p><p>  (1) 支持基本的SQL語句,在 Java程序中實(shí)現(xiàn)數(shù)據(jù)庫操作功能并簡化操作過程。</p><p>  (2) 提供多樣化的數(shù)據(jù)庫連接方法。</p><p>  (3) 為各種不同的數(shù)據(jù)庫提供統(tǒng)一的操作界面。&

62、lt;/p><p>  用JDBC連接數(shù)據(jù)庫的步驟</p><p><b>  (1) 注冊驅(qū)動</b></p><p>  Class.forName(“com..mysql.jdbc.Driver”);(注冊mysql數(shù)據(jù)庫的驅(qū)動)</p><p><b>  (2) 建立連接</b></p&

63、gt;<p>  Connection conn=DriverManager.getConnection(url,user,password);</p><p>  (3) 創(chuàng)建執(zhí)行的sql語句</p><p>  Statement st=conn.createStatement();</p><p><b>  (4) 執(zhí)行語句</

64、b></p><p>  ResultSet rs=st.executeQuery(“sql語句”);</p><p><b>  (5) 處理結(jié)果</b></p><p><b>  (6) 釋放資源</b></p><p>  對于數(shù)據(jù)庫來說,每一次連接數(shù)據(jù)庫都要耗費(fèi)大量資源,所以當(dāng)我們用

65、完的時候要調(diào)用close方法及時釋放資源[11]。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)登錄模塊模塊簡介</p><p>  該模塊是本系統(tǒng)的重要模塊,當(dāng)瀏覽器訪問該購物網(wǎng)站的時候,用戶可以通過登錄模塊來登錄系統(tǒng)服務(wù)器,可以查看自己的購物記錄、發(fā)布商品信息和購買商品。如果登錄者沒有注冊用戶,那么

66、可以通過注冊一個用戶來進(jìn)行上面的操作。管理員需提交用戶名和密碼,之后進(jìn)入管理頁面。</p><p>  4.2 模塊體系結(jié)構(gòu)</p><p><b>  4.3 運(yùn)行圖</b></p><p><b>  4.4 設(shè)計(jì)說明</b></p><p>  在使用servlet時,要在用戶web應(yīng)用

67、程序/WEB-INF/web.xml中配置相關(guān)信息。</p><p><b>  <servlet></b></p><p>  <servlet-name>servlet名稱</servlet-name></p><p>  <servlet-class>servlet所生成的java類文件的存

68、儲地址</servlet-class></p><p>  </servlet></p><p>  <servlet-mapping></p><p>  <servlet-name> servlet名稱</servlet-name></p><p>  <url-patte

69、rn>訪問servlet的路徑</url-pattern></p><p>  </servlet-mapping></p><p>  4.4.1 新用戶注冊子模塊</p><p>  用戶注冊,首先要檢查的就是用戶填寫的信息,其中包括:</p><p>  電話號碼字段是否空白,若空白則不接受。</p

70、><p>  輸入的E-mail格式是否正確,有沒有@和”.”符號。</p><p>  兩次輸入的密碼是否一致。</p><p>  這個模塊的實(shí)現(xiàn)主要是在JavaScript中用document.form來獲取form中各個變量的值,然后去判斷各個值是否符合要求。同時在form中設(shè)置onsubmit屬性為真時,則注冊,否則注冊不成功[12]。</p>

71、<p>  <form name="form1" method="post" action="UserRegistryServlet"</p><p>  onsubmit="return checkValue();"></p><p>  在JavaScript中寫如下代碼:</p

72、><p>  function checkValue(){</p><p>  var password1=document.form1.pwd1.value.Trim();</p><p>  var password2=document.form1.pwd2.value.Trim();</p><p>  var email=document

73、.form1.email.value.Trim();</p><p>  if(document.form1.user.value.Trim()==""){</p><p>  alert("用戶名不能為空,請重新輸入");</p><p>  return false;</p><p>  }else

74、 if(document.form1.pwd1.value.Trim()==""){</p><p>  alert("密碼不能為空,請重新輸入");</p><p>  return false;</p><p>  }else if(document.form1.pwd2.value.Trim()==""

75、;){</p><p>  alert("確認(rèn)密碼不能為空,請重新輸入");</p><p>  return false;</p><p>  }else if(document.form1.tel.value.Trim()==""){</p><p>  alert("電話號碼不能為空,請

76、重新輸入");</p><p>  return false;</p><p>  }else if(email!=""&& (email.indexOf("@")==-1 || email.indexOf(".")==-1)){</p><p>  alert("郵箱格

77、式錯誤,請重新輸入");</p><p>  return false;</p><p>  }else if(password1==password2){</p><p>  return true;</p><p>  }else if(password1!=password2){</p><p>  a

78、lert("您兩次輸入的密碼不同,請重新輸入");</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  </script></b></p

79、><p>  同時在servlet中用request.getParameter(“name”)的值,然后通過JavaBean寫入到數(shù)據(jù)庫中。</p><p>  4.4.2 用戶登錄子模塊</p><p><b>  1、登錄頁面流程圖</b></p><p><b>  圖10 用戶登錄圖</b>&

80、lt;/p><p>  Fig10 The user login dialog</p><p>  2登錄頁面代碼程序的實(shí)現(xiàn)部分:</p><p>  用戶在前臺輸入并提交信息,每一個提交程序都會用到Form容器,在這個容器里含有兩個輸入對象,一個是用戶名,一個是用戶密碼,系統(tǒng)的驗(yàn)證主要依靠這兩個對象輸入框來完成。</p><p>  用戶在在前

81、臺輸入信息后,系統(tǒng)在后臺要進(jìn)行驗(yàn)證,以便用戶登陸,驗(yàn)證代碼見程序文件UserLoginServlet 和 UserLoginbean</p><p>  這個程序的主要功能就是接受用戶輸入的參數(shù),對用戶輸入的參數(shù)進(jìn)行判斷,判斷通過后向數(shù)據(jù)庫系統(tǒng)提交,返回?cái)?shù)據(jù)庫查詢結(jié)果,當(dāng)有相應(yīng)的合法數(shù)據(jù)后,系統(tǒng)將把此用戶的ID號和用戶名賦給系統(tǒng)Session變量,然后系統(tǒng)將直接到達(dá)用戶頁面[13]。</p><

82、;p>  4.4.3 商品發(fā)布模塊</p><p><b>  1、商品發(fā)布流程圖</b></p><p><b>  圖11 商品發(fā)布圖</b></p><p>  Fig11 The goods release map</p><p>  2、商品發(fā)布模塊的實(shí)現(xiàn)部分</p>

83、<p>  在提交相應(yīng)的商品信息之后,在servlet中去看session.getAttribute("username")是否為空,如果為空,證明用戶沒有登錄,則在JavaScript中填寫alert語句,彈出對話框,提示沒有登錄,然后返回到商品發(fā)布頁面;如果session.getAttribute("username")不為空,則把填寫的商品信息通過JavaBean寫入到數(shù)據(jù)庫表t

84、b_goods中,提示商品發(fā)布成功[16]。</p><p>  if((String)session.getAttribute("username")==null){</p><p><b>  try {</b></p><p>  this.forward(request, response, "/goods

85、release.jsp?message='forward'");</p><p><b>  return;</b></p><p>  } catch (ServletException e) {</p><p>  e.printStackTrace();</p><p>  } catch

86、 (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  goodsbean gb=new goodsbean();</p><p>

87、  gb.goodsInsert(userID,product_type_id,goods_name,goodshownew, price, method, exchangeaddress, number, introduce);</p><p><b>  try {</b></p><p>  PrintWriter out=response.getWriter(

88、);</p><p>  out.print("OK");</p><p>  out.print(goods_name);</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }

89、</b></p><p>  4.4.4 商品搜索模塊</p><p><b>  1、商品搜索流程圖</b></p><p><b>  圖12 商品搜索圖</b></p><p>  Fig12 The goods research map</p><p>

90、  2、商品搜索的代碼實(shí)現(xiàn)</p><p>  提交相應(yīng)的信息后,servlet首先從用戶選擇的商品類別producttype和商品名稱goodsname,然后通過JavaBean去查詢商品數(shù)據(jù)庫tb_goods,查詢時用sql語句的模糊查詢來進(jìn)行,同時將查詢結(jié)果顯示在goodssearchresult.jsp中[17]。</p><p>  在servlet中的代碼:</p>

91、<p>  if(action.equals("search")){</p><p>  Vector vector=new Vector(); //定義一個向量,用來存放返回的商品信息類</p><p>  String product_type_id=request.getParameter("producttype");//獲取商

92、品類別和商品名稱的信息</p><p>  String goodsname=request.getParameter("goodsname");</p><p>  goodssearchbean gsb=new goodssearchbean(); //調(diào)用相應(yīng)的JavaBean</p><p>  vector=(Vector)gsb.g

93、etGoodsMessag(product_type_id, //返回相應(yīng)的查詢結(jié)果goodsname);</p><p>  request.setAttribute("goodssearchresult", vector);</p><p>  this.forward(request, response,"/goodssearch

94、result.jsp"); //將查詢結(jié)果返回到goodssearchresult頁面</p><p><b>  }</b></p><p>  在JavaBean中的代碼:</p><p>  public Vector getGoodsMessage(String product_type_id,String goodsname

95、){</p><p>  實(shí)現(xiàn)sql語句的模糊查詢</p><p>  String sql1="select goods_name,price,state,goods_id from tb_goods where (product_type_id='"+product_type_id+’")and (goods_name like '%&qu

96、ot;+goodsname+"%')";</p><p>  String sql2="select goods_name,price,state,goods_id from tb_goods where goods_name like '%"+goodsname+"%'";</p><p>  Vecto

97、r vector=new Vector();</p><p>  if(product_type_id.equals("所有分類")){</p><p><b>  try {</b></p><p>  st=conn.createStatement();</p><p>  rs=st.execu

98、teQuery(sql2);</p><p>  while(rs.next()){</p><p>  goodsinfo gi=new goodsinfo();</p><p>  gi.setgoods_name(rs.getString(1));</p><p>  gi.setprice(rs.getString(2));</

99、p><p>  gi.setstate(rs.getString(3));</p><p>  gi.setgoods_id(rs.getString(4));</p><p>  vector.addElement(gi);</p><p><b>  gi=null;</b></p><p>&l

100、t;b>  }</b></p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }finally{</b></p><p>  this.close(rs, st, conn);</p>

101、<p><b>  }</b></p><p><b>  }</b></p><p>  return vector;</p><p><b>  }</b></p><p>  4.4.5 查看商品詳細(xì)信息模塊</p><p>  1、查

102、看商品詳細(xì)信息流程圖</p><p>  圖13 商品詳細(xì)信息圖</p><p>  Fig13 The goods details map</p><p>  2、查看商品詳細(xì)信息代碼實(shí)現(xiàn)部分</p><p>  通過獲取商品的ID號goodsID,去查詢數(shù)據(jù)庫tb_goods的商品信息信息。</p><p>  在

103、servlet中:</p><p>  public void doPost(HttpServletRequest request,HttpServletResponse response){</p><p><b>  try {</b></p><p>  request.setCharacterEncoding("GB2312&

104、quot;);</p><p>  response.setCharacterEncoding("GB2312");</p><p>  PrintWriter out=response.getWriter();</p><p>  String action=request.getParameter("action");&l

105、t;/p><p>  String goods_id=request.getParameter("goods_id");//獲取商品的ID號</p><p>  goodsitembean gib=new goodsitembean();//調(diào)用JavaBean</p><p>  goodsinfo gi=new goodsinfo();</

106、p><p>  if(action.equals("productDetail")){</p><p>  gi=gib.getGoodsinfo(goods_id);//返回一個goodsinfo對象</p><p>  request.setAttribute("goods_id", goods_id);</p>

107、<p>  request.setAttribute("userName", gi.getuserName());</p><p>  request.setAttribute("mobileTel", gi.getmobileTel());</p><p>  request.setAttribute("goods_name&

108、quot;, gi.getgoods_name());</p><p>  request.setAttribute("goodsshownew", gi.getgoodsshownew());</p><p>  request.setAttribute("price", gi.getprice());</p><p>  

109、request.setAttribute("exchangeaddress", gi.getexchangeaddress());</p><p>  request.setAttribute("method", gi.getmethod());</p><p>  request.setAttribute("number", g

110、i.getnumber());</p><p>  request.setAttribute("introduce", gi.getintroduce());</p><p>  this.forward(request, response,"/goodsitem.jsp");//跳轉(zhuǎn)到goodsitem.jsp頁面</p><p

111、><b>  }</b></p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p&g

112、t;  在javabean中的代碼實(shí)現(xiàn):</p><p>  public goodsinfo getGoodsinfo(String goods_id){</p><p>  String sql="select tb_member.userName,tb_member.mobileTel, tb_goods.* from tb_member,tb_goods where go

113、ods_id='"+goods_id+"'AND tb_goods.userID=tb_member.userID";</p><p>  goodsinfo gi=new goodsinfo();</p><p><b>  try {</b></p><p>  st=conn.createSt

114、atement();</p><p>  rs=st.executeQuery(sql);</p><p>  while(rs.next()){</p><p>  gi.setuserName(rs.getString(1));</p><p>  gi.setmobileTel(rs.getString(2));</p>

115、<p>  gi.setgoods_name(rs.getString(6));</p><p>  gi.setintroduce(rs.getString(7));</p><p>  gi.setprice(rs.getString(8));</p><p>  gi.setexchangeaddress(rs.getString(9));</

116、p><p>  gi.setnumber(rs.getString(10));</p><p>  gi.setmethod(rs.getString(11));</p><p>  gi.setgoodsshownew(rs.getString(13));</p><p><b>  }</b></p>&l

117、t;p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p>  } finally{</p><p>  this.close(rs, st, conn);</p><p><b>  }</b></p><p>

118、  return gi;</p><p><b>  }</b></p><p>  4.4.6 管理員管理模塊</p><p><b>  1、流程圖</b></p><p>  圖14 管理員管理圖</p><p>  Fig14 Administrator manag

119、e map</p><p><b>  2、代碼實(shí)現(xiàn)部分</b></p><p>  在servlet中通過action變量的屬性值String action=request.getParameter("action");來判斷要進(jìn)行什么操作,然后根據(jù)操作來調(diào)用JavaBean中相應(yīng)的方法[18]。</p><p>  在s

120、ervlet中的代碼實(shí)現(xiàn)[19]:</p><p>  if(action.equals("check")){</p><p>  Userinfobean ufb=new Userinfobean();</p><p>  Vector v=new Vector();</p><p>  v=ufb.getAlluser

121、();</p><p>  request.setAttribute("alluser", v);</p><p><b>  try {</b></p><p>  this.forward(request, response, "/alluser.jsp");</p><p>

122、  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p><b>  }</b></p><p>  if(action.equals("delete")){<

123、/p><p>  Userinfobean ufb=new Userinfobean();</p><p>  ufb.deleteuser(userID);</p><p>  Vector v=new Vector();</p><p>  v=ufb.getAlluser();</p><p>  request.s

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論