版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、湖 南 農(nóng) 業(yè) 大 學(xué)全日制普通本科生畢業(yè)設(shè)計(jì)基于WEB的大學(xué)跳蚤市場的設(shè)計(jì)與實(shí)現(xiàn)DESIGN AND IMPLEMENTATION OF UNIVERSITIES FLEA MARKET BASED ON WEB學(xué)生姓名:樊子彬?qū)W 號:200641802123年級專業(yè)及班級:2006級信息工程(1)班指導(dǎo)老師及職稱:周小云 講師學(xué) 院:信息科學(xué)技術(shù)學(xué)院湖南·長沙提交日期:2010年6月湖南農(nóng)業(yè)大學(xué)全日制普通本科生畢業(yè)論文(設(shè)計(jì))誠 信 聲 明本人鄭重聲明:所呈交的本科畢業(yè)論文(設(shè)計(jì))是本人在指導(dǎo)老師的指導(dǎo)下,進(jìn)行研究工作所取得的成果,成果不存在知識產(chǎn)權(quán)爭議。除文中已經(jīng)注明引用的內(nèi)容
2、外,本論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻(xiàn)的個人和集體在文中均作了明確的說明并表示了謝意。本人完全意識到本聲明的法律結(jié)果由本人承擔(dān)。 畢業(yè)論文(設(shè)計(jì))作者簽名: 年 月 日目 錄摘 要:1關(guān) 鍵 詞:11 前言21.1 研究背景及意義21.2 國內(nèi)外研究現(xiàn)狀21.3 可行性分析31.3.1 經(jīng)濟(jì)可行性31.4 本設(shè)計(jì)所用技術(shù)的簡介31.4.1 MVC設(shè)計(jì)模式概述31.4.2 常見web開發(fā)語言mvc框架61.4.3 本設(shè)計(jì)實(shí)現(xiàn)mvc的技術(shù)62 系統(tǒng)需求分析62.1 需求調(diào)研62.2 業(yè)務(wù)流程分析72.3 系統(tǒng)數(shù)據(jù)流圖72.4 系統(tǒng)功能需求分析82.4.
3、1 功能劃分82.4.2 功能描述93 系統(tǒng)設(shè)計(jì)103.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)103.2 數(shù)據(jù)庫表的設(shè)計(jì)103.3 系統(tǒng)開發(fā)與運(yùn)行環(huán)境確定123.3.1 系統(tǒng)開發(fā)環(huán)境123.3.2 系統(tǒng)運(yùn)行環(huán)境123.4 系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù)133.4.1 jsp與tomcat技術(shù)133.4.2 JDBC簡介134 詳細(xì)設(shè)計(jì)144.1 系統(tǒng)登錄模塊模塊簡介144.2 模塊體系結(jié)構(gòu)154.3 運(yùn)行圖154.4 設(shè)計(jì)說明164.4.1 新用戶注冊子模塊174.4.2 用戶登錄子模塊184.4.3 商品發(fā)布模塊194.4.4 商品搜索模塊204.4.5 查看商品詳細(xì)信息模塊224.4.6 管理員管理模塊245 測試
4、296 總結(jié)29參考文獻(xiàn)29致 謝31基于web的大學(xué)跳蚤市場的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生:樊子彬指導(dǎo)老師:周小云(湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,長沙 410128)摘 要:隨著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的開發(fā)方式來
5、實(shí)現(xiàn)此模式, 以MyEclipse作為主要的開發(fā)工具,很好的實(shí)現(xiàn)了一個購物網(wǎng)站基本的功能,很好地體現(xiàn)了MVC設(shè)計(jì)模式的思想。關(guān) 鍵 詞:購物網(wǎng)站;MVC;MyEclipseDESIGN AND IMPLEMENTATION OF UNIVERSITIES FLEA MARKET BASED ON WEBStudent: Fan Zibin Tutor: Zhou Xiaoyun(College of Information Science and Technology, Hunan Agricultural University, Changsha 410128,China)Abstract:
6、 As the Internet used more widely,the network flea market has become a platform of 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 follo
7、ws 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 together constitute a complete second-hand shopping site.The system uses the MVC designing pattern to design.The jsp
8、 + servlet + JavaBean are developed to implement this model by MyEclipse as a major development tool.This system is a good shopping site implementing the basic functions of a shopping site, embodies the principles of MVC design pattern idea.Keywords:shopping site;MVC;MyEclipse1 前言1.1 研究背景及意義隨著Intern
9、et的使用越來越廣泛,網(wǎng)絡(luò)跳蚤市場已成為很多大學(xué)生進(jìn)行交易的一個平臺。它為供需雙方提供了極為便利的二手物品信息交流,特別是對于廣大青年學(xué)生,這種經(jīng)濟(jì)型消費(fèi)模式更是受到推崇。隨著大學(xué)生的畢業(yè),他們手中有很多有價值的東西,但對于他們來說已經(jīng)失去了利用價值,但直接丟掉有很可惜,所以又很大一部分人將之出售,以得到資金;而一些在校大學(xué)生有相當(dāng)一部分人,經(jīng)濟(jì)能力相對較差,但他們也要購買一些物品,所以二手貨就成了他們的首選。所以二手商品交易對出售者和購買者都有積極的意義。隨著網(wǎng)路的發(fā)展,上網(wǎng)的人越來越多,上網(wǎng)的條件也越來越方便,學(xué)生就是一個上網(wǎng)的主要群體。網(wǎng)絡(luò)作為信息交換的媒介,越來越多的人已經(jīng)能夠接受并且
10、習(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ī)則、有條理地集中在一起,方便交易雙方的信息發(fā)布和信息查看。所以二手商品交易網(wǎng)站對網(wǎng)絡(luò)二手交易有積極的影響。網(wǎng)站的設(shè)計(jì)和規(guī)劃現(xiàn)在國內(nèi)外已經(jīng)作為進(jìn)行宣傳和交易的主流方式。發(fā)展情況一日千里。而且不同的網(wǎng)站有各自不同的特色和功能。尤其在頁面設(shè)置上正在簡單化、條理化,
11、實(shí)現(xiàn)的功能不斷增加。隨著網(wǎng)絡(luò)的普及和電子銀行服務(wù)的完善。使人們不用出門就能以低廉的價格買到需要的物品。給現(xiàn)代忙碌的人節(jié)省時間和金錢。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶可以在成千上萬的商品中通過收索功能輕松的找到自己想要的商品,并且能貨比三家。開發(fā)此系統(tǒng)的目的和意義就在于花費(fèi)很少的時間和金錢就能買到需要的,質(zhì)量好的商品。1.2 國內(nèi)外研究現(xiàn)狀近年來,隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并進(jìn)入傳統(tǒng)的流通領(lǐng)域.于是電子商務(wù)開始流行起來,一種全新的購物理念開始形成并逐步發(fā)展.網(wǎng)上購物是一種具有交互功能的商業(yè)信息系統(tǒng).它向用戶提供靜態(tài)和動態(tài)兩類信息資源.自2003年上半年以來,沉
12、寂了多年的中國互聯(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ì)報告調(diào)查顯示,網(wǎng)上購物已經(jīng)由以前的嘗試性購買向日常的生活習(xí)慣發(fā)展,其中以書籍,計(jì)算機(jī)產(chǎn)品,音像制品及器材等為網(wǎng)上購物的主要對象,服裝,體育用品,生活家居用品等消費(fèi)額也開始大幅度提高。1.3 可行性分析本系統(tǒng)主要從經(jīng)濟(jì)可行性和技術(shù)可行性兩個角度對其可行性進(jìn)行分析:1.3.1 經(jīng)濟(jì)可行性由于本設(shè)計(jì)是針對當(dāng)前在校大學(xué)生這種消費(fèi)群體的,當(dāng)前大學(xué)生經(jīng)濟(jì)能力有限,而又對時尚、前沿的東
13、西感興趣,而這些東西更新?lián)Q代的速度很快,而大學(xué)生的消費(fèi)觀念還不很成熟,這樣就有可能造成買到的東西過一段時間之后就失去了興趣,而這自己不用了的東西如果可以出售給需要的人,這就是一種節(jié)約型的消費(fèi)觀念。本設(shè)計(jì)無需再經(jīng)濟(jì)上購買居額設(shè)備就可實(shí)現(xiàn),所以在經(jīng)濟(jì)上是可行的。1.3.2 技術(shù)可行性本系統(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)站的。按上述兩方面進(jìn)行可行性分析、研究后,我們認(rèn)為該項(xiàng)目在技術(shù)上是可行的,經(jīng)
14、濟(jì)上是可合理的,可以進(jìn)行開發(fā)。1.4 本設(shè)計(jì)所用技術(shù)的簡介1.4.1 MVC設(shè)計(jì)模式概述傳統(tǒng)web設(shè)計(jì)模式與mvc設(shè)計(jì)模式的比較1傳統(tǒng)web開發(fā)模式基本上分為視圖,業(yè)務(wù)邏輯2層,是水平方向的劃分。MVC模式是物理性的劃分為3層,是垂直方向的劃分。 圖1 傳統(tǒng)web開發(fā)模式 圖2 MVC開發(fā)模式Fig1 The traditional web development model Fig1 MVC development modelMVC架構(gòu)是"Model-View-Controller"的縮寫,中文翻譯為"模型-視圖-控制器"。MVC應(yīng)用程序總是由這三個部
15、分組成。Event(事件)導(dǎo)致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己。MVC架構(gòu)最早是smalltalk語言研究團(tuán)提出的,應(yīng)用于用戶交互應(yīng)用程序中2。圖3 MVC組件類型的關(guān)系和功能Fig3 The relations and functions of MVC componentstypeMVC結(jié)構(gòu)提供了一種按功能對各種對象進(jìn)行分割的方法,其目的是為了將各對象間的耦合程度減至最小。MV
16、C結(jié)構(gòu)本來是為了將傳統(tǒng)的輸入(input)、處理(processing)、輸出(output)任務(wù)運(yùn)用到圖形化用戶交互模型中而設(shè)計(jì)的。但是,將這些概念運(yùn)用于基于Web的企業(yè)級多層應(yīng)用領(lǐng)域也是很適合的。在MVC結(jié)構(gòu)中,模型(Model)代表應(yīng)用程序的數(shù)據(jù)(data)和用于控制訪問和修改這些數(shù)據(jù)的業(yè)務(wù)邏輯(business rule)。當(dāng)模型發(fā)生改變時,它會通知視圖(View),并且為視圖提供查詢模型相關(guān)狀態(tài)的能力。同時,它也為控制器(Controller)提供訪問封裝在模型內(nèi)部的應(yīng)用程序功能的能力。 一個視圖(View)用來組織模型的內(nèi)容。它從模型那里獲得數(shù)據(jù)并指定這些數(shù)據(jù)如何表現(xiàn)。當(dāng)模型變化時
17、,視負(fù)責(zé)維持?jǐn)?shù)據(jù)表現(xiàn)的一致性。視圖同時將用戶要求告知控制器(Controller)。 控制器(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ù)和修改模型的狀態(tài)。根據(jù)用戶要求和模型行為的結(jié)果,控制器選擇一個視作為對用戶請求的應(yīng)答。通常一組相關(guān)功能集對應(yīng)一個控制器。視圖視圖(View)代表用戶交互界面,對于Web應(yīng)用來說,可以
18、概括為HTML界面,但有可能為XML、WML和Excel。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)邏輯的處理。業(yè)務(wù)邏輯的處理由模型(Model)完成。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型??刂破骺刂破?Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完
19、成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個連接,控制層接受請求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖可能對應(yīng)多個模型。模型模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及數(shù)據(jù)模型的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。模型的設(shè)計(jì)可以說是MVC最主要的核心。1.4.2 常見web開發(fā)語言mvc框架 PHP:FleaPHP,CakePHP ,Joomla JAVA:Struts ,Spring Python:Django
20、 ,Quixote Ruby:Ruby On Rails3 1.4.3 本設(shè)計(jì)實(shí)現(xiàn)mvc的技術(shù) JSP作為視圖,只用于顯示 Servlet作為控制器,所有的請求,跳轉(zhuǎn)都由servlet完成 業(yè)務(wù)邏輯部分由javabean完成 圖4 MVC 設(shè)計(jì)模式 Fig4 MVC Design Pattern2 系統(tǒng)需求分析根據(jù)上面所定義的課題研究方向及目標(biāo),本章將對系統(tǒng)功能進(jìn)行具體的需求分析,具體分析跳蚤購物網(wǎng)站所要實(shí)現(xiàn)的功能及欲達(dá)到的效果。2.1 需求調(diào)研首先從主流的購物網(wǎng)站上面如淘寶網(wǎng)、當(dāng)當(dāng)網(wǎng)去看他們的版面設(shè)計(jì)及功能,同時也在校內(nèi)同學(xué)之間去調(diào)查同學(xué)們對跳蚤網(wǎng)站的一些所要實(shí)現(xiàn)的功能和版面設(shè)計(jì)。同時也到網(wǎng)
21、上去找一些做得比較適合我做的一些大學(xué)生購物網(wǎng)站來學(xué)習(xí),并且自己去注冊一個帳號,親自體會他們網(wǎng)站的強(qiáng)大功能然后記錄下來。2.2 業(yè)務(wù)流程分析本系統(tǒng)工作流程是:用戶用瀏覽器登錄到網(wǎng)站主頁,可以查看各個用戶所要出售的各種商品,同時可以查看商品的詳細(xì)信息包括發(fā)布商品的人的信息和商品數(shù)量和商品狀態(tài)。同時訪問網(wǎng)站的人也可以搜索自己感興趣的商品。但是只有注冊了,才有可能去買商品。同時注冊者也可以通過管理員對自己賬戶充值,類似于支付寶功能。同時管理員可以查詢注冊用戶的詳細(xì)信息。具體目標(biāo)如下:(1)操作簡單、界面友好:用戶可以發(fā)布、查詢商品的各種相關(guān)信息,同時可以根據(jù)商品的狀態(tài)來是否購買商品。(2)即時可見:登
22、錄用戶可以隨時查看自己所購買的商品的數(shù)量、價格等方面的信息。2.3 系統(tǒng)數(shù)據(jù)流圖本系統(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ù)庫系統(tǒng)三個系統(tǒng),對本系統(tǒng)操作的數(shù)據(jù)源有普通瀏覽者、注冊用戶和管理員三種4。瀏覽者網(wǎng)站瀏覽系統(tǒng)注冊用戶數(shù)據(jù)庫系統(tǒng)商品管理系統(tǒng)用戶信息商品信息站點(diǎn)信息新用戶注冊信息管理員信息系統(tǒng)信息用戶信息修改信息商品信息管理員登陸信息登陸后的管理員管理員信息修改用戶信息商品信息新用戶注冊信息登陸信息 圖5 系
23、統(tǒng)數(shù)據(jù)流圖 Fig5 System data flow diagram 圖6 用戶登錄數(shù)據(jù)流Fig6 The data flow diagram of user login2.4 系統(tǒng)功能需求分析2.4.1 功能劃分 根據(jù)上一節(jié)的流程圖,把系統(tǒng)劃分成兩個大的模塊來完成:前臺模塊和后臺管理模塊。模塊劃分如表所示。表1 模塊及功能Table1 Modules and function序號功能模塊類別功能模塊備注1 前臺模塊查看物品功能塊物品分類列表功能塊物品搜索模塊物品發(fā)布模塊注冊功能塊登陸功能塊公共模塊顯示所有物品信息2 用戶管理模塊用戶信息管理功能塊用戶金額管理功能塊3 系統(tǒng)管理模塊用戶管理模
24、塊2.4.2 功能描述表2前臺功能列表Table2 The function list of front modules序號功能列表功能明細(xì)1首頁用戶登錄功能塊用戶注冊功能塊商品搜索功能塊商品發(fā)布功能塊商品分類目錄塊2用戶登錄功能塊登錄用戶3用戶注冊功能塊用戶注冊4商品搜索功能塊可以按商品類別搜索商品5商品發(fā)布功能塊登錄的用戶可以發(fā)布自己想要出售的商品6商品分類目錄塊可以查看所有用戶的商品的詳細(xì)信息,并且可以分類查看表3用戶管理模塊Table3 The user management modules序號功能列表功能明細(xì)1用戶信息管理功能塊管理員可以查看各個用戶的詳細(xì)信息,并且可以刪除用戶2用戶
25、金額管理功能塊管理員可以為每個用戶充值3 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)主要包括三大模塊組成:網(wǎng)站訪問者模塊、用戶模塊、系統(tǒng)管理員模塊5。整個系統(tǒng)的結(jié)構(gòu)框架如下圖所示圖7 結(jié)構(gòu)框架Table7 Structural framework3.2 數(shù)據(jù)庫表的設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是項(xiàng)目開發(fā)中的系統(tǒng)設(shè)計(jì)中非常重要的另一個關(guān)鍵環(huán)節(jié),在這里之所以特別強(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。(1) 數(shù)據(jù)庫表及表之間的相互關(guān)系本系統(tǒng)需要設(shè)計(jì)的
26、數(shù)據(jù)庫表如下表4數(shù)據(jù)庫表Table4 Database table序 號數(shù)據(jù)庫表數(shù)據(jù)庫表存儲內(nèi)容1tb_member存儲用戶基本信息2tb_manager存儲管理員賬號和密碼3tb_goods存儲商品的基本信息4tb_order存儲訂單信息(2) 數(shù)據(jù)庫表結(jié)構(gòu)的詳細(xì)設(shè)計(jì)下面開始對上一節(jié)列出的數(shù)據(jù)表逐一做出詳細(xì)說明。表5 用戶基本信息表tb_memberTable5 User basic information table tb_member序號字段名字段類型說明備注1userIDint用戶編碼主鍵2userNameVarchar登錄名惟一3truenameVarchar真實(shí)名稱4passwor
27、dVarchar用戶密碼5addressVarchar住址6mobileTelVarchar聯(lián)系電話不為空7qqVarcharqq號碼8emailVarchar郵箱地址9schoolNameVarchar學(xué)校名稱10xuehaoVarchar學(xué)號11idCardVarchar身份證號碼12descriptionVarchar個人描述13moneyint賬戶余額表6 管理員基本信息表tb_managerTable6 Administrator basic information table tb_member序號字段名字段類型說明備注1managerVarchar管理員賬號主鍵2PWDVarch
28、ar密碼表7 商品信息表tb_goodsTable7 Goods information table tb_goods序號字段名字段類型說明備注1userIDint發(fā)布者賬號2goods_idint商品編號主鍵(自動生成)3product_type_idVarchar商品類別編號4goods_nameVarchar商品名稱5introduceVarchar商品介紹6priceVarchar價格7exchangeaddressVarchar交換地點(diǎn)8numberVarchar數(shù)量9methodVarchar支付方法10stateVarchar物品狀態(tài)11goodshownewVarchar商品新
29、舊表8 商品訂單表tb_orderTable8 Goods order table tb_order序號字段名字段類型說明備注1orderIDint訂單編號主鍵2buyerIDVarchar購買者賬號3goods_idVarchar商品編號3.3 系統(tǒng)開發(fā)與運(yùn)行環(huán)境確定3.3.1 系統(tǒng)開發(fā)環(huán)境開發(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:表9 開發(fā)工具及用途Table9 Tools
30、 and application開發(fā)工具名稱軟件用途Microsoft visio 2003畫圖Mysql建立系統(tǒng)的后臺數(shù)據(jù)庫MyEclipse主要的代碼開發(fā)工具3.3.2 系統(tǒng)運(yùn)行環(huán)境硬件環(huán)境:服務(wù)器端: 推薦配置為512M內(nèi)存,CPU為Intel Pentium 1700MHZ,硬盤容量為80G的微機(jī)8。通信網(wǎng)絡(luò): Internet網(wǎng)軟件環(huán)境:服務(wù)器端:(1) 操作系統(tǒng): Windows 2000 Server /NT/2003 Server/XP(2) 數(shù)據(jù)庫: mysql5.1(3) Web服務(wù)器:Apache tomcat5.5客戶端:(1) 操作系統(tǒng): Windows 2000/X
31、P/2003/Vista/7(2) 瀏覽器: Internet Explore 6.0或以上版本(3) 推薦分辨率:1024*768或以上3.4 系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù)3.4.1 jsp與tomcat技術(shù) Tomcat簡介Tomcat是Apache 軟件基金會(Apache Software Foundation)的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 是一
32、個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選9。Tomcat與JSP的結(jié)合在過去,客戶機(jī)/服務(wù)器結(jié)構(gòu)的設(shè)計(jì)與Web的相關(guān)技術(shù)幾乎處于平行線上,兩者相互獨(dú)立并無法作出集成性的設(shè)計(jì)?,F(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)大。利用tomcat+JSP技術(shù)來集成Web前后端所帶來的強(qiáng)大效益可歸結(jié)為以下幾個方面:減少構(gòu)建和維護(hù)成本加快聯(lián)機(jī)過程應(yīng)用軟件集中在服務(wù)器端開發(fā)管理前端可使用任何瀏覽器(IE、Net
33、scape.)后端可存取任何數(shù)據(jù)庫 (SQL、Access、mysql、Oracle.)可使用任何腳本語言開發(fā) (VBScript、JavaScript、PERL.)3.4.2 JDBC簡介JDBC(Java DataBase Connectivity,Java數(shù)據(jù)庫連接):是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成10。(1) 支持基本的SQL語句,在 Java程序中實(shí)現(xiàn)數(shù)據(jù)庫操作功能并簡化操作過程。(2) 提供多樣化的數(shù)據(jù)庫連接方法。(3) 為各種不同的數(shù)據(jù)庫提供統(tǒng)一的操作界面。用JDBC連接數(shù)據(jù)庫的步驟
34、(1) 注冊驅(qū)動Class.forName(“com.mysql.jdbc.Driver”);(注冊mysql數(shù)據(jù)庫的驅(qū)動)(2) 建立連接Connection conn=DriverManager.getConnection(url,user,password);(3) 創(chuàng)建執(zhí)行的sql語句Statement st=conn.createStatement();(4) 執(zhí)行語句ResultSet rs=st.executeQuery(“sql語句”);(5) 處理結(jié)果(6) 釋放資源對于數(shù)據(jù)庫來說,每一次連接數(shù)據(jù)庫都要耗費(fèi)大量資源,所以當(dāng)我們用完的時候要調(diào)用close方法及時釋放資源11。4
35、 詳細(xì)設(shè)計(jì)4.1 系統(tǒng)登錄模塊模塊簡介該模塊是本系統(tǒng)的重要模塊,當(dāng)瀏覽器訪問該購物網(wǎng)站的時候,用戶可以通過登錄模塊來登錄系統(tǒng)服務(wù)器,可以查看自己的購物記錄、發(fā)布商品信息和購買商品。如果登錄者沒有注冊用戶,那么可以通過注冊一個用戶來進(jìn)行上面的操作。管理員需提交用戶名和密碼,之后進(jìn)入管理頁面。4.2 模塊體系結(jié)構(gòu)系統(tǒng)登陸模塊新會員注冊進(jìn)入用戶頁面管理員登陸登陸成功注冊會員登陸注冊成功填寫注冊資料登陸系統(tǒng)管理頁面圖8 系統(tǒng)登陸模塊圖Fig8 The system login map4.3 運(yùn)行圖4.4 設(shè)計(jì)說明在使用servlet時,要在用戶web應(yīng)用程序/WEB-INF/web.xml中配置相關(guān)信
36、息。<servlet> <servlet-name>servlet名稱</servlet-name> <servlet-class>servlet所生成的java類文件的存儲地址</servlet-class> </servlet><servlet-mapping> <servlet-name> servlet名稱</servlet-name> <url-pattern>訪問servlet的路徑</url-pattern> </servlet-mapping
37、>4.4.1 新用戶注冊子模塊用戶注冊,首先要檢查的就是用戶填寫的信息,其中包括:1. 電話號碼字段是否空白,若空白則不接受。2. 輸入的E-mail格式是否正確,有沒有和”.”符號。3. 兩次輸入的密碼是否一致。這個模塊的實(shí)現(xiàn)主要是在JavaScript中用document.form來獲取form中各個變量的值,然后去判斷各個值是否符合要求。同時在form中設(shè)置onsubmit屬性為真時,則注冊,否則注冊不成功12。<form name="form1" method="post" action="UserRegistryServl
38、et"onsubmit="return checkValue();">在JavaScript中寫如下代碼:function checkValue() var password1=document.form1.pwd1.value.Trim();var password2=document.form1.pwd2.value.Trim();var email=document.form1.email.value.Trim();if(document.form1.user.value.Trim()="")alert("用戶名不能為空,
39、請重新輸入");return false;else if(document.form1.pwd1.value.Trim()="")alert("密碼不能為空,請重新輸入");return false;else if(document.form1.pwd2.value.Trim()="")alert("確認(rèn)密碼不能為空,請重新輸入");return false;else if(document.form1.tel.value.Trim()="")alert("電話號碼不能為空,
40、請重新輸入");return false;else if(email!=""&& (email.indexOf("")=-1 | email.indexOf(".")=-1)alert("郵箱格式錯誤,請重新輸入");return false;else if(password1=password2)return true;else if(password1!=password2)alert("您兩次輸入的密碼不同,請重新輸入");return false;</sc
41、ript>同時在servlet中用request.getParameter(“name”)的值,然后通過JavaBean寫入到數(shù)據(jù)庫中。4.4.2 用戶登錄子模塊1、登錄頁面流程圖圖10 用戶登錄圖Fig10 The user login dialog2登錄頁面代碼程序的實(shí)現(xiàn)部分:用戶在前臺輸入并提交信息,每一個提交程序都會用到Form容器,在這個容器里含有兩個輸入對象,一個是用戶名,一個是用戶密碼,系統(tǒng)的驗(yàn)證主要依靠這兩個對象輸入框來完成。用戶在在前臺輸入信息后,系統(tǒng)在后臺要進(jìn)行驗(yàn)證,以便用戶登陸,驗(yàn)證代碼見程序文件UserLoginServlet 和 UserLoginbean這個程
42、序的主要功能就是接受用戶輸入的參數(shù),對用戶輸入的參數(shù)進(jìn)行判斷,判斷通過后向數(shù)據(jù)庫系統(tǒng)提交,返回數(shù)據(jù)庫查詢結(jié)果,當(dāng)有相應(yīng)的合法數(shù)據(jù)后,系統(tǒng)將把此用戶的ID號和用戶名賦給系統(tǒng)Session變量,然后系統(tǒng)將直接到達(dá)用戶頁面13。4.4.3 商品發(fā)布模塊1、商品發(fā)布流程圖圖11 商品發(fā)布圖Fig11 The goods release map2、商品發(fā)布模塊的實(shí)現(xiàn)部分在提交相應(yīng)的商品信息之后,在servlet中去看session.getAttribute("username")是否為空,如果為空,證明用戶沒有登錄,則在JavaScript中填寫alert語句,彈出對話框,提示沒有登
43、錄,然后返回到商品發(fā)布頁面;如果session.getAttribute("username")不為空,則把填寫的商品信息通過JavaBean寫入到數(shù)據(jù)庫表tb_goods中,提示商品發(fā)布成功16。if(String)session.getAttribute("username")=null)try this.forward(request, response, "/goodsrelease.jsp?message='forward'");return; catch (ServletException e) e.pri
44、ntStackTrace(); catch (IOException e) e.printStackTrace();goodsbean gb=new goodsbean();gb.goodsInsert(userID,product_type_id,goods_name,goodshownew, price, method, exchangeaddress, number, introduce);try PrintWriter out=response.getWriter();out.print("OK");out.print(goods_name); catch (IOE
45、xception e) e.printStackTrace();4.4.4 商品搜索模塊1、商品搜索流程圖圖12 商品搜索圖Fig12 The goods research map2、商品搜索的代碼實(shí)現(xiàn)提交相應(yīng)的信息后,servlet首先從用戶選擇的商品類別producttype和商品名稱goodsname,然后通過JavaBean去查詢商品數(shù)據(jù)庫tb_goods,查詢時用sql語句的模糊查詢來進(jìn)行,同時將查詢結(jié)果顯示在goodssearchresult.jsp中17。在servlet中的代碼:if(action.equals("search")Vector vector=
46、new Vector(); /定義一個向量,用來存放返回的商品信息類String product_type_id=request.getParameter("producttype");/獲取商品類別和商品名稱的信息String goodsname=request.getParameter("goodsname");goodssearchbean gsb=new goodssearchbean(); /調(diào)用相應(yīng)的JavaBeanvector=(Vector)gsb.getGoodsMessag(product_type_id, /返回相應(yīng)的查詢結(jié)果goo
47、dsname);request.setAttribute("goodssearchresult", vector);this.forward(request, response,"/goodssearchresult.jsp"); /將查詢結(jié)果返回到goodssearchresult頁面 在JavaBean中的代碼: public Vector getGoodsMessage(String product_type_id,String goodsname)實(shí)現(xiàn)sql語句的模糊查詢String sql1="select goods_name,pr
48、ice,state,goods_id from tb_goods where (product_type_id='"+product_type_id+")and (goods_name like '%"+goodsname+"%')"String sql2="select goods_name,price,state,goods_id from tb_goods where goods_name like '%"+goodsname+"%'"Vector vecto
49、r=new Vector();if(product_type_id.equals("所有分類")try st=conn.createStatement();rs=st.executeQuery(sql2);while(rs.next()goodsinfo gi=new goodsinfo();gi.setgoods_name(rs.getString(1);gi.setprice(rs.getString(2);gi.setstate(rs.getString(3);gi.setgoods_id(rs.getString(4);vector.addElement(gi);g
50、i=null; catch (Exception e) e.printStackTrace();finallythis.close(rs, st, conn);return vector;4.4.5 查看商品詳細(xì)信息模塊1、查看商品詳細(xì)信息流程圖圖13 商品詳細(xì)信息圖Fig13 The goods details map2、查看商品詳細(xì)信息代碼實(shí)現(xiàn)部分通過獲取商品的ID號goodsID,去查詢數(shù)據(jù)庫tb_goods的商品信息信息。在servlet中:public void doPost(HttpServletRequest request,HttpServletResponse respons
51、e)try request.setCharacterEncoding("GB2312");response.setCharacterEncoding("GB2312");PrintWriter out=response.getWriter();String action=request.getParameter("action");String goods_id=request.getParameter("goods_id");/獲取商品的ID號goodsitembean gib=new goodsitembean
52、();/調(diào)用JavaBeangoodsinfo gi=new goodsinfo();if(action.equals("productDetail")gi=gib.getGoodsinfo(goods_id);/返回一個goodsinfo對象request.setAttribute("goods_id", goods_id);request.setAttribute("userName", gi.getuserName();request.setAttribute("mobileTel", gi.getmobil
53、eTel();request.setAttribute("goods_name", gi.getgoods_name();request.setAttribute("goodsshownew", gi.getgoodsshownew();request.setAttribute("price", gi.getprice();request.setAttribute("exchangeaddress", gi.getexchangeaddress();request.setAttribute("method
54、", gi.getmethod();request.setAttribute("number", gi.getnumber();request.setAttribute("introduce", gi.getintroduce();this.forward(request, response,"/goodsitem.jsp");/跳轉(zhuǎn)到goodsitem.jsp頁面 catch (Exception e) e.printStackTrace();在javabean中的代碼實(shí)現(xiàn):public goodsinfo getGoodsinfo(String goods_id)String sql="select tb_member.userName,tb_member.mobileTel, tb_goo
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024教練車轉(zhuǎn)讓合同范文
- 2024臨時工聘用合同規(guī)范
- 2024購銷板材合同范本范文
- 頸椎病健康科普知識宣教
- 2024市內(nèi)運(yùn)輸合同范本
- 蘇州科技大學(xué)天平學(xué)院《展示設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024腳手架搭設(shè)合同
- 2024辦公文檔范本土地使用權(quán)出讓轉(zhuǎn)讓合同公證書
- 農(nóng)業(yè)科學(xué)與農(nóng)村公共設(shè)施考核試卷
- 家用紡織品的品牌知名度與市場認(rèn)知度考核試卷
- 自然拼讀法-圖文.課件
- 創(chuàng)新創(chuàng)業(yè)實(shí)訓(xùn)智慧樹知到期末考試答案章節(jié)答案2024年西安理工大學(xué)
- 2024屆宜賓市九年級語文上學(xué)期期中考試卷附答案解析
- 大學(xué)生國家安全教育智慧樹知到期末考試答案2024年
- 2024繼續(xù)教育《醫(yī)學(xué)科研誠信與醫(yī)學(xué)了研究倫理》答案
- 硫磺安全技術(shù)說明書MSDS
- 國開電大《工程數(shù)學(xué)(本)》形成性考核作業(yè)5答案
- GB/T 28653-2012工業(yè)氟化銨
- GB/T 13914-2013沖壓件尺寸公差
- 供應(yīng)商年度審核計(jì)劃及查檢表
- 網(wǎng)上商城購物系統(tǒng)-測試分析報告
評論
0/150
提交評論