愛鋒貝

 找回密碼
 立即注冊

只需一步,快速開始

扫一扫,极速登录

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

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

[復(fù)制鏈接]

1397

主題

1494

帖子

5884

積分

Rank: 8Rank: 8

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

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

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊   

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

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

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

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


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

  • 在Eclipse中配置安裝好的的Java開發(fā)包和Tomcat服務(wù)器;
  • 安裝MySQL5.7,設(shè)置賬號密碼,用于數(shù)據(jù)庫連接,然后安裝Navicat for MySQL,使得數(shù)據(jù)庫可以在圖形頁面下進(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ù)庫連接池的配置;
  • 導(dǎo)入外部的MySQL驅(qū)動包,用于數(shù)據(jù)庫連接。
2.5 配置關(guān)鍵性問題的解決
上述配置正確后,僅僅可以成功連接,所以還需要解決一些關(guān)鍵問題才能更好的運(yùn)行程序。

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

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

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

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


圖3-4 二手交易平臺系統(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ù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典是數(shù)據(jù)流圖上所有的成分的定義和解釋的文字的集合,它最重要的用途是供人查詢對不了解的條目的解釋。
數(shù)據(jù)字典主要的組成有:數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)存儲、處理過程。根據(jù)對本系統(tǒng)的數(shù)據(jù)流圖的分析,本系統(tǒng)的數(shù)據(jù)字典的主要內(nèi)容如下:

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

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



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

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


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

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

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

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

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

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

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



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

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



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

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



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

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



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

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


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

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

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

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


圖6-1 系統(tǒng)主頁面
系統(tǒng)主頁的商品分類需要通過請求來獲取商品種類列表。
獲取商品種類列表的關(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 用戶注冊
用戶可通過注冊成為商城會員,點(diǎn)擊用戶注冊打開用戶注冊頁面,用戶注冊包括用戶名、密碼、用戶姓名、性別、電話、收貨地址、電子郵箱等信息,用戶點(diǎn)擊每個輸入框時后方會提示需填入的內(nèi)容或注意事項(xiàng)。用戶注冊頁面如圖6-2所示。


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


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


圖6-4 用戶登錄成功后頁面
用戶登錄關(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", "用戶名或密碼錯誤");
return "login";
}else{
ActionContext.getContext().getSession().put("user", user);
return "index";
}
}
6.2.3 找回密碼
如果用戶已經(jīng)注冊過,但是密碼輸入不正確或者忘記密碼,可以通過輸入正確的注冊信息來重新設(shè)置密碼。輸入找回密碼信息頁面如圖6-5所示。


圖6-5 輸入找回密碼信息頁面
用戶輸入正確的信息后即可進(jìn)入重新設(shè)置密碼頁面,進(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", "沒有該用戶信息!");
return "findUsernull";
}else{
ActionContext.getContext().getSession().put("findUser", user);
return "findUser";
}
6.2.4 查看商品信息
點(diǎn)擊商品下的詳細(xì)按鈕,可以查看商品的詳細(xì)信息,在商品的詳細(xì)信息中可以看到商品的名稱、商品編號、商品生產(chǎn)廠商、價格、數(shù)量、上架時間和商品的描述,這項(xiàng)操作用戶沒有登錄也可以進(jìn)行。商品信息頁面如圖6-6所示。


圖6-6 商品詳細(xì)信息頁面
商品詳細(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ān)鍵字進(jìn)行商品搜索,搜索商品后會顯示搜索到的信息,如果沒有相關(guān)信息會輸出沒有改商品信息。搜索商品信息結(jié)果頁面如圖6-7所示。


圖6-7 搜索商品結(jié)果頁面
搜索商品關(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 購物車
用戶只有登錄后才能把商品添加到購物車。在每件商品的下方都有添加到購物車按鈕,點(diǎn)擊添加就可以添加到購物車,添加一次商品,商品剩余數(shù)量就減少1,如果商品剩余數(shù)量為0,則無法添加到購物車,提示商品無供貨。在購物車中可以查看購物車中的物品,商品的簡單信息。在購物車中可以移除商品,移除商品時,商品剩余數(shù)量會增加1。用戶可以在買家備注里輸入備注信息,然后點(diǎn)擊提交訂單進(jìn)行訂單的提交,也可以點(diǎn)擊繼續(xù)購物繼續(xù)瀏覽商品。購物車頁面如圖6-9所示。


圖6-9 購物車頁面
商品添加到購物車關(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","商品已無貨!");
return "error";
}
else{
List<Commodity> car = null; //聲明一個購物車
if(session.get("car") == null) {//如果session中不存在購物車
car = new ArrayList<Commodity>();//新建一個ArrayList實(shí)例
}
else {
car = (List<Commodity>)session.get("car");  //取得購物車 }
}
commoditys.setCommodityLeaveNum(commoditys.getCommodityLeaveNum()-1);
commodityService.update(commoditys);
session.put("car", car);//將購物車保存在session中
return "success";}
6.3.2 付款
用戶點(diǎn)擊提交訂單按鈕后,用戶的訂單就提交到了數(shù)據(jù)庫,然后可以進(jìn)行付款操作。用戶付款時會檢查用戶金額,如果用戶金額不足,會提示余額不足無法付款;用戶余額足夠才能付款成功。如果用戶沒有對訂單進(jìn)行付款,商家則不會發(fā)貨。用戶付款頁面如圖6-10所示。


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


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


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


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


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


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


圖6-17 新增商品頁面
新增商品主要代碼如下:
public String addCommodity(){
CommodityClass com= commodityClassService.findCommodityClassByName (commodity.getCommodityClass().getCommodityClassName()); //獲得商品種類信息
commodity.setCommodityClass(com); //設(shè)置商品種類
List<Commodity> comFindname = this.service.findCommodityByName (commodity.getCommodityName());  //查詢該商品是否存在
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)存在,請重新填寫商品信息!");
return "addCommodity";}}
6.4.6 商品列表
管理員可以查看商品的列表。商品列表頁面如圖6-18所示。


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


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


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


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


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


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


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


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


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


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


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


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

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


圖7-9 系統(tǒng)壓力測試聚合報告頁面
7.4.2 系統(tǒng)壓力測試圖形結(jié)果
圖形結(jié)果可以更加形象并且直觀地看到測試的結(jié)果。主要參數(shù)有:樣本數(shù)目是總共發(fā)送到服務(wù)器的請求數(shù)。最新樣本是代表時間的數(shù)字,是服務(wù)器響應(yīng)最后一個請求的時間。吞吐量是服務(wù)器每分鐘處理的請求數(shù)。 平均值是總運(yùn)行時間除以發(fā)送到服務(wù)器的請求數(shù)。中間值是代表時間的數(shù)字,有一半的服務(wù)器響應(yīng)時間低于該值而另一半高于該值。偏離表示服務(wù)器響應(yīng)時間變化、離散程度測量值的大小,也就是數(shù)據(jù)的分布。
在這些結(jié)果中可以看出,網(wǎng)上商城系統(tǒng)既可以滿足一般商家的需要,又可以滿足適量的用戶同時登錄,如果需要滿足更多用戶的登錄,購物等操作,可以根據(jù)具體的需要對系統(tǒng),服務(wù)器進(jìn)行優(yōu)化配置??傮w上本系統(tǒng)是可以滿足現(xiàn)有需求的。
結(jié)  論
這次的軟件設(shè)計是先對網(wǎng)絡(luò)購物系統(tǒng)做需求分析,對需要做出來的功能和目標(biāo)做了一個闡述,之后進(jìn)行的設(shè)計,最后實(shí)現(xiàn)了一個簡易的二手交易商城系統(tǒng)的設(shè)計。該設(shè)計已Java語言為主,用Eclipse環(huán)境完成,MySQL作為我的數(shù)據(jù)庫,同時用到了Tomcat服務(wù)器。這個設(shè)計分為兩個部分,分別是前臺用戶模塊和后臺管理模塊。前臺用戶可以操作的模塊如下:查看商品,登錄注冊,購買商品,操作購物車,修改個人信息;后臺管理員可以操作的模塊如下:商品種類的增刪改查,商品的增刪改查,查詢和更改用戶信息。通過不斷調(diào)試,運(yùn)行和測試,系統(tǒng)現(xiàn)在可以正常的運(yùn)行。因?yàn)檫@是我第一次獨(dú)立完成開發(fā),系統(tǒng)不免有些簡易和不足,還需進(jìn)一步的改善。
這個設(shè)計是利用網(wǎng)絡(luò)來進(jìn)行一些簡單的交易,方便大家的生活。這次的軟件設(shè)計鍛煉了我的實(shí)際操作的能力。讓我對Java的應(yīng)用和理解更加透徹。
1.在這次軟件設(shè)計中,我做了下面一些工作:
1)分析并且建設(shè)了二手交易商城系統(tǒng),探討了這個應(yīng)用的背景和開發(fā)它的目的。
2)在軟件開發(fā)的過程中完成一些開發(fā)必須的步驟,例如需求分析,總體設(shè)計、詳細(xì)設(shè)計、系統(tǒng)測試等等。
3)在需求分析和總體設(shè)計完成后,決定使用什么技術(shù),使用什么語言,使用哪種數(shù)據(jù)庫等等多個問題,最后在制定一個合理的,簡單有效的解決方案。此外還考慮到系統(tǒng)的可擴(kuò)展性,實(shí)現(xiàn)整體的靈活性,為以后繼續(xù)開發(fā)或完善提供便利。
4)在整個開發(fā)系統(tǒng)的過程當(dāng)中,隨著不斷的深入,依稀相關(guān)的數(shù)據(jù)材料,技術(shù)材料也在不停的匯集整合,形成一個完整的資料庫,對我以后的開發(fā)有很大的意義和影響。
2.通過完成這次軟件設(shè)計,我的各個方面都得到了很大的提升,自己也取得的很大的進(jìn)步:
1)通過這次的軟件設(shè)計,我更加深入的了解了軟件開發(fā)的重要性,對于軟件開發(fā)有更近一步的認(rèn)識。在整個軟件開發(fā)的過程中,代碼的編寫不是最重要的,重要的是前期的一些過程,例如需求分析,總體設(shè)計,詳細(xì)設(shè)計,系統(tǒng)測試等等,做好這些過程,程序編寫的也就變得很容易了。
2)在網(wǎng)絡(luò)購物系統(tǒng)開發(fā)過程中,我養(yǎng)成了一個做筆記的習(xí)慣,因?yàn)樵谡麄€的開發(fā)過程中,經(jīng)常遇到一些問題,有的困難不容易解決,有的簡單易出錯,記下筆記后,那些簡單的問題解決起來的變得的更加容易,而那些困難的問題解決起來就更有經(jīng)驗(yàn)。這樣解決了在開發(fā)的過程中遇到相似的問題,每次都要浪費(fèi)時間的問題,大大的節(jié)省了時間,也更容易讓我記住這些問題,避免下次再次出錯。
3)在這次的軟件開發(fā)的過程中,我認(rèn)識到了軟件編寫時規(guī)范性的重要性,所以,代碼編寫要有一套規(guī)范的編寫準(zhǔn)則。軟件的代碼不僅是給自己的看的,很多時候,其他人也要看你編寫的代碼。所以代碼的規(guī)范就很重要了,規(guī)范性的、可讀性高的代碼才更加可靠,容易被別人認(rèn)可。
5)不僅是在軟件設(shè)計的研究中,而且在實(shí)際的開發(fā)中,都給了我很大的進(jìn)步,這讓我認(rèn)識到想要提高自己開發(fā)軟件的能力,就只有不斷地實(shí)踐和練習(xí),只有在實(shí)踐中鍛煉的能力,才能真正的提升自己的能力。這次,本系統(tǒng)的開發(fā)已經(jīng)完成,但是依舊可以繼續(xù)完善和改進(jìn)它。
參考文獻(xiàn)
[1]   程南希. 基于 SSH 架構(gòu)的在線購物管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D]. 電子科技大學(xué), 2011.
[2]   薩師煊,王珊.多數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006.1-11.
[3]   王建明.計算機(jī)實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)與信息技術(shù),2007,15(11):74-75.
[4]   李春葆.Visual Fox Pro 6.0 高級編程[M].北京: 科學(xué)出版社,2001.1-70.
[5]   劉湘暉.多高校計算機(jī)實(shí)驗(yàn)室綜合信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn)[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,上愛鋒貝APP
您需要登錄后才可以回帖 登錄 | 立即注冊   

本版積分規(guī)則

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

GMT+8, 2025-2-25 21:03

Powered by Discuz! X3.4

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

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