版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書1前言傳統(tǒng)的商務(wù)是以固定不變的銷售地點(diǎn)(即商店)和固定不變的銷售時(shí)間為特征的店鋪式銷售。Internet上的銷售通過以信息庫為特征的網(wǎng)上商店進(jìn)行,所以它的銷售空間隨網(wǎng)絡(luò)體系的延伸而延伸。沒有任何地理障礙,它的零售時(shí)間是由消費(fèi)者即網(wǎng)上用戶自己決定。電子商務(wù)將傳統(tǒng)的商務(wù)流程電子化、數(shù)字化,一方面以電子流代替了實(shí)物流,可以大量減少人力、物力,降低了成本;另一方面突破了時(shí)間和空間的限制,使得交易活動(dòng)可以在任何時(shí)間、任何地點(diǎn)進(jìn)行,從而大大提高了效率。減少了中間環(huán)節(jié),使得生產(chǎn)者和消費(fèi)者的直接交易成為可能,從而在一定程度上改變了整個(gè)社會(huì)經(jīng)濟(jì)運(yùn)行的方式。網(wǎng)上購物作為一種時(shí)尚有很多人去體會(huì),更有部分人把到網(wǎng)上商店購物同逛商場(chǎng)等現(xiàn)實(shí)社會(huì)服務(wù)一樣作為生活的一部分。因此,網(wǎng)上購物網(wǎng)站作為B2C電子商務(wù)網(wǎng)站應(yīng)該是我們最為常見的電子商務(wù)網(wǎng)站。網(wǎng)上購物系統(tǒng)網(wǎng)站是電子商務(wù)系統(tǒng)的一個(gè)重要部分,網(wǎng)上花店系統(tǒng)將傳統(tǒng)的花店經(jīng)營管理模式與計(jì)算機(jī)網(wǎng)絡(luò)的綜合經(jīng)營管理模式結(jié)合在一起,將人、機(jī)、物的需求、活動(dòng)和運(yùn)作進(jìn)行系統(tǒng)分析、設(shè)計(jì)并管理,以實(shí)現(xiàn)現(xiàn)代高效、科學(xué)且安全的電子商務(wù)。2系統(tǒng)開發(fā)環(huán)境和關(guān)鍵技術(shù)2.1開發(fā)環(huán)境系統(tǒng)采用B/S的體系結(jié)構(gòu)。B即瀏覽器端負(fù)責(zé)顯示界面信息和訪問數(shù)據(jù)庫;S即服務(wù)器端則用于提供動(dòng)態(tài)數(shù)據(jù)服務(wù)。開發(fā)此系統(tǒng)所需要用到的軟件環(huán)境如下:網(wǎng)絡(luò)操作系統(tǒng):Windows7JDK:JDK6.0.26版本是目前功能最全,最穩(wěn)定的版本,其添加了許多以前版本不具備的新特性,如整合腳本語言,自動(dòng)打包解包,安全性等功能。Web應(yīng)用服務(wù)器:Tomcat服務(wù)器適用于中小型系統(tǒng)的開發(fā)服務(wù)期,同時(shí)Tomcat可以從網(wǎng)上免費(fèi)下載,從而降低了開發(fā)成本。數(shù)據(jù)庫:MySql是小型應(yīng)用開發(fā)中比較流行的數(shù)據(jù)庫,且其從Mysql5.0版本開始支持事務(wù),保證了數(shù)據(jù)的完整性與安全性。開發(fā)工具:Myeclipse10+Sqlyog+Mysql5.52.2系統(tǒng)采用技術(shù)2.2.1MVC模式MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開,利于分層開發(fā)的實(shí)現(xiàn)。MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。模型即業(yè)務(wù)層部分,視圖是現(xiàn)實(shí)層,控制器是視圖訪問業(yè)務(wù)層的代碼。分層后它們各自處理自己的任務(wù),到達(dá)系統(tǒng)的并行開發(fā)。同時(shí)多個(gè)視圖能可以共享一個(gè)模型,當(dāng)用越來越多的方式來訪問應(yīng)用程序時(shí),就需要使用MVC,用一個(gè)模型就能處理它們。同時(shí)由于已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以可以最大化的重用代碼,并考慮到系統(tǒng)的擴(kuò)展性,我選擇使用MVC開發(fā)模式,進(jìn)行網(wǎng)上花店系統(tǒng)的開發(fā)。2.2.2JSP技術(shù)JSP(JavaServerPages)是一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)[3],由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件中插入Java程序段(Script)和JSP標(biāo)記(tag),形成的JSP文件。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Windows下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)中使用Java編程語言編寫類XML的tags和Script,封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯(業(yè)務(wù)層代碼)。網(wǎng)頁還能通過tags和Script訪問存在于服務(wù)器端的資源(如數(shù)據(jù)庫)。JSP技術(shù)將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,利于分層式開發(fā)。同時(shí)JSP支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得更加迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。JSP一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML的靜態(tài)文本,因此客戶端只要有瀏覽器就能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼組成。當(dāng)頁面被客戶端請(qǐng)求時(shí),服務(wù)器將對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML靜態(tài)頁面返回給客戶端的瀏覽器。JavaSERVLET是JSP的技術(shù)基礎(chǔ),在大型的Web應(yīng)用程序的開發(fā)需要JavaSERVLET和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠的優(yōu)勢(shì),同時(shí)具有面向因特網(wǎng)的所有特點(diǎn),具體來說JSP網(wǎng)頁有以下優(yōu)點(diǎn):(1)一次編寫,處處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)支持多平臺(tái)。JSP基本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行SERVLET/JSP,到由多臺(tái)服務(wù)器集群和負(fù)載均衡,到多臺(tái)Application事務(wù)處理,消息處理。一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,java在不斷的壯大自己,同時(shí)顯示了一個(gè)巨大的生命力,JSP是基于Java的開發(fā),無疑也繼承了java的這些優(yōu)點(diǎn)。(4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java擁有許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多可以順利的運(yùn)行于多種平臺(tái)之下。(5)可擴(kuò)展性。JSP擁有很多架包,同時(shí)支持很多外來架包,當(dāng)需要時(shí)可以導(dǎo)入即可使用,簡(jiǎn)單方便。2.2.3Servlet技術(shù)Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁面。它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。2.3數(shù)據(jù)庫技術(shù)Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序可以通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、修改數(shù)據(jù)等操作。同時(shí)為了節(jié)省數(shù)據(jù)庫連接資源,我選擇mysql數(shù)據(jù)庫是并使用連接池技術(shù)。連接池技術(shù)可以為每個(gè)服務(wù)預(yù)先分配連接。當(dāng)用戶請(qǐng)求時(shí),從已有連接中獲取,僅當(dāng)連接被完全分配時(shí)才開辟新的連接,這樣可以有效利用資源。在數(shù)據(jù)庫使用前,首先根據(jù)需求進(jìn)行分析,建立數(shù)據(jù)模型,數(shù)據(jù)模型是現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象,它具有三個(gè)突出優(yōu)點(diǎn):能夠有效提取信息,比較真實(shí)地模擬現(xiàn)實(shí)世界,容易為人所理解,便于計(jì)算機(jī)實(shí)現(xiàn)。概念數(shù)據(jù)模型CDM也稱信息模型,它以實(shí)體-聯(lián)系理論為基礎(chǔ),并對(duì)這一理論進(jìn)行了擴(kuò)充。它從用戶的觀點(diǎn)出發(fā)對(duì)信息進(jìn)行建模,先將現(xiàn)實(shí)世界抽象為概念世界,然后再將概念世界轉(zhuǎn)為機(jī)器世界。在數(shù)據(jù)模型建立之后,就可以使用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行相關(guān)的操作。3網(wǎng)站系統(tǒng)分析3.1網(wǎng)上花店需求分析本系統(tǒng)主要是供網(wǎng)上購物的用戶使用,同時(shí)后臺(tái)也必須有管理人員對(duì)其進(jìn)行管理以保證系統(tǒng)正常運(yùn)行,具體功能如下:3.1.1客戶端(1)購物功能:對(duì)用戶要購買的商品進(jìn)行管理。(2)我的訂單功能:實(shí)現(xiàn)用戶對(duì)訂單的管理。(3)用戶注冊(cè)功能:主要讓初次登陸的用戶進(jìn)行注冊(cè)。(4)用戶登錄功能:已注冊(cè)的用戶進(jìn)行身份確認(rèn)。(5)密碼重置功能:已注冊(cè)的用戶對(duì)自己的密碼進(jìn)行修改。(6)注銷功能:已登錄的用戶在離開本系統(tǒng)時(shí)實(shí)現(xiàn)注銷。3.1.2管理端(1)管理員管理功能:操作者包括超級(jí)管理員和普通管理員,超級(jí)管理員對(duì)人以管理員的信息進(jìn)行管理,而普通管理員只有部分權(quán)限。(2)商品管理:對(duì)商品進(jìn)行增,刪,改,查的操作。(3)訂單管理:對(duì)客戶的訂單進(jìn)行管理。(4)注銷:當(dāng)后臺(tái)系統(tǒng)的管理員離開時(shí)進(jìn)行注銷。3.2系統(tǒng)模塊分析系統(tǒng)的各個(gè)功能模塊如圖3-1所示。商品查詢商品查詢訂單查詢購買商品商品添加商品審查訂單查詢用戶信息查詢管理員添加管理員權(quán)限購買商品請(qǐng)先登錄,若未注冊(cè)請(qǐng)注冊(cè)成為會(huì)員用戶進(jìn)入以會(huì)員的身份進(jìn)入用戶進(jìn)入以管理員的身份登錄會(huì)員注冊(cè)查看商品圖3-1系統(tǒng)模塊分析圖3.3業(yè)務(wù)流程分析系統(tǒng)的基本業(yè)務(wù)流程如下:首先用戶來到系統(tǒng)首頁,根據(jù)自己需要和目錄分類信息查看選擇鮮花,選擇完畢在進(jìn)入訂購鮮花環(huán)節(jié)之前,需要顧客進(jìn)行注冊(cè)登錄才能進(jìn)行繼續(xù)填寫和生成訂單的功能,登錄成功后可以填寫訂單信息,系統(tǒng)會(huì)根據(jù)用戶填寫的信息自動(dòng)生成訂單,這樣一次網(wǎng)上購花行為就算完成。具體系統(tǒng)業(yè)務(wù)流程如圖3-2所示。查看網(wǎng)店查看網(wǎng)店是否已登錄查看網(wǎng)店詳細(xì)信息訂購物品是否新顧客注冊(cè)填寫訂單輸入用戶登錄信息提交訂單繼續(xù)其他操作圖3-2系統(tǒng)業(yè)務(wù)流程3.4系統(tǒng)的邏輯模型3.4.1數(shù)據(jù)流圖通過對(duì)在線花店系統(tǒng)的功能劃分,業(yè)務(wù)流程操作分析可以得到系統(tǒng)一層數(shù)據(jù)流圖。如圖3-3所示。查詢?nèi)坑唵尾樵內(nèi)坑唵钨徫锾幚碛唵涡畔⑸暾?qǐng)注冊(cè)用戶信息注冊(cè)登錄顧客訂單訂購物品管理員訂單信息填寫,確認(rèn)提交訂單已注冊(cè)圖3-3系統(tǒng)一層數(shù)據(jù)流圖從圖中可以看出整個(gè)過程有三個(gè)處理過程:注冊(cè)登錄處理過程,選購產(chǎn)品處理過程和處理訂單過程。注冊(cè)登錄處理過程的二層數(shù)據(jù)流圖如圖3-4所示。已核對(duì)密碼已核對(duì)密碼顧客用戶名密碼已核對(duì)用戶名申請(qǐng)登錄顧客核對(duì)用戶其他操作用戶信息用戶信息核對(duì)密碼批準(zhǔn)登錄已注冊(cè)登錄圖3-4注冊(cè)登錄二層數(shù)據(jù)流圖處理訂單過程的二層數(shù)據(jù)流圖如圖3-5所示。填寫訂單填寫訂單管理員訂單信息管理員訂單信息處理訂單顧客訂單信息查詢?nèi)坑唵尾樵內(nèi)坑唵螆D3-5處理訂單二層數(shù)據(jù)流圖3.4.2數(shù)據(jù)字典一層數(shù)據(jù)流圖的數(shù)據(jù)字典如下:數(shù)據(jù)流:(1)名稱:顧客信息簡(jiǎn)要說明:用戶數(shù)據(jù)庫提供顧客數(shù)據(jù)數(shù)據(jù)流來源:顧客數(shù)據(jù)流去向:用戶信息數(shù)據(jù)(2)名稱:訂單信息簡(jiǎn)要說明:向訂單數(shù)據(jù)庫/顧客提供訂單信息數(shù)據(jù)流來源:顧客/訂單信息數(shù)據(jù)庫數(shù)據(jù)流去向:訂單信息數(shù)據(jù)庫/顧客數(shù)據(jù)存儲(chǔ):(1)名稱:用戶信息說明:顧客信息表內(nèi)容,注冊(cè)登錄時(shí)顧客應(yīng)填寫的信息結(jié)構(gòu):用戶名,密碼,性別(2)名稱:產(chǎn)品信息說明:產(chǎn)品信息表內(nèi)容,顧客瀏覽選購產(chǎn)品時(shí)出現(xiàn)的信息結(jié)構(gòu):產(chǎn)品id,產(chǎn)品名稱,產(chǎn)品類型,銷售價(jià)格(3)名稱:訂單信息說明:包括訂單信息表和訂單明細(xì)表的內(nèi)容,生成訂單時(shí)應(yīng)填寫的內(nèi)容結(jié)構(gòu):訂單信息表包括:訂單號(hào),產(chǎn)品名稱,產(chǎn)品類別,產(chǎn)品單價(jià),訂購數(shù)量,收貨人姓名,收貨人電話訂單明細(xì)表包括:產(chǎn)品id,產(chǎn)品名稱,產(chǎn)品價(jià)格,數(shù)量,訂單id處理過程:(1)名稱:注冊(cè)登錄輸入:注冊(cè)登錄信息輸出:成功登錄信息處理過程描述:根據(jù)顧客輸入信息判斷是否合法用戶,合法就允許登錄,否則請(qǐng)顧客先注冊(cè)再登錄(2)名稱:選購商品輸入:成功登錄信息輸出:訂購成功處理過程描述:根據(jù)顧客的選擇,生成訂單,提交訂單,訂購成功(3)名稱:處理訂單處理過程描述:根據(jù)顧客確認(rèn)的訂單信息,生成訂單,并向管理員提供可查詢的訂單信息。4系統(tǒng)總體設(shè)計(jì)4.1設(shè)計(jì)思想在線花店系統(tǒng)是一個(gè)相對(duì)簡(jiǎn)單的基本應(yīng)用系統(tǒng),主要滿足傳統(tǒng)的花店運(yùn)營需要,將自己的銷售渠道擴(kuò)展到網(wǎng)上,通過簡(jiǎn)單的管理,提供給最終消費(fèi)者產(chǎn)品的展現(xiàn)、購物、訂單處理等以實(shí)現(xiàn)鮮花的在線銷售。本次設(shè)計(jì)希望設(shè)計(jì)一個(gè)網(wǎng)上花店系統(tǒng),它包括以下電子商務(wù)B2C網(wǎng)站的常見功能:鮮花產(chǎn)品選購??砂茨夸浄绞讲檎阴r花種類或通過導(dǎo)航屬性進(jìn)行查詢,并可查看鮮花詳細(xì)情況。訂單提交功能。顧客選完商品后,可以進(jìn)行訂購這一交易過程。從顧客方面說,顧客提交訂單后,此網(wǎng)站的網(wǎng)上交易已經(jīng)完成,應(yīng)該進(jìn)入管理者的訂單處理過程。訂單查詢功能。管理員可以查詢訂單和訂單的處理情況。顧客提交完訂單后,應(yīng)該有訂單確認(rèn)的過程。一旦訂單得到處理確認(rèn),網(wǎng)上交易即告完成。用戶管理功能。為保證網(wǎng)上交易的安全性,對(duì)顧客的身份進(jìn)行驗(yàn)證和管理十分必要,因此需要支持用戶注冊(cè)、用戶登錄、身份驗(yàn)證等。管理員也屬于用戶一類,成功登錄后,可以查看到全部用戶的訂單情況。本系統(tǒng)設(shè)計(jì)時(shí)把頁面中一些常用的部分集成為模塊,例如頁面的頭部和產(chǎn)品導(dǎo)航模塊,這樣設(shè)計(jì)新的頁面時(shí)如果有重復(fù)出現(xiàn)的部分,只需要拿現(xiàn)成的模塊嵌套組裝就可以了。4.2系統(tǒng)功能結(jié)構(gòu)根據(jù)上述所描述的系統(tǒng)分析及設(shè)計(jì),最終確定該系統(tǒng)的功能結(jié)構(gòu)如圖4-1所示。管理員管理管理員管理訂單管理購物車購物車我的訂單用戶注冊(cè)用戶登錄密碼重置注銷網(wǎng)上客戶端花店系統(tǒng)客戶端管理端圖4-1系統(tǒng)功能結(jié)構(gòu)本系統(tǒng)功能需求主要分為兩類,用戶功能需求和管理員功能需求。各功能模塊實(shí)現(xiàn)的子功能如表4-1所示。表4-1總功能表功能類別子功能用戶功能1.1用戶注冊(cè)和登錄1.2商品查詢1.3查看花卉詳細(xì)信息1.4購買1.5查看購物車1.6查看訂單信息1.7用戶注銷管理員2.1管理員添加(普通和超級(jí))2.2商店商品管理2.3訂單管理2.4商品添加4.2.1用戶功能用戶登錄在線購買用戶登錄注冊(cè)商品查詢查看商品信息購買商品用戶登錄在線購買用戶登錄注冊(cè)商品查詢查看商品信息購買商品查看購物車查看訂單詳請(qǐng)圖4-2用戶功能框圖用戶登錄功能用戶登錄功能用戶的注冊(cè)用戶的登錄圖4-3用戶登錄功能框圖用戶功能描述如表4-2所示。表4-2用戶功能描述名稱標(biāo)識(shí)符用戶登錄功能描述用戶要先進(jìn)行注冊(cè),才可以登錄。優(yōu)先級(jí)高級(jí)。輸入輸入用戶名和密碼。操作序列注冊(cè)會(huì)員,然后輸入用戶名和密碼,進(jìn)行登錄。輸出登錄成功,進(jìn)入花店。補(bǔ)充說明如果不登錄,則不能購買商品查詢商品功能描述如表4-3所示。表4-3查詢商品功能描述名稱、標(biāo)識(shí)符查詢商品功能描述可以通過類別查找商品優(yōu)先級(jí)高級(jí)輸入輸入條件,點(diǎn)擊查詢。操作序列選擇商品類別,點(diǎn)擊查詢。輸出相應(yīng)類別中的所有商品。補(bǔ)充說明如不登錄,可以查詢,但不能購買商品。查詢商品的詳細(xì)信息功能描述如表4-4所示。表4-4查詢商品詳細(xì)信息功能表名稱、標(biāo)識(shí)符查看商品的詳細(xì)信息功能描述通過類別查找商品,可以查看喜歡商品的詳細(xì)信息優(yōu)先級(jí)高級(jí)輸入點(diǎn)擊查看操作序列可以查看相對(duì)應(yīng)的商品詳細(xì)信息輸出顯示相應(yīng)商品的詳細(xì)信息補(bǔ)充說明如不登錄,可以查詢,可以查看商品的詳細(xì)信息,但不能購買商品。購買商品的功能表如圖4-5所示。表4-5購買商品功能表名稱標(biāo)識(shí)符購買商品功能描述選擇自己喜歡的商品進(jìn)行購買優(yōu)先級(jí)高級(jí)輸入點(diǎn)擊購買操作序列添加到購物車,生成訂單,就可以購買了輸出訂購成功補(bǔ)充說明如果不登錄,可惜查詢商品,查看商品信息,但不可購買用戶成功登錄后,查看購物車時(shí)的功能模塊,如圖4-4所示。修改購買數(shù)量修改購買數(shù)量刪除已購花卉提交購物車清空購物車?yán)^續(xù)購花查看購物車圖4-4用戶查看購物車功能框圖實(shí)現(xiàn)購物車功能的模塊描述如表4-6所示。表4-6查看購物車功能表名稱、標(biāo)識(shí)符查看購物車功能描述可以修改購買數(shù)量,如不喜歡該商品,可以進(jìn)行刪除,確定后提交購物車,可繼續(xù)購其他商品。優(yōu)先級(jí)高級(jí)輸入點(diǎn)擊喜歡商品的對(duì)應(yīng)的訂購按紐,將其添加到購物車操作序列修改購買數(shù)量,如不喜歡該商品,可以進(jìn)行刪除,確定后提交購物車。輸出清空購物車,生成訂單,可繼續(xù)購物。補(bǔ)充說明如不登錄,則不能購買花卉。查看訂單的功能描述如表4-7所示。表4-7查看訂單功能表名稱、標(biāo)識(shí)符查看訂單功能描述提交購物車后,生成訂單。優(yōu)先級(jí)高級(jí)輸入點(diǎn)擊提交購物車按紐操作序列生成訂單,核實(shí)訂單信息。輸出生成訂單成功。補(bǔ)充說明如不登錄,則不能購買花卉。4.2.2管理員功能管理員登錄后實(shí)現(xiàn)的各個(gè)功能模塊如圖4-5和4-6所示。管理員登陸管理員添加管理員登陸管理員添加管理員刪除管理員信息商品管理訂單管理圖4-5管理員功能框圖刪除商品刪除商品添加商品商品管理修改商品模糊查詢商品圖4-6商品管理功能框圖管理員對(duì)商品管理的功能模塊描述,如表4-8所示。表4-8商品管理功能表名稱、標(biāo)識(shí)符商品管理功能描述可以添加、修改、刪除、查詢花卉的信息。優(yōu)先級(jí)高級(jí)輸入輸入信息,進(jìn)行增刪改查。操作序列輸入新記錄進(jìn)行增加,修改原有的花卉信息,可以刪除未被引用的花卉,輸入查詢條件查詢花卉信息。輸出操作已成功。補(bǔ)充說明需要管理員登錄。訂單功能???,如圖4-7所示。修改訂單修改訂單刪除訂單查看訂單詳細(xì)信息訂單管理圖4-7訂單管理功能框圖訂單管理功能模塊描述如表4-9所示。表4-9訂單管理功能表名稱、標(biāo)識(shí)符訂單管理功能描述可以查看所有的訂單,刪除訂單和修改訂單。優(yōu)先級(jí)高級(jí)輸入進(jìn)入訂單管理操作序列可以查看所有的訂單,刪除訂單和修改訂單。輸出操作已成功。補(bǔ)充說明需要管理員登錄。4.3數(shù)據(jù)庫設(shè)計(jì)4.3.1數(shù)據(jù)庫分析此系統(tǒng)由JSP+Servlet+JavaBean+Tomcat+MySQL組成,因?yàn)閷?duì)數(shù)據(jù)庫的性能要求不是很高,古采用適用于中小企業(yè)的MySQL數(shù)據(jù)庫較為合適,而且該數(shù)據(jù)庫免費(fèi),可以節(jié)約開發(fā)成本。4.3.2項(xiàng)目的E-R圖本系統(tǒng)中的實(shí)體主要有:商品,訂單,訂單明細(xì),用戶,管理員等,實(shí)體的E-R圖。商品的E-R圖,如圖4-8所示。管理員的E-R圖,如圖4-9所示。商品商品商品名稱商品類型商品數(shù)量商品ID商品URL商品價(jià)格商品簡(jiǎn)介商品上架日期圖4-8商品E-R圖權(quán)限權(quán)限管理員管理員名密碼圖4-9管理員E-R圖訂單明細(xì)E-R圖如圖4-10所示。(4)用戶E-R圖如圖4-11所示。訂單訂單商品號(hào)ID訂單號(hào)商品名稱商品價(jià)格訂貨時(shí)間商品數(shù)量圖4-10訂單明細(xì)E-R圖用戶用戶用戶名密碼E-mail圖4-11用戶E-R圖(5)訂單的E-R圖如圖4-12所示。訂單訂單訂貨人訂貨時(shí)間總價(jià)格收貨人收貨人電話收貨人地址訂單ID訂單狀態(tài)圖4-12訂貨單E-R圖4.3.3數(shù)據(jù)庫表的設(shè)計(jì)本系統(tǒng)中的信息表主要有5張表:商品資料表,用戶資料表,管理員資料表,訂單表和訂單明細(xì)表。表的完整信息如下:商品資料表:用于記錄庫存商品的基本信息,其主要字段有:商品ID,商品名稱,商品類別,商品價(jià)格,商品簡(jiǎn)介,上架日期,商品數(shù)量,圖片URL,具體設(shè)計(jì)如表4-10所示。表4-10商品數(shù)據(jù)表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明goodsidintN/A是否商品IDgoodsnamevarchar50否否商品名稱gtypevarchar50否否商品類別gpricedoubleN/A否否商品價(jià)格gdatedateN/A否否商品日期gamountintN/A否否商品數(shù)量gimgurlvarchar100否否圖片URLgintroductiontextN/A否否商品簡(jiǎn)介建立該表的SQL語句如下:Createtablegoodsmessage(goodsidintauto_increment,goodsnamevarchar(50)notnull,gtypevarchar(50)notnull,gpricedoublenotnull,gdatedatenotnull,gamountintnotnull,gimgurlvarchar(100)default‘img/wel.gif’,gintroductiontextnotnull,constraintpkprimarykey(goodsid));用戶資料表:用于記錄用戶的信息,主要由用戶名稱,用戶密碼和用戶的名稱組成,如表4-11所示。表4-11用戶資料表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明cnamevarchar50是否用戶名稱cpwvarchar50否是用戶密碼cemailvarchar50否是用戶E-mail創(chuàng)建該表的SQL語句如下:Createtablegcustomer(cnamervarchar(50)primarykey,cpwvarchar(50)notnull,cemailvarchar(50));管理員資料表:用于記錄管理員的信息,主要有管理員名稱,管理員密碼,管理員權(quán)限組成,如表4-12所示。表4-12管理員資料表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明mnamevarchar50是否管理員名稱mpwvarchar50否否管理員密碼mpermittedvarchar50否否管理員權(quán)限建立該表的SQL語句如下:Createtablemmanager(mnamevarchar(50)primarykey,mpwvarchar(50)notnull,mpermittedvarchar(5)notnull);(4)訂單資料表:用于記錄用戶訂單的一些基本信息,包括訂單ID,用戶名稱,收貨人名稱,收貨人地址,收貨人電話,訂單狀態(tài),訂貨時(shí)間,詳情如表4-13所示。表4-13訂單資料表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明oidintN/A是否訂單IDcnamevarchar50否否用戶名稱receivenamevarcahr50否否收貨人地址receivetelvarchar50否否收貨人電話allmoneydoubleN/A否否總價(jià)zhuangtaivarchar100否否狀態(tài)buytimedatetimeN/A否否訂貨時(shí)間建立該表的SQL語句如下:Createtableordermeg(oidintprimarykey,cnamevarcahr(50)notnull,receivenamevarchar(50)notnull,receiveaddsvarchar(50)notnull,receivetelvarchar(50)notnull,allmoneydoublenotnull,zhuangtaivarchar(50)default’未發(fā)送’,buytimedatetimenotnull);訂單明細(xì)表:該表用于記錄訂單的詳細(xì)信息,主要包括訂單ID,商品名稱,商品ID,商品價(jià)格,訂貨數(shù)量,訂貨時(shí)間,具體設(shè)計(jì)如表4-14所示。表4-14訂單明細(xì)表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明oidintN/A否否訂單IDgoodsidintN/A否否商品IDgoodsnamevarchar50否否商品名稱gpricedoubleN/A否否商品價(jià)格orderamountintN/A否否訂貨數(shù)量buytimedatetimeN/A否否訂貨時(shí)間建立該表的的SQL語句如下:Createtableordergoodsmeg(oidintnotnull,goodsidintnotnull,goodsnamevarchar(50)notnull,gpricedoublenotnull,orderamountintnotnull,buytimedatetimenotnull);5網(wǎng)站的實(shí)現(xiàn)5.1系統(tǒng)目錄結(jié)構(gòu)在系統(tǒng)開發(fā)前,要先明確系統(tǒng)的目錄組織結(jié)構(gòu),這樣就可以更好的理解其開發(fā)原理,本系統(tǒng)的目錄組織結(jié)構(gòu)如圖5-1所示。圖5-1系統(tǒng)目錄了解系統(tǒng)結(jié)構(gòu)組織圖,還可以進(jìn)行框架設(shè)計(jì)這樣可以對(duì)本系統(tǒng)的基本架構(gòu)有一個(gè)比較全面地了解,系統(tǒng)的基本架構(gòu)如圖5-2所示。hijphijpfeCustomerServlet.jsp數(shù)據(jù)源數(shù)據(jù)庫pagination.jspindext.jspcart.jspCustomercz.jspCustomerdd.jspPaginationBeanCustomerxgxx.jspCustomermanage.jspAefmlcbAefmlcbkkddqq圖5-2網(wǎng)站基本架構(gòu)圖各編號(hào)動(dòng)作如表5-1所示。表5-1框架頁面動(dòng)作動(dòng)作編號(hào)動(dòng)作內(nèi)容動(dòng)作編號(hào)動(dòng)作內(nèi)容動(dòng)作編號(hào)動(dòng)作內(nèi)容a登錄動(dòng)作g注銷動(dòng)作m購買動(dòng)作b用戶注冊(cè)h購物車商品顯示n查詢商品c用戶修改信息i購物車商品修改o商品分類d用戶查看訂單j購物車商品刪除p繼續(xù)購買e商品顯示k用戶登錄q顯示訂單f換頁顯示l查看商品明細(xì)r首頁初始化5.2前臺(tái)功能實(shí)現(xiàn)5.2.1商品查詢?cè)谙到y(tǒng)首頁或詳細(xì)商品信息的頁面中,都有進(jìn)行商品查詢的入口。這一設(shè)計(jì)可以使顧客很快地找到自己喜歡的商品,商品查詢時(shí),顧客可以選擇商品的分類,也可以添入與自己有興趣的相關(guān)文字進(jìn)行模糊查詢。商品查詢的后臺(tái)實(shí)現(xiàn)在ProductSearch.jsp中實(shí)現(xiàn),其流程圖如圖5-3所示,它會(huì)數(shù)據(jù)庫操作層會(huì)根據(jù)用戶設(shè)置的條件構(gòu)造不同的查詢SQL語句,并將查詢的結(jié)果進(jìn)行分頁顯示。首次登錄首次登錄得到查詢商品類別根據(jù)用戶設(shè)置條件設(shè)置不同的查詢SQL語句得到查詢結(jié)果并進(jìn)行分頁顯示查詢到合適的商品圖5-3商品查詢流圖5.2.2登錄與注冊(cè)只有登錄的用戶才可以購買這個(gè)網(wǎng)站中的商品,未登錄用戶只能瀏覽本網(wǎng)站的所有商品。未登陸要購買時(shí)會(huì)給出提醒,轉(zhuǎn)到登陸頁面。為了防止惡意提交表單,設(shè)置驗(yàn)證碼,只有當(dāng)用戶名,密碼,全部正確時(shí),才能提交表單。否則給出響應(yīng)提示。當(dāng)未注冊(cè)用戶登錄時(shí),會(huì)彈出用戶名不存在。提醒用戶進(jìn)行注冊(cè)。如需注冊(cè),首先輸入用戶名。利用AJAX局部刷新技術(shù)檢查該顧客所申請(qǐng)的用戶名是否以被人申請(qǐng)了,若已被人申請(qǐng)了該用戶名,則系統(tǒng)將提示給用戶“該用戶名已存在”的信息,提示用戶修改用戶名。然后進(jìn)行一步步信息的填寫,每項(xiàng)信息的填寫都會(huì)調(diào)用一個(gè)JS代碼段,用于測(cè)試該內(nèi)容是否符合條件,不符合條件的內(nèi)容無法提交,并給用戶以及時(shí)提醒。當(dāng)所有的信息填寫完畢,且都滿足條件時(shí),可以提交表單,等待管理員進(jìn)行審核。審核通過后,顯示注冊(cè)成功,進(jìn)入首頁面,用戶可以根據(jù)自己的需要進(jìn)行相關(guān)的操作。具體的注冊(cè)信息如圖5-4所示。開始開始輸入用戶名及密碼進(jìn)入主界面密碼檢驗(yàn)顯示錯(cuò)誤結(jié)束圖5-4消費(fèi)者登錄流程圖注冊(cè)和登錄代碼實(shí)現(xiàn):if(action.equals("denglu")) { Stringzname=request.getParameter("zname"); Stringzpassword=request.getParameter("zpassword"); Stringcname=newString(zname.getBytes(),"GBK"); Stringsql="selectcnamefromgcustomerwherecname='"+cname+"'andcpw='"+zpassword+"'"; booleans=DB.selectMsg(sql); if(s) { session.setAttribute("user",zname); StringfromWhere=(String)session.getAttribute("fromWhere"); if(fromWhere!=null) { if(fromWhere.equals("jz")) {//回結(jié)賬 this.getServletContext().getRequestDispatcher("/CustomerServlet?action=jiezhang").forward(request,response); return; } elseif(fromWhere.equals("wddd")) {//回我的訂單 this.getServletContext().getRequestDispatcher("/CustomerServlet?action=modify2").forward(request,response); return; } elseif(fromWhere.equals("mmcz")) {//回密碼重置 this.getServletContext().getRequestDispatcher("/customerpwchange.jsp").forward(request,response); return; } } this.getServletContext().getRequestDispatcher("/pagination.jsp").forward(request,response); } else { Stringmsg="對(duì)不起,登錄失敗,請(qǐng)重新登錄!!!"; request.setAttribute("msg",msg);this.getServletContext().getRequestDispatcher("/customermanage.jsp").forward(request,response); } }elseif(action.equals("zhuce")){ Stringzname=request.getParameter("cname"); Stringzpassword=request.getParameter("cpassword"); Stringspw=request.getParameter("spw"); Stringemail=request.getParameter("email"); Stringcname=newString(zname.getBytes(),"GBK"); Stringcpw=newString(zpassword.getBytes(),"GBK"); Stringcemail=newString(email.getBytes(),"GBK"); Stringsql="selectcnamefromgcustomerwherecname='"+cname+"'"; booleans=DB.selectMsg(sql); if(s) { Stringmsg="網(wǎng)絡(luò)有重名,請(qǐng)重新注冊(cè)?。?; request.setAttribute("msg",msg); this.getServletContext().getRequestDispatcher("/customerzc.jsp").forward(request,response); } else{ Stringsql0="insertintogcustomer(cname,cpw,cemail)"+"values('"+cname+"','"+cpw+"','"+cemail+"')"; intflag=DB.updateMeg(sql0); if(flag==0) { Stringmsg="注冊(cè)失敗,請(qǐng)重新注冊(cè)!!"; request.setAttribute("msg",msg); this.getServletContext().getRequestDispatcher("/customerzc.jsp").forward(request,response); } else{ session.setAttribute("user",cname); this.getServletContext().getRequestDispatcher("/pagination.jsp").forward(request,response); } }}5.2.3購物車使用登錄用戶可以選擇商品下方的加入備選,把想要購買的鮮花商品,放入購物車,這很像實(shí)際的超市購物。如果想立即結(jié)賬,將轉(zhuǎn)向訂單界面,查看已購買的商品列表,包括刪除,和添加商品數(shù)量的功能。在禮品數(shù)量文本框中填入數(shù)量可以更改響應(yīng)商品的數(shù)量。單擊“刪除”鏈接,就可以將此商品從到購物車刪除,同時(shí)總價(jià)格會(huì)發(fā)生改變。選擇加入備選,可以繼續(xù)進(jìn)行購物。在系統(tǒng)實(shí)現(xiàn)過程中,商品信息的存儲(chǔ),在整個(gè)的商品購買中沒有改變,這里使用了JSP中的內(nèi)置Session組件。它是訪問者登錄后從到達(dá)某個(gè)特定主頁到離開為止的那段時(shí)間,服務(wù)器端自動(dòng)為其分配一個(gè)用來儲(chǔ)存信息的全局變量的集合,以存儲(chǔ)購物信息。購物車界面如下圖5-5所示。流程圖結(jié)束No不購買選購花卉,點(diǎn)擊訂購,添加到購物車修改購物車,提交開始結(jié)束No不購買選購花卉,點(diǎn)擊訂購,添加到購物車修改購物車,提交開始點(diǎn)擊取消購買是否購買Yes點(diǎn)擊確認(rèn)購買登錄成功生成訂單圖5-5消費(fèi)者查看購物車流程圖代碼實(shí)現(xiàn):if(msg.equals("")) {//當(dāng)meg為空時(shí),代表庫存夠 intoid=DB.getID("ordergoodsmeg","oid"); for(Stringstr:goodsid) { intcount=cart.get(str);//得到商品數(shù)量 //得到庫存里商品的數(shù)量 Stringsqlx="selectgpricefromgoodsmessagewheregoodsid="+Integer.parseInt(str); sqlx=newString(sqlx.getBytes(),"GBK"); doublegprice=DB.selectPrice(sqlx); Stringsql="selectgamountfromgoodsmessagewheregoodsid="+Integer.parseInt(str); intga=DB.getSelectId(sql); Stringsqly="selectgoodsnamefromgoodsmessagewheregoodsid="+Integer.parseInt(str); sqly=newString(sqly.getBytes(),"GBK"); Stringgb=DB.selectAmount(sqly); Stringsqlz="insertintoordergoodsmeg(oid,goodsid,goodsname,gprice,orderamount,buytime)values(" +oid+","+str+",'"+gb+"',"+gprice+","+count+",now())"; sqlz=newString(sqlz.getBytes(),"GBK"); intflag=DB.updateMeg(sqlz); if(flag==0) { msg="對(duì)不起,訂單提交失敗!!!"; pageForward(msg,request,response); } else { inti=ga-count; Stringsql1="updategoodsmessagesetgamount="+i +"wheregoodsid="+Integer.parseInt(str); intf=DB.updateMeg(sql1); session.setAttribute("handlePage",handlePage); } } Stringsqldd="selectmax(oid)fromordergoodsmeg"; intorderid=DB.getSelectId(sqldd); request.setAttribute("orderid",orderid); Stringurl="/receive.jsp";//forward到要去的頁面 ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); } else {//提示用戶庫存不夠 request.setAttribute("msg",msg); this.getServletContext().getRequestDispatcher("/cart.jsp").forward(request,response); } } elseif(action.equals("saveRec")) { //收到各參數(shù) Stringorederid=request.getParameter("orderid"); Stringrecname=request.getParameter("recname"); Stringrecadr=request.getParameter("recadr"); Stringrectel=request.getParameter("rectel"); String[]recMsg=newString[3]; recMsg[0]=recname.trim(); recMsg[1]=recadr.trim(); recMsg[2]=rectel.trim(); //得到向訂單基本信息表中插入數(shù)據(jù)的sql Stringsqldd="selectmax(oid)fromordergoodsmeg"; inti=DB.getSelectId(sqldd); doubleoprice=handlePage.getAccount(); Stringcname=(String)session.getAttribute("user"); cname=newString(cname.getBytes(),"GBK");Stringupsql="insertintoordermeg(oid,cname,receivename,receiveadds,receivetel,"+ "allmoney,buytime)values("+i+",'"+cname+"','"+recMsg[0]+"','"+recMsg[1]+"','"+recMsg[2]+"',"+oprice+",now())"; upsql=newString(upsql.getBytes(),"GBK"); intflag=DB.updateMeg(upsql); Stringmsg=""; if(flag==1) { intmmname=Integer.parseInt(orederid); Stringsql="selectoid,receivename,receiveadds,receivetel,allmoney,zhuangtaifromordermegwhereoid='"+mmname+"'"; sql=newString(sql.getBytes(),"ISO-8859-1"); String[]vl=DB.getString(sql); if(vl.length==0) { msg="對(duì)不起,沒有訂單!"; pageForward(msg,request,response); } else { request.setAttribute("list",vl); session.setAttribute("handlePage",handlePage); Stringurl="/customerdd.jsp";//forward到要去的頁面 ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); } }5.2.4訂單查詢對(duì)于顧客的每一次網(wǎng)站上的購物訂單,系統(tǒng)都會(huì)生成一個(gè)對(duì)應(yīng)的定單號(hào),該定單號(hào)保存了購買商品用戶的詳細(xì)信息以及物流信息,在購買商品表中也會(huì)通過此定單號(hào)保存該次購買過程中的所有商品和數(shù)量等信息。所以,購買了商品的顧客可以隨時(shí)登錄系統(tǒng)通過自己的定單號(hào)查詢所買的商品是否已經(jīng)發(fā)貨,以及再次查看自己已經(jīng)買的所有商品信息。其流程圖如圖5-6所示登錄成功登錄成功點(diǎn)擊取消購買開始生成訂單點(diǎn)擊取消購買開始生成訂單選購商品,點(diǎn)擊購買,添加到購物車修改購物車,提交選購商品,點(diǎn)擊購買,添加到購物車修改購物車,提交填寫收貨人信息選擇付款方式No不購買填寫收貨人信息選擇付款方式No不購買Yes點(diǎn)擊確認(rèn)購買是否購買Yes點(diǎn)擊確認(rèn)購買是否購買結(jié)束結(jié)束圖5-6訂單提交流程訂單提交代碼的實(shí)現(xiàn):elseif(action.equals("tijiao")) { Stringmname=request.getParameter("oid").trim(); intmmname=Integer.parseInt(mname); Stringreceivename=request.getParameter("receivename").trim(); Stringreceiveadds=request.getParameter("receiveadds").trim(); Stringreceivetel=request.getParameter("receivetel").trim(); Stringsql="updateordermegsetreceivename='"+receivename+"',receiveadds='"+receiveadds+ "',receivetel='"+receivetel+"'whereoid="+mmname; sql=newString(sql.getBytes(),"gbk"); intf=DB.updateMeg(sql); Stringsqlr="selectoid,receivename,receiveadds,receivetel,allmoney,zhuangtaifromordermegwhereoid="+mmname; sqlr=newString(sqlr.getBytes(),"GBK"); String[]vg=DB.getString(sqlr); if(f==0) { Stringmsg="對(duì)不起,沒有訂單!"; pageForward(msg,request,response); } else { request.setAttribute("list",vg); session.setAttribute("handlePage",handlePage); Stringurl="/customerdd.jsp"; ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); }5.3管理員管理后臺(tái)數(shù)據(jù)界面5.3.1管理員的登陸管理員登錄流程圖如圖5-7所示。NONO管理員登錄輸入管理員賬號(hào)和密碼是否有誤管理員商品瀏覽重新登陸開始對(duì)商品的各種操作Yes圖5-7管理員登錄流程圖5.3.2商品添加商品的添加功能主要是描述物品的類別,價(jià)格,庫存等信息,只要管理員登陸后才能實(shí)現(xiàn)此功能,管理員的權(quán)限分為特殊與普通兩類。如圖5-8所示。流程圖開始開始結(jié)束添加成功輸入新信息是否存在存在管理員登錄成功選擇商品類別添加點(diǎn)擊確認(rèn)YesYesNONO圖5-8管理員添加商品類別流程圖5.3.3商品信息修改商品修改信息流程圖如圖5-9所示。開始開始輸入修改信息結(jié)束修改成功是否存在存在管理員登錄成功選擇商品修改點(diǎn)擊確認(rèn)YesYesNONO圖5-9管理員修改商品信息流程圖5.3.4訂單審查訂單審查包括查看所有訂單的物流狀態(tài),某個(gè)訂單的詳細(xì)資料,刪除某個(gè)訂單的功能,如圖5-10所示。點(diǎn)擊確定,進(jìn)行查詢點(diǎn)擊確定,進(jìn)行查詢開始結(jié)束輸入查詢條件管理員登錄成功圖5-10管理員查詢訂單流程圖部分訂單信息代碼實(shí)現(xiàn):elseif(action.equals("searchorder")) { Stringddfs=(String)session.getAttribute("ddfs"); if(ddfs==null) { ddfs="ordergl"; } Stringddtitle=""; Stringddmsg=""; if(ddfs.equals("ordergl")) { ddtitle=""; ddmsg=""; } elseif(ddfs.equals("orderyfs")) { ddtitle="andzhuangtai='已發(fā)送'"; ddmsg="已發(fā)送"; } elseif(ddfs.equals("orderwfs")) { ddtitle="andzhuangtai='未發(fā)送'"; ddmsg="未發(fā)送"; } Stringoid=request.getParameter("searchorder").trim(); Stringmsg=null; if(oid.equals("")) { msg="請(qǐng)輸入要查詢的訂單的訂單號(hào)??!"; } else { intss=Integer.parseInt(oid);Stringsql="selectoid,cname,receivename,receiveadds,receivetel,allmoney,"+ "zhuangtaifromordermegwhereoid="+ss+ddtitle; Stringsql11=newString(sql.getBytes(),"gbk"); Vector<String[]>vv=DB.getMessage(sql11); request.setAttribute("vv",vv); if(vv.size()==0) { msg="對(duì)不起,沒有"+oid+"號(hào)"+ddmsg+"訂單的信息!"; } } request.setAttribute("msg",msg); ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher("/orderdetail.jsp"); rd.forward(request,response); } elseif(action.equals("searchgoods")) { Stringsearchgoods=request.getParameter("searchgoods").trim(); spSearch.setShowPage(1); Stringsearchth=newString(searchgoods.getBytes(),"gbk");Stringsql="selectgoodsname,gtype,gprice,gdate,gamount,gimgurl,gintroduction," +"goodsidfromgoodsmessagewheregoodsnamelike'%"+searchth+"%'"; spSearch.setSql(sql); inttotolPage=DB.totolPage(sql); spSearch.setTotolPage(totolPage); Vector<String[]>vv=DB.selectPageMeg(1,sql); if(vv.size()==0) { Stringmsg="沒有查詢到相關(guān)信息!!"; request.setAttribute("msg",msg); } request.setAttribute("vv",vv); Stringurl="/goodsmd.jsp"; ServletContextsc=getServletContext(); RequestDispatcherrd=sc.getRequestDispatcher(url); rd.forward(request,response); }6花店功能測(cè)試6.1數(shù)據(jù)源的配置本系統(tǒng)連接數(shù)據(jù)庫采用的數(shù)據(jù)源連接池,因此需要對(duì)其進(jìn)行配置,具體步驟如下所示。在Tomcat安裝目錄下的lib目錄下添加MySQL數(shù)據(jù)庫的驅(qū)動(dòng)jar包,mysql-connector-java-5.1.7-bin.jar文件。在Tomcat安裝目錄下的conf目錄下server.xml中最后的“</host>”標(biāo)記之前添加如下配置:<Contextpath="/chaoshi"docBase="chaoshi" reloadable="true"crossContext="true"workDir=""> <Resourcename="jdbc/chaoshids" auth="Container" type="javax.sql.DataSource" maxActive="100"maxIdle="30"maxWait="10000" username="root"password="song" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/chaoshi"/> </Context>6.2系統(tǒng)調(diào)試界面預(yù)覽本系統(tǒng)的主要操作界面分成客戶端和管理端,分別為上網(wǎng)購買商品的客戶操作頁面和網(wǎng)上花店管理員操作頁面,具體如下。首先配置好數(shù)據(jù)源并啟動(dòng)Tomcat,在地址欄輸入“http://localhost:8080/chaoshi/”后進(jìn)入客戶端的首頁(如圖6-1所示),客戶可以再該頁面單擊按鈕或鏈接進(jìn)入相應(yīng)的頁面。圖6-1花店首頁客戶購買相應(yīng)商品后,單機(jī)“購物車”按鈕時(shí),就會(huì)進(jìn)入購物車管理頁面(如圖6-2所示)。客戶利用自己的賬號(hào)登陸后,在購物車頁面可以對(duì)購物車的商品進(jìn)行刪,改等操作,也可以返回到主頁面繼續(xù)購買商品。圖6-2購物車頁面當(dāng)用戶第一次瀏覽本網(wǎng)站,可以通過模糊查詢購買所想要的商品。如查詢商品中的百合如圖6-3所示。圖6-3搜索查詢測(cè)試(4)當(dāng)新用戶進(jìn)入系統(tǒng)首頁,還未注冊(cè)時(shí),單機(jī)“用戶注冊(cè)”按鈕就可以直接進(jìn)入注冊(cè)頁面,如果是舊用戶在已登錄的情況下,則彈出信息提示框,如圖6-4所示。圖6-4提示頁面(5)當(dāng)用戶登錄系統(tǒng)后,如果想修改密碼,單機(jī)“密碼重置”按鈕,就可以直接進(jìn)入相應(yīng)的頁面,如圖6-5示。圖6-5密碼重置頁面用戶的訂單填寫頁面,如圖6-6所示。圖6-6收貨人訂單頁面填寫(7)當(dāng)用戶填寫完訂購表單,單擊“確認(rèn)并提交”按鈕時(shí),便生成訂單了,生成訂單的時(shí)候需要顯示用戶購買的產(chǎn)品和收貨人等信息。生成訂單頁面如圖6-7所示。圖6-7生成訂單測(cè)試頁面(8)管理員在地址欄輸入“http://localhost:8080/chaoshi/admindl.jsp”后,就進(jìn)入管理員登錄頁面,單機(jī)“登錄”按鈕后,就進(jìn)入后臺(tái)管理系統(tǒng)頁面。如圖6-8,圖6-9所示。圖6-8后臺(tái)登錄頁面圖6-9后臺(tái)管理頁面(9)當(dāng)超級(jí)管理員分別單機(jī)“管理員添加”,“管理員刪除”,“管理員信息”,“密碼修改”連接后,就會(huì)進(jìn)入相應(yīng)功能頁面,如單擊“管理員添加”鏈接,就會(huì)進(jìn)入(如圖6-10所示)的添加新的管理員信息頁面。圖6-10添加管理員頁面(10)商品添加,進(jìn)入后臺(tái)管理頁面實(shí)現(xiàn)商品的添加功能,如圖6-11所示圖6-11添加商品頁面測(cè)試(11)當(dāng)用戶確定購買產(chǎn)品并成功生成訂單后,管理員可以隨時(shí)查詢已經(jīng)生成的訂單,查詢訂單金額,收貨人等信息。管理員可以在界面首部單擊“查詢訂單”去查看訂單信息。由于訂單包含的信息比較多,因此在用戶查詢訂單信息時(shí),首先給出訂單的一個(gè)列表,顯示每個(gè)訂單的概要信息,當(dāng)用戶單擊某個(gè)訂單的時(shí)候,再顯示該訂單包含的產(chǎn)品等詳細(xì)信息。正是考慮到這點(diǎn),在設(shè)計(jì)數(shù)據(jù)庫存儲(chǔ)時(shí)便把訂單分為訂單概要信息和訂單明細(xì)分別進(jìn)行存儲(chǔ)。顯示訂單概要信息的orderdetail.jsp頁面的執(zhí)行結(jié)果如圖6-12所示。圖6-12訂單概要信息顯示訂單概要信息就是從數(shù)據(jù)庫表ordergoodsmeg中查詢屬于登錄用戶的訂單,然后把訂單概要信息顯示在頁面中,并且在訂單號(hào)列提供鏈接,當(dāng)管理員在訂單號(hào)列單擊某個(gè)訂單號(hào)列后的鏈接時(shí)跳轉(zhuǎn)到ordergl.jsp頁面,由頁面ordergl.jsp顯示訂單的詳細(xì)信息。訂單詳細(xì)頁面ordergl.jsp的運(yùn)行結(jié)果如圖6-13所示。圖6-13訂單詳細(xì)頁面在訂單概要信息頁面ordergl.jsp中,通過在url地址傳遞訂單編號(hào)參數(shù)給頁面ordergl.jsp,在頁面ordergl.jsp首先獲得傳遞的參數(shù)訂單編號(hào),然后從數(shù)據(jù)庫表ordergoodsmeg查詢出訂單的所有概要信息,并在頁面顯示出來,在根據(jù)訂單編號(hào)從數(shù)據(jù)庫表chaoshi中查詢出該訂單的產(chǎn)品詳細(xì)信息,并在界面顯示出來。(12)已發(fā)送訂單信息測(cè)試,包含物品的詳細(xì)信息以及收貨人地址和聯(lián)系方式如圖6-14和6-15所示。圖6-13發(fā)送信息頁面測(cè)試圖6-14未發(fā)送訂單頁面測(cè)試總結(jié)通過努力,網(wǎng)上花店管理系統(tǒng)基本完成。系統(tǒng)實(shí)現(xiàn)了用戶注冊(cè)、登陸,鮮花訂購,管理員對(duì)客戶信息、訂購信息及訂單信息管理等基本功能。通過本系統(tǒng)的開發(fā),本人感受頗深,受益匪淺,獲得了許多寶貴的軟件開發(fā)經(jīng)驗(yàn),對(duì)將來的學(xué)習(xí)和工作都有極大的幫助。但同時(shí),由于個(gè)人經(jīng)驗(yàn)及能力尚欠不足,系統(tǒng)在技術(shù)實(shí)現(xiàn)上還有很多不盡如人意的地方。比如,一開始就編碼,沒有很好的做好概要設(shè)計(jì),加重了代碼修改及維護(hù)的工作量;JAVA公共類設(shè)計(jì)的不夠精煉,常用方法沒有完全集成到公共類中,導(dǎo)致經(jīng)常重復(fù)性編碼;只考慮技術(shù)的實(shí)現(xiàn),對(duì)美工考慮不足,頁面間的邏輯關(guān)系有時(shí)不是很合理等,這些問題都還有待進(jìn)一步優(yōu)化、完善。為此,通過本系統(tǒng)的開發(fā),對(duì)應(yīng)該如何合理、有效的進(jìn)行軟件開發(fā),做了一些個(gè)人體會(huì),總結(jié)如下:1、合理的開發(fā)原則創(chuàng)新原則,體現(xiàn)先進(jìn)性。計(jì)算機(jī)技術(shù)的發(fā)展十分迅速,要及時(shí)了解新技術(shù),使用新技術(shù),使目標(biāo)系統(tǒng)較原系統(tǒng)有質(zhì)的飛躍。2、科學(xué)的開發(fā)過程科學(xué)的開發(fā)過程從可行性研究開始,經(jīng)過可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試等主要階段。每一階段都要認(rèn)真完成。3、良好的編程習(xí)慣編寫程序要有良好的習(xí)慣,不可急功近利,盲目追求速度,而需統(tǒng)籌安排、考慮周到、有條不紊的進(jìn)行。在能完成同一功能的多種方案中,應(yīng)該選擇最有效率的一種方案。同時(shí),在軟件開發(fā)的過程中,也應(yīng)同步做好相應(yīng)文檔的編寫。致謝自從接受課題到現(xiàn)在完成畢業(yè)設(shè)計(jì)論文和系統(tǒng),陳老師給予了我們精心的指導(dǎo)和熱情的幫助,尤其在課題設(shè)計(jì)的前期準(zhǔn)備階段和數(shù)據(jù)庫的設(shè)計(jì)階段,指導(dǎo)老師提出了許多寶貴的設(shè)計(jì)意見,在最后的修改沖刺階段,陳老師也在百忙之中為我們提供了必要的幫助,使得我們可以順利的完成畢業(yè)設(shè)計(jì)工作。沒有老師的幫助,我們是不可能順利完成課題設(shè)計(jì)的,在此對(duì)陳老師表示衷心的感謝。我還要感謝在大學(xué)里,所有教過我的老師,我從他身上不僅學(xué)到了許多專業(yè)知識(shí),他們?cè)诠ぷ髦袊?yán)謹(jǐn)治學(xué)的態(tài)度和忘我的工作精神更值得我去學(xué)習(xí)。同時(shí),還要感謝與我朝夕相處的同學(xué)們,在共同生活和學(xué)習(xí)中,大家互相幫助和關(guān)心,給我留下了美好的回憶。參考文獻(xiàn)[1]施汝軍.網(wǎng)站JSP后臺(tái)解決方案.北京:人民郵電出版社,2000:12-60.[2]李剛.數(shù)據(jù)庫技術(shù)詳解.北京:化學(xué)工業(yè)出版社,2010:30-49.[3]李戰(zhàn).悟透JavaScript.北京:電子工業(yè)出版社,2008:12-90.[4]石志國.JSP網(wǎng)站開發(fā)詳解.北京:電子工業(yè)出版社,2007:8-30.[5]劉永純,郭立新.網(wǎng)頁開發(fā)手記.北京:電子工業(yè)出版社,2013:13-89.[6]楊永清.JavaScript動(dòng)態(tài)網(wǎng)頁開發(fā)詳解.北京:電子工業(yè)出版社,2008:14-30.[7]孫衛(wèi)琴,李洪成.Tomcat與JAVAWeb開發(fā)技術(shù)詳解.北京:電子工業(yè)出社,2004:40-78.[8]任泰明.基于B/S結(jié)構(gòu)的軟件開發(fā)技術(shù).西安:西安電子科技大學(xué)出版社,2006.7.[9]黃浩文,黃靜舒.JSP核心技術(shù)和電子商務(wù)應(yīng)用實(shí)例.機(jī)械工業(yè)出版社,2001.4[10]飛思科技產(chǎn)品研發(fā)中心.JSP應(yīng)用開發(fā)詳解.電子工業(yè)出版社,2002.1[11]師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.第3版.高等教育出版社,2002.5.[12]劉曉華等.J2EE企業(yè)級(jí)應(yīng)用開發(fā).電子工業(yè)出版社,2003.7.[13]柏亞軍.JSP編程基礎(chǔ)及應(yīng)用實(shí)例集錦.人民郵電出版社,2001.8.[14]孫衛(wèi)琴,李洪成.Tomcat與JAVAWeb開發(fā)技術(shù)詳解.電子工業(yè)出版社,2004:172-180.[15]任泰明.基于B/S結(jié)構(gòu)的軟件開發(fā)技術(shù).西安電子科技大學(xué)出版社,2006:52-67.[16]彭一明,張麗偉,劉子乾.挑戰(zhàn)JSP&ServletWeb2.0應(yīng)用開發(fā).機(jī)械工業(yè)出版社,2008.[17]MartyHsll.Servlet與JSP核心編程.清華大學(xué)出版社,2004:170-174.[18]張海藩.軟件工程導(dǎo)論(第四版).清華大學(xué)出版社,2003:11-39.[19]彭一明,張麗偉,劉子乾.挑戰(zhàn)JSP&ServletWeb2.0應(yīng)用開發(fā).機(jī)械工業(yè)出版社,2008.[20]張孝祥,張紅梅.JavaScript網(wǎng)頁開發(fā)—體驗(yàn)式學(xué)習(xí)教程.清華大學(xué)出版社,2004:25-78.[21]鄭阿奇.SQLServer實(shí)用教程(第2版)[M].北京:電子工業(yè)出版社.2005:37-89.基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究HY
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共交通車輛運(yùn)營管理合同3篇
- 2025年度柴油市場(chǎng)分析與預(yù)測(cè)服務(wù)合同范本4篇
- 專業(yè)設(shè)備銷售協(xié)議模板集(2024版)版
- 2025年廠區(qū)綠化生態(tài)教育推廣與培訓(xùn)服務(wù)協(xié)議4篇
- 2024年起重機(jī)研發(fā)與購銷合作項(xiàng)目合同范本3篇
- 二零二四家居建材店員工勞動(dòng)合同模板3篇
- 2025年度智能機(jī)器人技術(shù)研發(fā)合作協(xié)議4篇
- 2024版企業(yè)技術(shù)改造借款的合同范本
- 二零二五版醫(yī)療設(shè)備采購與租賃合同范本3篇
- 2024年04月吉林銀行總行投資銀行部2024年社會(huì)招考1名負(fù)責(zé)人筆試歷年參考題庫附帶答案詳解
- 人力資源外包投標(biāo)方案
- 宮腔鏡術(shù)后護(hù)理查房1
- 農(nóng)村勞動(dòng)力流動(dòng)對(duì)農(nóng)村居民消費(fèi)的影響研究
- 藏毛囊腫不伴有膿腫的護(hù)理查房
- 創(chuàng)新科技2024年的科技創(chuàng)新和產(chǎn)業(yè)升級(jí)
- 喜迎藏歷新年活動(dòng)方案
- 進(jìn)修人員培養(yǎng)考核鑒定簿
- 四年級(jí)上冊(cè)脫式計(jì)算400題及答案
- 2024年山東省春季高考技能考試汽車專業(yè)試題庫-上(單選題匯總)
- 前程無憂IQ測(cè)評(píng)題庫
- 《現(xiàn)代電氣控制技術(shù)》課件
評(píng)論
0/150
提交評(píng)論