愛(ài)鋒貝

 找回密碼
 立即注冊(cè)

只需一步,快速開始

扫一扫,极速登录

查看: 644|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于WEB的二手交易平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)(論文+源碼+視頻)

[復(fù)制鏈接]

1397

主題

1494

帖子

5884

積分

Rank: 8Rank: 8

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-1-1 09:36:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

一鍵注冊(cè),加入手機(jī)圈

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?立即注冊(cè)   

x
軟件設(shè)計(jì)報(bào)告
報(bào)告題目基于WEB的二手交易平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
Thesis TopicDesign and Implementation of Web - based Online flea market
2022年  11 月  1 日

目 錄
摘  要ii
Abstractiiii
1 緒論11
1.1 系統(tǒng)開發(fā)背景11
1.2 開發(fā)意義11
1.3 國(guó)內(nèi)外現(xiàn)狀11
1.4 本系統(tǒng)設(shè)計(jì)的內(nèi)容22
1.5 設(shè)計(jì)的步驟22
2  系統(tǒng)開發(fā)技術(shù)22
2.1 動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP2JSP2JSP2
2.2 框架SSH2SSH2SSH2
2.3 系統(tǒng)開發(fā)工具33
2.4 系統(tǒng)配置過(guò)程33
2.5 配置關(guān)鍵性問(wèn)題的解決33
2.5.1 系統(tǒng)性能調(diào)整44
2.5.2 數(shù)據(jù)庫(kù)編碼44
2.5.3 頁(yè)面字符集44
3 系統(tǒng)分析44
3.1 可行性分析44
3.1.1 技術(shù)可行性44
3.1.2 經(jīng)濟(jì)可行性55
3.1.3 可行性分析結(jié)論55
3.2 需求分析55
3.2.1 開發(fā)意圖55
3.2.2 功能需求55
3.2.3 數(shù)據(jù)流圖55
3.2.4 數(shù)據(jù)字典88
4  系統(tǒng)設(shè)計(jì)1111
4.1 系統(tǒng)的功能模塊設(shè)計(jì)1111
4.2 系統(tǒng)的工作流程1212
4.3 系統(tǒng)模塊詳細(xì)設(shè)計(jì)1414
5  數(shù)據(jù)庫(kù)設(shè)計(jì)2020
5.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)2020
5.1.1 實(shí)體屬性的定義2020
5.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)2222
6  系統(tǒng)實(shí)現(xiàn)2525
6.1 系統(tǒng)主頁(yè)面2525
6.2 非登錄用戶操作2525
6.2.1 用戶注冊(cè)2525
6.2.2 用戶登錄2626
6.2.3 找回密碼2727
6.2.4 查看商品信息2828
6.2.5 搜索商品2929
6.3 登錄用戶操作2929
6.3.1 購(gòu)物車2929
6.3.2 付款3030
6.3.3 更新個(gè)人信息3131
6.4 后臺(tái)管理3131
6.4.1 后臺(tái)登錄3131
6.4.2 后臺(tái)主頁(yè)面3232
6.4.3 新增商品種類3232
6.4.4 商品種類列表3333
6.4.5 新增商品3333
6.4.6 商品列表3434
6.4.7 訂單列表3434
6.4.8 訂單條件查詢3434
6.4.9 用戶列表3535
7  系統(tǒng)壓力測(cè)試3535
7.1 系統(tǒng)壓力測(cè)試工具及環(huán)境3535
7.2 錄制測(cè)試過(guò)程3636
7.2.1 建立線程組3636
7.2.2 建立HTTP請(qǐng)求默認(rèn)值3636
7.2.3 設(shè)置代理服務(wù)器3737
7.3 測(cè)試設(shè)置及啟動(dòng)3838
7.3.1 設(shè)置登錄參數(shù)3838
7.3.2 啟動(dòng)測(cè)試3939
7.4 測(cè)試結(jié)果3939
7.4.1 系統(tǒng)壓力測(cè)試聚合報(bào)告3939
7.4.2 系統(tǒng)壓力測(cè)試圖形結(jié)果4040
結(jié)  論4141
參考文獻(xiàn)4242
致 謝4343
附錄一:外文原文4444
附錄二:中文翻譯4848
1  緒論
1.1 系統(tǒng)開發(fā)背景
隨著網(wǎng)絡(luò)對(duì)人們生活和工作的影響日益增加,人們對(duì)網(wǎng)絡(luò)的依賴是越來(lái)越強(qiáng)烈,不論是個(gè)人還是企業(yè),都可以通過(guò)網(wǎng)絡(luò)渠道來(lái)進(jìn)行商品信息交流和買賣流通。網(wǎng)上商城由此產(chǎn)生,慢慢進(jìn)入了人們的視線當(dāng)中,越來(lái)越多的商家在網(wǎng)上建起在線商城,向消費(fèi)者提供一種新型的購(gòu)物方式。網(wǎng)上商城的出現(xiàn),使消費(fèi)者網(wǎng)上購(gòu)物的過(guò)程變得簡(jiǎn)單、方便、快捷。網(wǎng)上商城是一種具有交互功能的商業(yè)信息系統(tǒng),它在網(wǎng)絡(luò)上建立一個(gè)虛擬的購(gòu)物商城,使購(gòu)物變得快捷又輕松,因此網(wǎng)上商城近年來(lái)發(fā)展的異常迅速,網(wǎng)上商城對(duì)人們生活的影響也會(huì)越來(lái)越大。
不可否認(rèn),網(wǎng)上商城將是企業(yè)發(fā)展和個(gè)人生活所不可缺少的重要組成部分,而且在網(wǎng)上商城購(gòu)物會(huì)成為廣大群眾所能接受的最主要消費(fèi)方式。
1.2 開發(fā)意義
從系統(tǒng)的開發(fā)背景來(lái)看,開發(fā)一個(gè)網(wǎng)上商城系統(tǒng)會(huì)有以下幾項(xiàng)優(yōu)勢(shì):

  • 投資少,回收快。一項(xiàng)針對(duì)中國(guó)中小企業(yè)的情況調(diào)查顯示,個(gè)人在網(wǎng)下啟動(dòng)銷售公司需要大量的資金,而網(wǎng)上商城的成本非常小。在網(wǎng)上籌辦一家商店投資費(fèi)用很小,不用去租店面,不用囤積貨品,所需資金不會(huì)很多。網(wǎng)上商城比同等規(guī)模的門面商鋪“租金”要低得多,同時(shí)租金不會(huì)因?yàn)闋I(yíng)業(yè)面積的增加而增加,商家也不用為延長(zhǎng)營(yíng)業(yè)時(shí)間而增付額外的費(fèi)用。
  • 基本不需要占?jí)嘿Y金。傳統(tǒng)商店的進(jìn)貨資金少則幾千元,多則數(shù)萬(wàn)元,而網(wǎng)上商城則不需要積壓太多的資金。
  • 24小時(shí)營(yíng)業(yè)。網(wǎng)上商城延長(zhǎng)了傳統(tǒng)商店的營(yíng)業(yè)時(shí)間,一天24小時(shí)、一年365天不停業(yè)經(jīng)營(yíng),而且不需要很多專門人員值班。
  • 不受店面空間的限制。哪怕只是街邊小店,在網(wǎng)上卻可以擁有百貨大樓那么大的店面,只要投資者愿意,可以擺上成千上萬(wàn)種商品。
  • 不受地理位置影響。不管客戶距離網(wǎng)上商城有多遠(yuǎn),也不管顧客是國(guó)內(nèi)還是國(guó)外,只要客戶可以上網(wǎng),在網(wǎng)上商城就可以很方便地找到并購(gòu)買商品。
    1.3 國(guó)內(nèi)外現(xiàn)狀
    在美國(guó)、歐洲等信息化程度較高的國(guó)家,網(wǎng)上商城發(fā)展迅速,世界一流零售商,如沃爾瑪、梅西百貨、家得寶和薩克斯等紛紛躋身于網(wǎng)絡(luò)銷售行列。而在美國(guó)的家庭中,人們已經(jīng)越來(lái)越習(xí)慣網(wǎng)上購(gòu)物。網(wǎng)上購(gòu)物已經(jīng)成為美國(guó)、英國(guó)、日本等發(fā)達(dá)國(guó)家的一種消費(fèi)習(xí)慣。
    在我國(guó),網(wǎng)上購(gòu)物從無(wú)到有也不過(guò)十幾年時(shí)間。而在最近幾年時(shí)間,網(wǎng)上購(gòu)物變得火熱起來(lái),網(wǎng)上購(gòu)物迅速成為一種購(gòu)物時(shí)尚。目前國(guó)內(nèi)比較大型的網(wǎng)上購(gòu)物商城如淘寶、閑魚、京東、唯品會(huì)等,發(fā)展都是非常迅速,而隨著國(guó)內(nèi)計(jì)算機(jī)信息技術(shù)發(fā)展,網(wǎng)上購(gòu)物會(huì)更加快速的發(fā)展起來(lái),為消費(fèi)者和商家都提供更加廣闊的銷售平臺(tái)。因此,開發(fā)一個(gè)網(wǎng)上商城系統(tǒng)非常符合當(dāng)今社會(huì)的發(fā)展趨勢(shì)。
    1.4 本系統(tǒng)設(shè)計(jì)的內(nèi)容
    本設(shè)計(jì)設(shè)計(jì)的是一個(gè)線上二手交易平臺(tái),主要通過(guò)對(duì)現(xiàn)在網(wǎng)上商城發(fā)展形勢(shì)進(jìn)行分析,對(duì)開發(fā)工具進(jìn)行簡(jiǎn)介,對(duì)系統(tǒng)的可行性進(jìn)行分析、系統(tǒng)需求分析,然后進(jìn)行系統(tǒng)的總體設(shè)計(jì),設(shè)計(jì)數(shù)據(jù)庫(kù)中表的關(guān)系和表結(jié)構(gòu),最后完成系統(tǒng)的總體實(shí)現(xiàn),并對(duì)系統(tǒng)進(jìn)行測(cè)試,從而完成整個(gè)系統(tǒng)。
    1.5 設(shè)計(jì)的步驟
    第一章:緒論,主要介紹系統(tǒng)的開發(fā)背景、研究意義、國(guó)內(nèi)外現(xiàn)狀及設(shè)計(jì)的內(nèi)容。
    第二章:開發(fā)技術(shù),主要介紹了開發(fā)系統(tǒng)使用的技術(shù)及使用的工具。
    第三章:系統(tǒng)分析,主要包括系統(tǒng)的可行性分析,系統(tǒng)的需求分析。
    第四章:系統(tǒng)設(shè)計(jì),主要對(duì)系統(tǒng)功能模塊、工作流程和各模塊設(shè)計(jì)進(jìn)行介紹。
    第五章:數(shù)據(jù)庫(kù)設(shè)計(jì),主要介紹系統(tǒng)所需的數(shù)據(jù)表信息及表之間聯(lián)系。
    第六章:系統(tǒng)實(shí)現(xiàn),主要介紹了各個(gè)模塊的實(shí)現(xiàn)及關(guān)鍵代碼。
    第七章:系統(tǒng)測(cè)試,對(duì)系統(tǒng)進(jìn)行壓力測(cè)試,獲得測(cè)試結(jié)果。

    2  系統(tǒng)開發(fā)技術(shù)
    2.1 動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP
    JSP(Java Server Pages)是由Sun Microsystems公司(已經(jīng)被Oracle收購(gòu))倡導(dǎo)、許多公司參與建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的網(wǎng)頁(yè)HTML文件中插入Java程序段和JSP標(biāo)記,從而形成JSP文件。JSP技術(shù)相比其他技術(shù)有以下優(yōu)勢(shì):

    • 僅編寫一次,就可以在其他任何環(huán)境中運(yùn)行。除了系統(tǒng)之外,代碼不需要做任何更改。
    • 系統(tǒng)具有多平臺(tái)支持。JSP技術(shù)可以在眾多平臺(tái)上的環(huán)境中開發(fā),在任意的環(huán)境中進(jìn)行系統(tǒng)部署和擴(kuò)展。
    • 功能強(qiáng)大的開發(fā)工具支持。已經(jīng)具有很多優(yōu)秀的開發(fā)工具支持的JSP,其中許多都可以免費(fèi)得到,并且許多工具可以順利運(yùn)行于多種平臺(tái)下。


2.2 框架SSH
SSH是Struts+Hibernate+Spring的集成框架,SSH框架的特點(diǎn)有以下幾點(diǎn):
(1) Struts降低了系統(tǒng)的耦合度,使系統(tǒng)的邏輯結(jié)構(gòu)更加清晰。
(2) Hibernate是一種開源的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使系統(tǒng)操縱數(shù)據(jù)庫(kù)更加的方便。
(3) Spring框架中的IOC和AOP對(duì)系統(tǒng)進(jìn)行最大程度解耦合,使系統(tǒng)的各層之間的耦合度減小,極大地提高了系統(tǒng)開發(fā)效率。
    系統(tǒng)是集成SSH框架的,它的層次分別為:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。表示層采用JSP,Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),SSH框架各層次關(guān)系如圖2-1所示。
圖2-1 SSH框架層次圖
2.3 系統(tǒng)開發(fā)工具
系統(tǒng)主要開發(fā)工具如下:

  • Eclipse:Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。
  • Tomcat:它是一種具有運(yùn)行時(shí)占用系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡等功能優(yōu)點(diǎn)的輕量級(jí)應(yīng)用服務(wù)器。它的7.0版本實(shí)現(xiàn)了對(duì)JSP2.2的支持,而且增加了Web應(yīng)用內(nèi)存溢出偵測(cè)和預(yù)防功能,因此選用Tomcat7.0作為系統(tǒng)服務(wù)器。
  • MySQL:它是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),將數(shù)據(jù)保存到不同的表中,提高了訪問(wèn)速度并提高了靈活性。MySQL數(shù)據(jù)庫(kù)速度快、體積小、移植性能好,而且它是開源的,選用MySQL數(shù)據(jù)庫(kù)對(duì)系統(tǒng)的各方面都有很大好處。MySQL5.7版本提高了MySQL的性能、可用性、可擴(kuò)展性,因此選用MySQL5.7進(jìn)行系統(tǒng)的數(shù)據(jù)庫(kù)管理。
2.4 系統(tǒng)配置過(guò)程
系統(tǒng)配置詳細(xì)過(guò)程:

  • 在Eclipse中配置安裝好的的Java開發(fā)包和Tomcat服務(wù)器;
  • 安裝MySQL5.7,設(shè)置賬號(hào)密碼,用于數(shù)據(jù)庫(kù)連接,然后安裝Navicat for MySQL,使得數(shù)據(jù)庫(kù)可以在圖形頁(yè)面下進(jìn)行操作;
  • 在Eclipse中新建Web Project項(xiàng)目,項(xiàng)目名為webShopping;
  • 導(dǎo)入Struts2包,Spring包,Hibernate包,其中Struts2的配置文件為Struts.xml,Spring的配置文件為bean.xml,使用bean.xml文件進(jìn)行數(shù)據(jù)庫(kù)連接池的配置;
  • 導(dǎo)入外部的MySQL驅(qū)動(dòng)包,用于數(shù)據(jù)庫(kù)連接。
2.5 配置關(guān)鍵性問(wèn)題的解決
上述配置正確后,僅僅可以成功連接,所以還需要解決一些關(guān)鍵問(wèn)題才能更好的運(yùn)行程序。

2.5.1 系統(tǒng)性能調(diào)整
在對(duì)系統(tǒng)性能進(jìn)行調(diào)整后才能更加快速穩(wěn)定運(yùn)行系統(tǒng)。主要內(nèi)容如下:
(1) 禁止Tomcat的自動(dòng)重載  
為了節(jié)約開發(fā)時(shí)間,在開發(fā)階段Tomcat容器提供自動(dòng)重載功能,方便在修改Java代碼后不需要重新啟動(dòng)服務(wù)。但是,在生產(chǎn)環(huán)境下面,卻占用了大量開銷,因?yàn)檫M(jìn)行了完全沒(méi)有必要的重新載入操作,所以帶來(lái)了很不好的性能影響。同時(shí),在部分類載入,部分類載入的時(shí)候也可能帶來(lái)各種難以處理的沖突。因此在J2EE的生產(chǎn)環(huán)境下關(guān)閉自動(dòng)載入功能可以得到更好的性能。
(2) 控制HttpSession  
在默認(rèn)情況下,不要在JSP頁(yè)面中創(chuàng)建HttpSessions對(duì)象,JSP頁(yè)面默認(rèn)會(huì)自動(dòng)創(chuàng)建HttpSessions,如果JSP頁(yè)面中不需要HttpSessions,為了節(jié)省一些性能,使用下面的頁(yè)面指令避免自動(dòng)創(chuàng)建HttpSessions對(duì)象:  <%@ page session="false"%>。
2.5.2 數(shù)據(jù)庫(kù)編碼
為了處理亂碼,數(shù)據(jù)庫(kù)應(yīng)和頁(yè)面統(tǒng)一使用UTF-8編碼處理。在使用Navicat新建數(shù)據(jù)庫(kù)時(shí),使用的字符集一項(xiàng)選擇:utf8 -- UTF-8 Unicode。
在進(jìn)行數(shù)據(jù)庫(kù)連接時(shí),需要使用參數(shù)characterEncoding,參數(shù)值為UTF-8,例如連接的數(shù)據(jù)庫(kù)為WebShopping,那么在配置數(shù)據(jù)庫(kù)連接時(shí),使用的URL應(yīng)該為: jdbc:mysql://localhost:3306/webShopping?useUnicode=true&characterEncoding=UTF-8。
2.5.3 頁(yè)面字符集
在每個(gè)JSP頁(yè)面中,都要聲明使用UTF-8這一字符集,在每個(gè)JSP頁(yè)面的最上都要加上這一句:<%@ page language="java" contentType="text/html;charset=UTF-8"%>,這樣才能夠保證每個(gè)JSP頁(yè)面中的中文顯示正常不出現(xiàn)亂碼。
3  系統(tǒng)分析
3.1 可行性分析
開發(fā)任何一個(gè)基于計(jì)算機(jī)的系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在接受項(xiàng)目之前,必須根據(jù)客戶可能提供的時(shí)間和資源條件進(jìn)行可行性研究。這樣就可以避免人力、物力、財(cái)力上的浪費(fèi)。項(xiàng)目風(fēng)險(xiǎn)越大,開發(fā)高質(zhì)量軟件的可行性就越小。
3.1.1 技術(shù)可行性
硬件、軟件要求不高,目前市場(chǎng)上的一般計(jì)算機(jī)軟硬件都能滿足系統(tǒng)開發(fā)要求。運(yùn)用的編程軟件主要有Eclipse,使用JSP和SSH框架技術(shù),數(shù)據(jù)庫(kù)采用MySQL。

  • 當(dāng)前JSP是一種應(yīng)用廣泛的技術(shù),實(shí)現(xiàn)了Html和Java的集成;SSH框架是Struts + Hibernate + Spring的集成框架,是目前流行的一種Web應(yīng)用程序開源框架。
  • 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既可以在Linux下運(yùn)行,也可以在其他操作系統(tǒng)上運(yùn)行。
  • 維護(hù)工作方便,一般具有一定軟件開發(fā)經(jīng)驗(yàn)的人員,都可以在短時(shí)間內(nèi)掌握維護(hù)工作。
3.1.2 經(jīng)濟(jì)可行性
二手交易平臺(tái)系統(tǒng)的維護(hù)由程序人員即可完成,商家來(lái)進(jìn)行對(duì)二手交易平臺(tái)的訂單、用戶的信息來(lái)管理,不必使用大量的銷售人員與客戶面對(duì)面的交流,節(jié)約了人員工資開支的成本。而在銷售業(yè)績(jī)上,網(wǎng)上商城并不比實(shí)體商店的銷售業(yè)績(jī)差,因此在經(jīng)濟(jì)上是可行的。
3.1.3 可行性分析結(jié)論
經(jīng)過(guò)以上對(duì)該項(xiàng)目進(jìn)行各方面問(wèn)題的分析,開發(fā)人員認(rèn)為此項(xiàng)目的實(shí)現(xiàn)可以滿足用戶對(duì)商品的需要,方便用戶與商家的交流,減少商家實(shí)體店面的開支,減少實(shí)體店鋪對(duì)土地的浪費(fèi)等,并且在技術(shù)和經(jīng)濟(jì)等方面均可行,確定本系統(tǒng)可以立項(xiàng)開發(fā)。
3.2 需求分析
需求分析指在建立一個(gè)新的系統(tǒng)時(shí),確定系統(tǒng)的目的、范圍、定義和功能時(shí)所要做的所用工作,需求分析是軟件工程中的一個(gè)關(guān)鍵過(guò)程。需求分析階段的任務(wù)是確定系統(tǒng)的功能。
3.2.1 開發(fā)意圖
本系統(tǒng)適用于商家在網(wǎng)上進(jìn)行閑置商品銷售,實(shí)現(xiàn)了商家的上架下架物品,修改商品信息,添加刪除商品,用戶管理功能等。極大地節(jié)省了商家對(duì)實(shí)體店鋪的管理,物品的展示使用圖片、視頻信息便可。對(duì)客戶而言,可以實(shí)現(xiàn)對(duì)商品的瀏覽,商品價(jià)格的了解、下單、購(gòu)買等功能,方便了商家與客戶之間的交流。
3.2.2 功能需求
在需求調(diào)查的基礎(chǔ)上,結(jié)合網(wǎng)上商城系統(tǒng)的總體目標(biāo),對(duì)用戶提出的需求從信息系統(tǒng)目標(biāo)、業(yè)務(wù)功能、技術(shù)性能等方面分析,最終確定可行的、合理的系統(tǒng)功能需求。
根據(jù)以上分析,確定系統(tǒng)主要功能需求:

  • 登錄功能:用戶輸入用戶名和密碼,進(jìn)行登錄驗(yàn)證。
(2) 注冊(cè)功能:可以查詢用戶名是否已經(jīng)存在,對(duì)注冊(cè)信息進(jìn)行驗(yàn)證。
(3) 商品瀏覽:可以查詢商品,顯示商品詳情,提供購(gòu)買鏈接。
(4) 購(gòu)物車管理:欲購(gòu)買商品可以增添到購(gòu)物車,也可以從購(gòu)物車刪除商品。
(5) 訂單查詢:用戶登錄后可以下訂單,用戶登錄后也可以查看自己的訂單。
(6) 商品種類管理:管理員可以對(duì)商品種類進(jìn)行添加、刪除操作。
(7) 商品管理:管理員可以添加商品、刪除商品,查看所有商品。
(8) 訂單管理:管理員登錄后可以對(duì)訂單進(jìn)行管理。
(9) 用戶管理:管理員可以管理注冊(cè)用戶信息。
3.2.3 數(shù)據(jù)流圖
數(shù)據(jù)流圖是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。在本系統(tǒng)中,沒(méi)有登錄的用戶提交注冊(cè)信息、提交登錄信息,登錄后可以購(gòu)買商品、提交訂單、修改個(gè)人信息。管理員可以對(duì)商品信息、訂單信息、用戶信息進(jìn)行管理。這其中涉及到了對(duì)各個(gè)數(shù)據(jù)庫(kù)的信息處理。對(duì)本系統(tǒng)進(jìn)行分析,可以得到以下幾個(gè)數(shù)據(jù)流圖:

  • 網(wǎng)上商城系統(tǒng)頂層數(shù)據(jù)流圖如圖3-3所示。
圖3-3 二手交易平臺(tái)系統(tǒng)頂層數(shù)據(jù)流圖
(2) 二手交易平臺(tái)系統(tǒng)第一層數(shù)據(jù)流圖如圖3-4所示。


圖3-4 二手交易平臺(tái)系統(tǒng)第一層數(shù)據(jù)流圖
(3) 用戶信息管理數(shù)據(jù)流圖如圖3-5所示。
圖3-5 用戶管理數(shù)據(jù)流圖
(4) 商品管理數(shù)據(jù)流圖如圖3-6所示。
圖3-6 商品管理數(shù)據(jù)流圖
3.2.4 數(shù)據(jù)字典
數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典是數(shù)據(jù)流圖上所有的成分的定義和解釋的文字的集合,它最重要的用途是供人查詢對(duì)不了解的條目的解釋。
數(shù)據(jù)字典主要的組成有:數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)存儲(chǔ)、處理過(guò)程。根據(jù)對(duì)本系統(tǒng)的數(shù)據(jù)流圖的分析,本系統(tǒng)的數(shù)據(jù)字典的主要內(nèi)容如下:

  • 關(guān)鍵部分?jǐn)?shù)據(jù)項(xiàng)(僅對(duì)關(guān)鍵數(shù)據(jù)項(xiàng)進(jìn)行描述)。關(guān)鍵部分?jǐn)?shù)據(jù)項(xiàng)如表3-1所示。
數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)描述
用戶ID用戶的編號(hào)
用戶名用戶登錄賬號(hào)
用戶密碼用戶登錄密碼
用戶姓名用戶的姓名
郵寄地址用戶接收商品的地址
商品名稱商品的名稱
商品種類商品的種類
商城價(jià)格商品在商城的售價(jià)
剩余數(shù)量商品的剩余數(shù)量
商品圖片商品的圖片地址
訂單編號(hào)訂單的編號(hào)
是否付款用戶是否已經(jīng)付款
是否發(fā)貨商城是否已經(jīng)發(fā)貨
表3-1 關(guān)鍵部分?jǐn)?shù)據(jù)項(xiàng)



  • 數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。本系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu)如下所示:
    ① 用戶信息的數(shù)據(jù)結(jié)構(gòu)如下:
    數(shù)據(jù)結(jié)構(gòu):用戶
    數(shù)據(jù)項(xiàng)說(shuō)明:用戶的各項(xiàng)信息
    數(shù)據(jù)項(xiàng)組成:用戶ID+用戶名+用戶姓名+用戶密碼+用戶性別+用戶電話+郵編+郵寄地址+電子郵件
    ② 商品信息的數(shù)據(jù)結(jié)構(gòu)如下:
    數(shù)據(jù)結(jié)構(gòu):商品
    數(shù)據(jù)項(xiàng)說(shuō)明:商品的各項(xiàng)信息
    數(shù)據(jù)項(xiàng)組成: 商品編號(hào)+商品名稱+商品圖片+商品種類+商品描述+商品廠商+商品原價(jià)+商城價(jià)格+商品總量+剩余數(shù)量
    ③ 訂單信息的數(shù)據(jù)結(jié)構(gòu)如下:
    數(shù)據(jù)結(jié)構(gòu):訂單
    數(shù)據(jù)項(xiàng)說(shuō)明:訂單的信息
    數(shù)據(jù)項(xiàng)組成:訂單編號(hào)+商品信息+用戶名+用戶備注+提交時(shí)間+總金額+是否付款+是否發(fā)貨+發(fā)貨時(shí)間+訂單流水號(hào)
    ⑤ 管理員的數(shù)據(jù)結(jié)構(gòu)如下:
    數(shù)據(jù)結(jié)構(gòu):管理員
    數(shù)據(jù)項(xiàng)說(shuō)明:管理員的信息
    數(shù)據(jù)項(xiàng)組成:管理員編號(hào)+管理員用戶名+管理員密碼
    ⑥ 商品種類的數(shù)據(jù)結(jié)構(gòu)如下:
    數(shù)據(jù)結(jié)構(gòu):商品種類
    數(shù)據(jù)項(xiàng)說(shuō)明:商品種類的信息
    數(shù)據(jù)項(xiàng)組成:商品種類名稱+商品種類編號(hào)
  • 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)的傳輸路徑。本系統(tǒng)的數(shù)據(jù)流主要有:
① 用戶登錄數(shù)據(jù)流如下:
數(shù)據(jù)流名稱:用戶登錄
說(shuō)明:用戶登錄輸入的賬號(hào)和密碼
數(shù)據(jù)流來(lái)源:用戶信息表
數(shù)據(jù)流去向:用戶信息表
組成:用戶
平均數(shù)據(jù)量:100次/每小時(shí)
高峰期流量:400次/每小時(shí)(商品優(yōu)惠活動(dòng)期間)
② 用戶注冊(cè)數(shù)據(jù)流如下:
數(shù)據(jù)流名稱:用戶注冊(cè)
說(shuō)明:用戶注冊(cè)信息
數(shù)據(jù)流來(lái)源:用戶信息表
數(shù)據(jù)流去向:用戶信息表
組成:用戶
平均數(shù)據(jù)量:20次/每小時(shí)
高峰期流量:50次/每小時(shí)
③ 用戶信息更新數(shù)據(jù)流如下
數(shù)據(jù)流名稱:用戶信息更新
說(shuō)明:用戶更新個(gè)人信息
數(shù)據(jù)流來(lái)源:用戶信息表
數(shù)據(jù)流去向:用戶信息表
組成:用戶
平均數(shù)據(jù)量:10次/每小時(shí)
高峰期流量:20次/每小時(shí)(商品優(yōu)惠活動(dòng)期間)
④ 訂單提交數(shù)據(jù)流如下:
數(shù)據(jù)流名稱:提交訂單
說(shuō)明:用戶提交訂單信息
數(shù)據(jù)流來(lái)源:用戶信息表
數(shù)據(jù)流去向:訂單信息表
組成:訂單
平均數(shù)據(jù)量:30次/每小時(shí)
高峰期流量:50次/每小時(shí)(商品優(yōu)惠活動(dòng)期間)
⑤ 添加商品數(shù)據(jù)流如下:
數(shù)據(jù)流名稱:添加商品
說(shuō)明:管理員添加商品信息
數(shù)據(jù)流來(lái)源:管理員信息表
數(shù)據(jù)流去向:商品信息表
組成:商品
平均數(shù)據(jù)量:20次/每天
高峰期流量:50次/每天(進(jìn)貨種類較多時(shí))
4  系統(tǒng)設(shè)計(jì)
4.1 系統(tǒng)的功能模塊設(shè)計(jì)
二手交易平臺(tái)系統(tǒng)由前臺(tái)管理、后臺(tái)管理兩部分組成。
前臺(tái)管理:該部分主要是用戶對(duì)商品的查詢等功能,用戶沒(méi)有注冊(cè)可以實(shí)現(xiàn)商品的查詢和商品信息的查看;用戶注冊(cè)后就可以進(jìn)行添加商品到購(gòu)物車、從購(gòu)物車刪除商品、訂單提交、個(gè)人信息更新等操作。
后臺(tái)管理:該部分主要對(duì)商城內(nèi)的一些基礎(chǔ)數(shù)據(jù)進(jìn)行有效管理,包括商品管理、會(huì)員管理、訂單管理等。

  • 網(wǎng)上商城系統(tǒng)的前臺(tái)系統(tǒng)框架圖如圖4-1所示。



圖4-1 前臺(tái)系統(tǒng)框架圖
前臺(tái)主要功能介紹:
① 搜索商品:用戶不用登錄可以輸入商品的名稱來(lái)查看需要查詢的商品,而且可以查看商品的詳細(xì)信息,如生產(chǎn)廠商、剩余數(shù)量、介紹等。
② 分類查詢:用戶可以按分類來(lái)查看該分類的商品。
③ 用戶注冊(cè):用戶可以輸入注冊(cè)信息來(lái)注冊(cè),用戶可以檢查用戶名是否存在,用戶注冊(cè)信息沒(méi)有錯(cuò)誤則可正確注冊(cè)(不要使用中文名稱來(lái)注冊(cè))。
④ 用戶登錄:用戶輸入登錄名和密碼進(jìn)行登錄,如果用戶名和密碼錯(cuò)誤則無(wú)法登錄。
⑤ 更新信息:用戶登錄后可以查看個(gè)人信息并更新個(gè)人信息,還可以修改密碼。
⑧ 購(gòu)物車:用戶登錄后就可以購(gòu)物,可以把商品加入到購(gòu)物車,或者把商品從購(gòu)物車刪除,如果商品數(shù)量為0則無(wú)法加入到購(gòu)物車。
⑨ 提交訂單:用戶把商品添加到購(gòu)物車后即可提交訂單,訂單提交后用戶可以進(jìn)行付款(本系統(tǒng)為用戶模擬了一個(gè)賬戶,用于用戶購(gòu)物,用戶賬戶余額不足則無(wú)法付款)。
⑩ 查看訂單:用戶可以查看自己的訂單。

  • 網(wǎng)上商城系統(tǒng)的后臺(tái)系統(tǒng)框架圖如圖4-2所示。


圖4-2 后臺(tái)系統(tǒng)框架圖
后臺(tái)主要功能介紹:
① 商品種類管理:管理登錄后臺(tái)后可以對(duì)商品種類進(jìn)行添加、刪除。添加時(shí)如果商品種類已經(jīng)存在會(huì)提示添加錯(cuò)誤。
② 商品管理:管理員對(duì)商品進(jìn)行添加、刪除操作,如果商品已經(jīng)存在,添加時(shí)會(huì)提示商品已經(jīng)存在。
③ 訂單管理:管理員可以查詢訂單,查看所有訂單信息。
④ 用戶管理:管理員可以查詢用戶信息,管理用戶信息。
⑥ 系統(tǒng)管理:管理員可以修改登錄密碼,安全退出。
4.2 系統(tǒng)的工作流程

  • 二手交易平臺(tái)系統(tǒng)前臺(tái)的工作流程如圖4-3所示。
    圖4-3 前臺(tái)工作流程圖
  • 二手交易平臺(tái)系統(tǒng)后臺(tái)的工作流程如圖4-4所示。
圖4-4 后臺(tái)工作流程圖
4.3 系統(tǒng)模塊詳細(xì)設(shè)計(jì)

  • 用戶注冊(cè)
    用戶注冊(cè)是用戶想要購(gòu)買商品所必須進(jìn)行的,用戶注冊(cè)需要填寫正確的信息,用戶賬戶一旦注冊(cè)就不能修改,用戶的其他信息可以修改。用戶填寫信息需要正確填寫各項(xiàng)信息,如收貨地址,用戶下訂單后用戶的收貨地址如果是錯(cuò)誤的則無(wú)法正確發(fā)貨的。用戶注冊(cè)后,使用用戶名和密碼登錄系統(tǒng),可以進(jìn)行購(gòu)物、下訂單、提交留言操作。用戶注冊(cè)的流程圖如圖4-5所示。
    圖4-5 用戶注冊(cè)流程圖
  • 用戶登錄
    用戶登錄時(shí)需要輸入用戶名和密碼,系統(tǒng)對(duì)用戶輸入信息進(jìn)行驗(yàn)證,如果用戶輸入信息錯(cuò)誤則需要重新輸入,用戶輸入正確則可以成功登錄,跳轉(zhuǎn)到首頁(yè),顯示用戶常用操作例如修改密碼,修改信息,退出等。用戶如果忘記密碼可以通過(guò)查找密碼來(lái)重新設(shè)置密碼。用戶登錄流程圖如圖4-6所示。
    圖4-6 用戶登錄流程圖
  • 用戶信息修改
    用戶登錄后可以修改個(gè)人信息,修改個(gè)人信息后需要重新登錄才能查看到更新之后的信息。用戶登錄后可以修改密碼,重新登錄需要使用修改后的密碼才能登錄。用戶信息修改流程圖如圖4-7所示。
    圖4-7 用戶信息修改流程圖

        用戶修改密碼流程圖如圖4-8所示。
    圖4-8 用戶修改密碼流程圖
  • 用戶找回密碼
    用戶如果忘記密碼,可以通過(guò)輸入注冊(cè)時(shí)的信息來(lái)重設(shè)密碼。如果輸入的注冊(cè)信息錯(cuò)誤則無(wú)法重設(shè)密碼,只有輸入正確的注冊(cè)信息才能進(jìn)行密碼重設(shè)。用戶找回密碼的流程圖如圖4-9所示。
    圖4-9 用戶找回密碼流程圖
  • 用戶查看商品
    用戶不需要登錄就可以搜索商品,查看商品詳細(xì)信息。用戶可以通過(guò)搜索商品名稱來(lái)搜索商品,或者商品分類來(lái)查看該種類的商品。用戶查看商品流程圖如圖4-10所示。
    圖4-10 用戶查看商品流程圖

  • 添加到購(gòu)物車
用戶登錄后可以把商品添加到購(gòu)物車,也可以對(duì)購(gòu)物車商品進(jìn)行刪除。如果商品的剩余數(shù)量為0則無(wú)法把商品添加到購(gòu)物車。添加到購(gòu)物車流程如圖4-11所示。
圖4-11 添加到購(gòu)物車流程圖
(8) 管理商品
管理員登錄后臺(tái)后,可以對(duì)商品進(jìn)行管理,添加、刪除商品。添加時(shí)如果商品已經(jīng)存在則無(wú)法添加。管理商品流程圖如圖4-13所示。
圖4-13 管理商品流程圖

(9) 管理商品種類
管理員登錄后臺(tái)后,可以對(duì)商品種類進(jìn)行管理,添加和刪除商品種類。如果添加時(shí)商品種類已經(jīng)存在則無(wú)法添加。管理商品種類流程圖如圖4-14所示。
圖4-14 管理商品種類流程圖
(10) 系統(tǒng)管理
管理員登錄后,可以修改登錄密碼、退出系統(tǒng)。系統(tǒng)管理流程圖如圖4-15所示。
圖4-15 系統(tǒng)管理流程圖
5  數(shù)據(jù)庫(kù)設(shè)計(jì)
5.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì)
數(shù)據(jù)庫(kù)概念設(shè)計(jì)是根據(jù)對(duì)系統(tǒng)的分析、系統(tǒng)設(shè)計(jì),規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體。描述概念模型的工具主要是E-R圖。根據(jù)對(duì)本系統(tǒng)的分析,規(guī)劃出本系統(tǒng)所需要的實(shí)體,具體有:用戶、商品、商品種類、管理員、訂單。
5.1.1 實(shí)體屬性的定義

  • 用戶實(shí)體擁有的屬性有用戶ID、用戶名、用戶密碼、性別、姓名、電話、郵寄地址和電子郵箱這八個(gè)屬性。用戶實(shí)體屬性如圖5-1所示。



圖5-1 用戶實(shí)體屬性圖

  • 商品實(shí)體擁有的屬性有商品ID、商品名稱、商品種類、商品圖片、商品描述、商品廠商、商城價(jià)格、商品原價(jià)、總數(shù)量和剩余數(shù)量這十個(gè)屬性。商品實(shí)體屬性如圖5-2所示。



圖5-2 商品實(shí)體屬性圖

  • 商品種類實(shí)體擁有的屬性有商品種類和商品種類名稱這兩個(gè)屬性。商品種類實(shí)體屬性如圖5-3所示。



圖5-3 商品種類實(shí)體屬性圖

  • 訂單實(shí)體擁有的屬性有訂單ID、訂單用戶名、商品、提交時(shí)間、發(fā)貨時(shí)間、總金額、是否發(fā)貨和是否付款這個(gè)八個(gè)屬性。訂單實(shí)體屬性如圖5-4所示。



圖5-4 訂單實(shí)體屬性圖

  • 管理員實(shí)體擁有的屬性有管理員ID、管理員用戶名和管理員密碼這三個(gè)屬性。管理員實(shí)體屬性如圖5-5所示。


圖5-5 管理員實(shí)體屬性圖
5.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)

  • 用戶信息表(users)
    用戶信息表:用于記錄用戶ID、用戶名、用戶姓名、用戶密碼、用戶性別、用戶電話、商品郵寄地址和用戶電子郵件等信息。用戶信息表的內(nèi)容如表6-1所示。
字段名數(shù)據(jù)類型約束條件是否可空默認(rèn)值注釋
userIdint(20)主鍵1用戶ID(自增)
usernamevarchar(50)無(wú)用戶名
passwordvarchar(50)無(wú)用戶密碼
namevarchar(50)無(wú)用戶姓名
sexvarchar(50)無(wú)用戶性別
表6-1 用戶信息表

  • 商品信息表(commoditys)
商品信息表:用于記錄商品編號(hào)、商品種類、商品名稱、圖片商品描述、商品廠商,商品原價(jià)格,商城出售價(jià)格,商品總數(shù)量和商品剩余數(shù)量等信息。商品信息表的內(nèi)容如表6-2所示。
字段名數(shù)據(jù)類型約束條件是否可空默認(rèn)值注釋
commodityIdint(20)主鍵1商品編號(hào)(自增)
commodityClassvarchar(50)外鍵無(wú)商品種類
commodityNamevarchar(50)無(wú)商品名稱
manufacturervarchar(50)無(wú)商品廠商
commodityDepictvarchar(255)無(wú)商品描述
commodityPricedouble(20)無(wú)商品原價(jià)
webShopPricedouble(20)無(wú)商城價(jià)格
commodityAmountint(50)無(wú)商品總量
commodityLeaveNumint(50)無(wú)剩余數(shù)量
imagevarchar(255)無(wú)商品圖片
表6-2商品信息表

(3) 商品種類信息表(commodityclasses)
商品種類信息表:用于記錄商品種類的編號(hào),商品種類名稱等信息。商品種類信息表的內(nèi)容如表6-3所示。
表6-3商品種類信息表
字段名數(shù)據(jù)類型約束條件是否可空默認(rèn)值注釋
commodityIdint(20)主鍵1商品種類編號(hào)(自增)
commodityClassvarchar(50)無(wú)商品種類名稱
(4) 訂單信息表(orderform)
訂單信息表:用于記錄訂單的編號(hào),用戶信息,訂單提交時(shí)間,發(fā)貨時(shí)間,總金額,買家備注,買家是否付款,是否發(fā)貨等信息。訂單信息表的內(nèi)容如表6-4所示。
表6-4 訂單信息表
字段名數(shù)據(jù)類型約束條件是否可空默認(rèn)值注釋
orderFormIdint(20)主鍵1訂單編號(hào)(自增)
usernamevarchar(20)外鍵無(wú)用戶名
commodityvarchar(50)外鍵無(wú)商品信息
submitTimevarchar(50)無(wú)提交時(shí)間
consignmentTimevarchar(50)無(wú)發(fā)貨時(shí)間
totalPricevarchar(50)無(wú)總金額
remarkvarchar(50)無(wú)用戶備注
isPayoffvarchar(10)無(wú)是否付款
isConsignmentvarchar(10)無(wú)是否發(fā)貨
orderFormNumbigint(20)無(wú)訂單流水號(hào)
(5) 管理員信息表(admins)
管理員信息表:用于記錄管理員編號(hào),管理員用戶名,管理員密碼等信息。管理員信息表內(nèi)容如表6-5所示。
字段名數(shù)據(jù)類型約束條件是否可空默認(rèn)值注釋
adminIdint(20)主鍵1管理員編號(hào)(自增)
adminNamevarchar(255)無(wú)管理員用戶名
adminPasswordvarchar(255)無(wú)管理員密碼
表6-5管理員信息表
6  系統(tǒng)實(shí)現(xiàn)
6.1 系統(tǒng)主頁(yè)面
系統(tǒng)主要使用淡色調(diào),顏色不會(huì)很刺眼,不會(huì)使客戶感到反感。系統(tǒng)頁(yè)面簡(jiǎn)潔,上方的導(dǎo)航則包括用戶登錄、用戶注冊(cè)、留言板等信息,下方顯示商品種類列表、上架商品、商城公告、用戶登錄框等信息,用戶可以通過(guò)左側(cè)導(dǎo)航欄查詢每個(gè)種類的商品,也可以通過(guò)搜索來(lái)查找商品。系統(tǒng)主頁(yè)面如圖6-1所示。


圖6-1 系統(tǒng)主頁(yè)面
系統(tǒng)主頁(yè)的商品分類需要通過(guò)請(qǐng)求來(lái)獲取商品種類列表。
獲取商品種類列表的關(guān)鍵代碼如下:
public String execute() throws Exception {
Map request = (Map) ActionContext.getContext().get("request");
commodityClasses = commodityClassService.findAllCommodityClasses();
request.put("listCommodityClasses", commodityClasses); //列表信息保存到listCommodityClasses中
return "success"; }
6.2 非登錄用戶操作
6.2.1 用戶注冊(cè)
用戶可通過(guò)注冊(cè)成為商城會(huì)員,點(diǎn)擊用戶注冊(cè)打開用戶注冊(cè)頁(yè)面,用戶注冊(cè)包括用戶名、密碼、用戶姓名、性別、電話、收貨地址、電子郵箱等信息,用戶點(diǎn)擊每個(gè)輸入框時(shí)后方會(huì)提示需填入的內(nèi)容或注意事項(xiàng)。用戶注冊(cè)頁(yè)面如圖6-2所示。


圖6-2 用戶注冊(cè)頁(yè)面
用戶提交注冊(cè)信息后,若沒(méi)有錯(cuò)誤的信息,則會(huì)提示注冊(cè)成功,跳轉(zhuǎn)到登錄頁(yè)面。若用戶注冊(cè)信息有錯(cuò)誤,則會(huì)提示注冊(cè)失敗,返回到注冊(cè)頁(yè)面,用戶應(yīng)重新注冊(cè)。
用戶注冊(cè)關(guān)鍵代碼如下:
public String execute() throws Exception {
String username= user.getUsername();
User user = service.findUserByName(username); //查詢?cè)撚脩裘欠翊嬖?br /> if(user==null){
this.service.save(this.user);
return "success"; }
else{
return "error";}
}
6.2.2 用戶登錄
用戶可以通過(guò)右側(cè)的登錄框登錄,也可通過(guò)上方的導(dǎo)航欄打開用戶登錄頁(yè)面進(jìn)行登錄。用戶登錄頁(yè)面如圖6-3所示。


圖6-3 用戶登錄頁(yè)面
如果用戶名和密碼正確,則會(huì)提示登錄成功,跳轉(zhuǎn)到主頁(yè)。如果用戶名和密碼不正確,則會(huì)提示登錄失敗,返回到登錄頁(yè)面,用戶需要再次登錄。用戶登錄后可以查看購(gòu)物車中商品、提交留言、查看自己的訂單等。用戶可以點(diǎn)擊退出按鈕退出系統(tǒng)。用戶登錄成功后頁(yè)面如圖6-4所示。


圖6-4 用戶登錄成功后頁(yè)面
用戶登錄關(guān)鍵代碼如下:
public String login(){
String username= user.getUsername();
String password=user.getPassword();
User user = service.getUserByLoginNameAndPassword(username,password);
//搜索是否存在該用戶
if(user == null){
ActionContext.getContext().put("message", "用戶名或密碼錯(cuò)誤");
return "login";
}else{
ActionContext.getContext().getSession().put("user", user);
return "index";
}
}
6.2.3 找回密碼
如果用戶已經(jīng)注冊(cè)過(guò),但是密碼輸入不正確或者忘記密碼,可以通過(guò)輸入正確的注冊(cè)信息來(lái)重新設(shè)置密碼。輸入找回密碼信息頁(yè)面如圖6-5所示。


圖6-5 輸入找回密碼信息頁(yè)面
用戶輸入正確的信息后即可進(jìn)入重新設(shè)置密碼頁(yè)面,進(jìn)行秘密的重置。
找回密碼關(guān)鍵代碼如下:
public String findUser()
{String username= user.getUsername();
String name= user.getName();
String sex= user.getSex();
String post= user.getPost();
String address= user.getAddress();
String phone= user.getPhone();
String email= user.getEmail();
User user=this.service.findUserByinfo(username, name,sex,phone, post, address, email);  //查詢是否有該用戶信息
if(user==null){
ActionContext.getContext().put("findUsernull", "沒(méi)有該用戶信息!");
return "findUsernull";
}else{
ActionContext.getContext().getSession().put("findUser", user);
return "findUser";
}
6.2.4 查看商品信息
點(diǎn)擊商品下的詳細(xì)按鈕,可以查看商品的詳細(xì)信息,在商品的詳細(xì)信息中可以看到商品的名稱、商品編號(hào)、商品生產(chǎn)廠商、價(jià)格、數(shù)量、上架時(shí)間和商品的描述,這項(xiàng)操作用戶沒(méi)有登錄也可以進(jìn)行。商品信息頁(yè)面如圖6-6所示。


圖6-6 商品詳細(xì)信息頁(yè)面
商品詳細(xì)信息關(guān)鍵代碼如下:
public String findCommodityById(){
int commId= commodity.getCommodityId();
Commodity commodity = this.service.findCommodityById(commId);
ActionContext.getContext().getSession().put("commodityById", commodity);
return "findCommodityById";
}
6.2.5 搜索商品
用戶可以通過(guò)輸入商品的部分關(guān)鍵字進(jìn)行商品搜索,搜索商品后會(huì)顯示搜索到的信息,如果沒(méi)有相關(guān)信息會(huì)輸出沒(méi)有改商品信息。搜索商品信息結(jié)果頁(yè)面如圖6-7所示。


圖6-7 搜索商品結(jié)果頁(yè)面
搜索商品關(guān)鍵代碼如下:
public String findCommodityByName(){
String commodityName= commodity.getCommodityName();
Map request = (Map) ActionContext.getContext().get("request");
   request.put("commoditybyName",this.service.findCommodityByName(
commodityName));  //保存搜索的信息
ActionContext.getContext().getSession().put("searchnameMessage",
commodityName);
return "findCommodityByName";
}
6.3 登錄用戶操作
6.3.1 購(gòu)物車
用戶只有登錄后才能把商品添加到購(gòu)物車。在每件商品的下方都有添加到購(gòu)物車按鈕,點(diǎn)擊添加就可以添加到購(gòu)物車,添加一次商品,商品剩余數(shù)量就減少1,如果商品剩余數(shù)量為0,則無(wú)法添加到購(gòu)物車,提示商品無(wú)供貨。在購(gòu)物車中可以查看購(gòu)物車中的物品,商品的簡(jiǎn)單信息。在購(gòu)物車中可以移除商品,移除商品時(shí),商品剩余數(shù)量會(huì)增加1。用戶可以在買家備注里輸入備注信息,然后點(diǎn)擊提交訂單進(jìn)行訂單的提交,也可以點(diǎn)擊繼續(xù)購(gòu)物繼續(xù)瀏覽商品。購(gòu)物車頁(yè)面如圖6-9所示。


圖6-9 購(gòu)物車頁(yè)面
商品添加到購(gòu)物車關(guān)鍵代碼如下:
public String execute() throws Exception {
int commodityId= commodity.getCommodityId();
Map session =(Map) ActionContext.getContext().getSession();
Commodity commoditys = commodityService.findCommodityById (commodityId); //獲得商品信息
if(commoditys.getCommodityLeaveNum()==0){
ActionContext.getContext().getSession().put("comnull","商品已無(wú)貨!");
return "error";
}
else{
List<Commodity> car = null; //聲明一個(gè)購(gòu)物車
if(session.get("car") == null) {//如果session中不存在購(gòu)物車
car = new ArrayList<Commodity>();//新建一個(gè)ArrayList實(shí)例
}
else {
car = (List<Commodity>)session.get("car");  //取得購(gòu)物車 }
}
commoditys.setCommodityLeaveNum(commoditys.getCommodityLeaveNum()-1);
commodityService.update(commoditys);
session.put("car", car);//將購(gòu)物車保存在session中
return "success";}
6.3.2 付款
用戶點(diǎn)擊提交訂單按鈕后,用戶的訂單就提交到了數(shù)據(jù)庫(kù),然后可以進(jìn)行付款操作。用戶付款時(shí)會(huì)檢查用戶金額,如果用戶金額不足,會(huì)提示余額不足無(wú)法付款;用戶余額足夠才能付款成功。如果用戶沒(méi)有對(duì)訂單進(jìn)行付款,商家則不會(huì)發(fā)貨。用戶付款頁(yè)面如圖6-10所示。


圖6-10 用戶付款頁(yè)面
6.3.3 更新個(gè)人信息
用戶登錄以后可以修改個(gè)人信息,修改個(gè)人信息時(shí)需要輸入正確的信息,點(diǎn)擊更新個(gè)人信息后即可更新個(gè)人信息,但是需要用戶重新登錄之后才會(huì)顯示更新后的信息。用戶也可以修改登錄密碼。用戶更新個(gè)人信息頁(yè)面如圖6-12所示。


圖6-12 更新個(gè)人信息頁(yè)面
修改個(gè)人信息關(guān)鍵代碼如下:
public String updateUser(){
this.service.update(user);  //更新用戶的信息
ActionContext.getContext().put("updatemessage", "您的信息已經(jīng)更新!");
return "updateUser";}
6.4 后臺(tái)管理
6.4.1 后臺(tái)登錄
可以通過(guò)主頁(yè)面下方的鏈接打開后臺(tái)管理的登錄頁(yè)面,后臺(tái)登錄頁(yè)面需要輸入管理員賬號(hào)和密碼,如果用戶名和密碼錯(cuò)誤則不能登錄,只有輸入正確的管理員賬號(hào)和密碼才能登錄到后臺(tái)主頁(yè)面。后臺(tái)登錄頁(yè)面如圖6-13所示。


圖6-13 后臺(tái)登錄頁(yè)面
6.4.2 后臺(tái)主頁(yè)面
輸入正確的管理員賬號(hào)和密碼后,打開后臺(tái)關(guān)鍵的主頁(yè)面,主頁(yè)上主要顯示此網(wǎng)上商城開發(fā)工具的介紹,左側(cè)有快捷功能,上方有列表用于選擇各個(gè)操作。點(diǎn)擊退出即可退出后臺(tái)管理頁(yè)面返回登錄頁(yè)面。后臺(tái)主頁(yè)面如圖6-14所示。


圖6-14 后臺(tái)管理主頁(yè)面
6.4.3 新增商品種類
新增商品種類,填寫商品種類名稱,提交便可增加一種新的商品種類。新增商品種類頁(yè)面如圖6-15所示。


圖6-15 新增商品種類頁(yè)面
6.4.4 商品種類列表
管理員可以查看商品種類的列表。商品種類列表頁(yè)面如圖6-16所示。


圖6-16 商品種類列表頁(yè)面
6.4.5 新增商品
新增商品可以填寫商品的名稱、商品編號(hào)、選擇商品種類、填寫生產(chǎn)廠家、上傳圖片、添加商品描述、商品原價(jià)格、商城銷售價(jià)格、商品總數(shù)量。新增商品頁(yè)面如圖6-17所示。


圖6-17 新增商品頁(yè)面
新增商品主要代碼如下:
public String addCommodity(){
CommodityClass com= commodityClassService.findCommodityClassByName (commodity.getCommodityClass().getCommodityClassName()); //獲得商品種類信息
commodity.setCommodityClass(com); //設(shè)置商品種類
List<Commodity> comFindname = this.service.findCommodityByName (commodity.getCommodityName());  //查詢?cè)撋唐肥欠翊嬖?br /> if(comFindname.size()==0){
this.service.save(this.commodity); //保存商品信息
ActionContext.getContext().put("addComessage", commodity.getCommodityName() +"添加成功");}
else {
ActionContext.getContext().put("addComessage", commodity.getCommodity Name() +"已經(jīng)存在,請(qǐng)重新填寫商品信息!");
return "addCommodity";}}
6.4.6 商品列表
管理員可以查看商品的列表。商品列表頁(yè)面如圖6-18所示。


圖6-18 商品列表頁(yè)面
6.4.7 訂單列表
管理員可以查看訂單列表,顯示的內(nèi)容包括:訂單編號(hào)、用戶是否已經(jīng)付款、是否已經(jīng)發(fā)貨、總金額、可以進(jìn)行訂單發(fā)貨操作等。訂單列表頁(yè)面如圖6-19所示.


圖6-19 訂單列表頁(yè)面
6.4.8 訂單條件查詢
輸入訂單的條件可以查詢訂單,用于管理員來(lái)查詢符合條件的訂單信息。訂單條件查詢頁(yè)面如圖6-20所示。


圖6-20 訂單條件查詢頁(yè)面
6.4.9 用戶列表
用戶列表包括所有用戶的信息,顯示的內(nèi)容有:用戶的姓名、聯(lián)系電話、住址、郵寄地址、刪除用戶等。用戶列表頁(yè)面如圖6-21所示。


圖6-21 用戶列表頁(yè)面
7  系統(tǒng)壓力測(cè)試
7.1 系統(tǒng)壓力測(cè)試工具及環(huán)境
本系統(tǒng)測(cè)試使用Apache Jmeter工具,這是由Apache組織開發(fā)的基于java的測(cè)試工具。Apache JMeter是開源而且免費(fèi)的測(cè)試工具,它是可以對(duì)利用HTTP或FTP服務(wù)器的應(yīng)用程序進(jìn)行測(cè)試的工具,因此,選用Apache Jmeter作為網(wǎng)上商城系統(tǒng)的測(cè)試工具非常適合。下載Jmeter,打開bin目錄的JMeter.jar,啟動(dòng)JMeter。JMeter主頁(yè)面如圖7-1所示。


圖7-1 JMeter主頁(yè)面
系統(tǒng)測(cè)試環(huán)境是系統(tǒng)在何種配置的服務(wù)器中進(jìn)行的測(cè)試如表7-1所示。
表7-1 系統(tǒng)測(cè)試環(huán)境
操作系統(tǒng):Windows XP Professional SP3
處理器:AMD Sempron(tm) M100
內(nèi)存:2G
測(cè)試工具:Apache Jmeter
7.2 錄制測(cè)試過(guò)程
7.2.1 建立線程組
線程組用于指定運(yùn)行的線程數(shù)和等候周期。每個(gè)線程模擬一個(gè)用戶,而Ramp-Up Period(in-seconds)用于指定創(chuàng)建全部線程的時(shí)間。設(shè)置200個(gè)用戶同時(shí)訪問(wèn),在5秒之內(nèi)全部訪問(wèn)登錄頁(yè)面,登錄系統(tǒng)。循環(huán)次數(shù)則代表執(zhí)行的次數(shù)。建立線程組頁(yè)面如圖7-2所示。


圖7-2 建立線程組頁(yè)面
7.2.2 建立HTTP請(qǐng)求默認(rèn)值
在線程組下新建“HTTP請(qǐng)求默認(rèn)值”同時(shí)配置其參數(shù):服務(wù)器地址,端口號(hào),訪問(wèn)協(xié)議。建立HTTP請(qǐng)求默認(rèn)值頁(yè)面如圖7-3所示。


圖7-3 建立HTTP請(qǐng)求默認(rèn)值頁(yè)面
7.2.3 設(shè)置代理服務(wù)器
在工作臺(tái)下設(shè)置HTTP代理服務(wù)器,設(shè)置Global Settings(端口號(hào)),Test plan content(目標(biāo)控制器)選擇上面建立的線程組,添加排除模式,以免在錄制過(guò)程中錄制了不需要的圖片,腳本等。工作臺(tái)設(shè)置HTTP代理服務(wù)器頁(yè)面如圖7-4所示。


圖7-4 工作臺(tái)設(shè)置HTTP代理服務(wù)器頁(yè)面
配置好以后,設(shè)置瀏覽器的HTTP訪問(wèn)代理,用于用戶的訪問(wèn)。瀏覽器設(shè)置HTTP代理服務(wù)器頁(yè)面如圖7-5所示。


圖7-5 瀏覽器設(shè)置HTTP代理服務(wù)器頁(yè)面
瀏覽器端口號(hào)一定要與圖8-4配置的端口號(hào)一致。啟動(dòng)JMeter的腳本錄制。打開瀏覽器,進(jìn)行一次登錄退出操作。在線程組后會(huì)顯示登錄和退出所訪問(wèn)的action。錄制完成頁(yè)面如圖7-6所示。


圖7-6 錄制完成頁(yè)面
7.3 測(cè)試設(shè)置及啟動(dòng)
7.3.1 設(shè)置登錄參數(shù)
在用戶登錄的action中,可以為用戶名和密碼進(jìn)行參數(shù)化設(shè)置,測(cè)試的用戶為testuser1到testuser201,測(cè)試之前請(qǐng)確認(rèn)數(shù)據(jù)庫(kù)中的用戶表已經(jīng)有這些用戶名信息。用戶名和密碼進(jìn)行參數(shù)化設(shè)置頁(yè)面如圖7-7所示。


圖7-7 用戶名和密碼進(jìn)行參數(shù)化設(shè)置頁(yè)面
用戶名和密碼的數(shù)據(jù)是從本地f盤下的文件login.txt中讀取的,用戶名和密碼格式如圖7-8所示。


圖7-8 用戶名和密碼格式

7.3.2 啟動(dòng)測(cè)試
在啟動(dòng)測(cè)試前,確認(rèn)已經(jīng)添加好監(jiān)聽器:聚合報(bào)告、用表格察看結(jié)果、圖形報(bào)告和查看結(jié)果樹,用于在測(cè)試結(jié)束后察看結(jié)果。然后點(diǎn)擊運(yùn)行按鈕,啟動(dòng)測(cè)試,等待測(cè)試結(jié)束。
7.4 測(cè)試結(jié)果
7.4.1 系統(tǒng)壓力測(cè)試聚合報(bào)告
聚合報(bào)告是整個(gè)測(cè)試過(guò)程中的數(shù)據(jù)反映。其中參數(shù)說(shuō)明:Lable是測(cè)試項(xiàng)目名稱,Samples是多少個(gè)訪問(wèn)實(shí)例,Average是平均相應(yīng)時(shí)間,Median是相應(yīng)時(shí)間中間值,90%Line指90%的實(shí)例的相應(yīng)時(shí)間,Min最小響應(yīng)時(shí)間,Max最大響應(yīng)時(shí)間,Error%出錯(cuò)率,Throughput是每秒完成的實(shí)例也就是系統(tǒng)的吞吐量,最后一項(xiàng)為每秒傳送的數(shù)據(jù)量。系統(tǒng)壓力測(cè)試聚合報(bào)告頁(yè)面如圖7-9所示。


圖7-9 系統(tǒng)壓力測(cè)試聚合報(bào)告頁(yè)面
7.4.2 系統(tǒng)壓力測(cè)試圖形結(jié)果
圖形結(jié)果可以更加形象并且直觀地看到測(cè)試的結(jié)果。主要參數(shù)有:樣本數(shù)目是總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)。最新樣本是代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間。吞吐量是服務(wù)器每分鐘處理的請(qǐng)求數(shù)。 平均值是總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)。中間值是代表時(shí)間的數(shù)字,有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。偏離表示服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小,也就是數(shù)據(jù)的分布。
在這些結(jié)果中可以看出,網(wǎng)上商城系統(tǒng)既可以滿足一般商家的需要,又可以滿足適量的用戶同時(shí)登錄,如果需要滿足更多用戶的登錄,購(gòu)物等操作,可以根據(jù)具體的需要對(duì)系統(tǒng),服務(wù)器進(jìn)行優(yōu)化配置??傮w上本系統(tǒng)是可以滿足現(xiàn)有需求的。
結(jié)  論
這次的軟件設(shè)計(jì)是先對(duì)網(wǎng)絡(luò)購(gòu)物系統(tǒng)做需求分析,對(duì)需要做出來(lái)的功能和目標(biāo)做了一個(gè)闡述,之后進(jìn)行的設(shè)計(jì),最后實(shí)現(xiàn)了一個(gè)簡(jiǎn)易的二手交易商城系統(tǒng)的設(shè)計(jì)。該設(shè)計(jì)已Java語(yǔ)言為主,用Eclipse環(huán)境完成,MySQL作為我的數(shù)據(jù)庫(kù),同時(shí)用到了Tomcat服務(wù)器。這個(gè)設(shè)計(jì)分為兩個(gè)部分,分別是前臺(tái)用戶模塊和后臺(tái)管理模塊。前臺(tái)用戶可以操作的模塊如下:查看商品,登錄注冊(cè),購(gòu)買商品,操作購(gòu)物車,修改個(gè)人信息;后臺(tái)管理員可以操作的模塊如下:商品種類的增刪改查,商品的增刪改查,查詢和更改用戶信息。通過(guò)不斷調(diào)試,運(yùn)行和測(cè)試,系統(tǒng)現(xiàn)在可以正常的運(yùn)行。因?yàn)檫@是我第一次獨(dú)立完成開發(fā),系統(tǒng)不免有些簡(jiǎn)易和不足,還需進(jìn)一步的改善。
這個(gè)設(shè)計(jì)是利用網(wǎng)絡(luò)來(lái)進(jìn)行一些簡(jiǎn)單的交易,方便大家的生活。這次的軟件設(shè)計(jì)鍛煉了我的實(shí)際操作的能力。讓我對(duì)Java的應(yīng)用和理解更加透徹。
1.在這次軟件設(shè)計(jì)中,我做了下面一些工作:
1)分析并且建設(shè)了二手交易商城系統(tǒng),探討了這個(gè)應(yīng)用的背景和開發(fā)它的目的。
2)在軟件開發(fā)的過(guò)程中完成一些開發(fā)必須的步驟,例如需求分析,總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)測(cè)試等等。
3)在需求分析和總體設(shè)計(jì)完成后,決定使用什么技術(shù),使用什么語(yǔ)言,使用哪種數(shù)據(jù)庫(kù)等等多個(gè)問(wèn)題,最后在制定一個(gè)合理的,簡(jiǎn)單有效的解決方案。此外還考慮到系統(tǒng)的可擴(kuò)展性,實(shí)現(xiàn)整體的靈活性,為以后繼續(xù)開發(fā)或完善提供便利。
4)在整個(gè)開發(fā)系統(tǒng)的過(guò)程當(dāng)中,隨著不斷的深入,依稀相關(guān)的數(shù)據(jù)材料,技術(shù)材料也在不停的匯集整合,形成一個(gè)完整的資料庫(kù),對(duì)我以后的開發(fā)有很大的意義和影響。
2.通過(guò)完成這次軟件設(shè)計(jì),我的各個(gè)方面都得到了很大的提升,自己也取得的很大的進(jìn)步:
1)通過(guò)這次的軟件設(shè)計(jì),我更加深入的了解了軟件開發(fā)的重要性,對(duì)于軟件開發(fā)有更近一步的認(rèn)識(shí)。在整個(gè)軟件開發(fā)的過(guò)程中,代碼的編寫不是最重要的,重要的是前期的一些過(guò)程,例如需求分析,總體設(shè)計(jì),詳細(xì)設(shè)計(jì),系統(tǒng)測(cè)試等等,做好這些過(guò)程,程序編寫的也就變得很容易了。
2)在網(wǎng)絡(luò)購(gòu)物系統(tǒng)開發(fā)過(guò)程中,我養(yǎng)成了一個(gè)做筆記的習(xí)慣,因?yàn)樵谡麄€(gè)的開發(fā)過(guò)程中,經(jīng)常遇到一些問(wèn)題,有的困難不容易解決,有的簡(jiǎn)單易出錯(cuò),記下筆記后,那些簡(jiǎn)單的問(wèn)題解決起來(lái)的變得的更加容易,而那些困難的問(wèn)題解決起來(lái)就更有經(jīng)驗(yàn)。這樣解決了在開發(fā)的過(guò)程中遇到相似的問(wèn)題,每次都要浪費(fèi)時(shí)間的問(wèn)題,大大的節(jié)省了時(shí)間,也更容易讓我記住這些問(wèn)題,避免下次再次出錯(cuò)。
3)在這次的軟件開發(fā)的過(guò)程中,我認(rèn)識(shí)到了軟件編寫時(shí)規(guī)范性的重要性,所以,代碼編寫要有一套規(guī)范的編寫準(zhǔn)則。軟件的代碼不僅是給自己的看的,很多時(shí)候,其他人也要看你編寫的代碼。所以代碼的規(guī)范就很重要了,規(guī)范性的、可讀性高的代碼才更加可靠,容易被別人認(rèn)可。
5)不僅是在軟件設(shè)計(jì)的研究中,而且在實(shí)際的開發(fā)中,都給了我很大的進(jìn)步,這讓我認(rèn)識(shí)到想要提高自己開發(fā)軟件的能力,就只有不斷地實(shí)踐和練習(xí),只有在實(shí)踐中鍛煉的能力,才能真正的提升自己的能力。這次,本系統(tǒng)的開發(fā)已經(jīng)完成,但是依舊可以繼續(xù)完善和改進(jìn)它。
參考文獻(xiàn)
[1]   程南希. 基于 SSH 架構(gòu)的在線購(gòu)物管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 電子科技大學(xué), 2011.
[2]   薩師煊,王珊.多數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2006.1-11.
[3]   王建明.計(jì)算機(jī)實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2007,15(11):74-75.
[4]   李春葆.Visual Fox Pro 6.0 高級(jí)編程[M].北京: 科學(xué)出版社,2001.1-70.
[5]   劉湘暉.多高校計(jì)算機(jī)實(shí)驗(yàn)室綜合信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2010,11(12):148.
[6]   杜波伊斯.MySQL技術(shù)內(nèi)幕[M].第4版.人民郵電出版社,2011年07月.
[7]   楊海鷹,潘華.實(shí)驗(yàn)室信息管理系統(tǒng)[M].北京: 化學(xué)工業(yè)出版社,2006.1-70.
[8]   AR  Hevner,ST  Marcb.  The  Information  Systems  Research  Cycle[J].  IEEE Computer,2003,9 (11):111-113.
[9]   R  Sandhu,V  Bhamidpati,Q  Munawer.  The  ARBAC  97  model  for  role-based administration  of  roles[J].  ACM  Transactions  on  Information  and  System Security,1999, 8(1):105.
[10]   B Regnell,P Runeson,C Wohlin. Towards integration of use case modeling and
usage-based testing[J]. Journal of Systems and Software,2000,12 (2):117-130.
[11]  Young  Jin  Yu.Backup  Metadata  As  Data:  DPC-To Ierance  to  Commodity  File System. Journal of information science and engineering,2011, 27(4):13-15.
[12] Anonymous. Red Gate Software; Red Gate Software's SQL Backup 5 Named 2008
Editor's  Best  Award  Winner  by  SQL  Server  Magazine,Computer  Technology
Journal 2008, 16(5):22-24.

-----------------------------
精選高品質(zhì)二手iPhone,上愛(ài)鋒貝APP
您需要登錄后才可以回帖 登錄 | 立即注冊(cè)   

本版積分規(guī)則

QQ|Archiver|手機(jī)版|小黑屋|愛(ài)鋒貝 ( 粵ICP備16041312號(hào)-5 )

GMT+8, 2025-3-3 06:14

Powered by Discuz! X3.4

© 2001-2013 Discuz Team. 技術(shù)支持 by 巔峰設(shè)計(jì).

快速回復(fù) 返回頂部 返回列表