【網上商城系統的設計與開發】

目錄
1.實訓概況 1
1.1 實訓題目 1
1.2實訓時間 1
1.3實訓目的 1
1.4 實訓環境 1
1.5 實訓內容 2
1.6 進度安排 3
2.需求分析 5
2.1 功能需求分析 5
2.1.1用戶需求分析 5
2.2.2網站前臺需求 5
2.2.3網站后臺需求 6
2.2 可行性分析 7
2.2.1社會可行性 7
2.2.2技術可行性 8
3.系統設計 8
3.1 總體設計 8
3.2 數據庫設計 9
3.2.1數據庫E-R圖 9
3.2.2數據庫表設計 10
3.3 業務流程設計 14
3.3.1前臺系統業務流程 14
3.3.2后臺子系統業務流程 15
4. 系統實現 17
4.1系統實現環境 17
4.2前臺首頁管理模塊 17
4.2.1用戶登錄 17
4.2.2用戶注冊 19
4.2.3首頁商品列表展示 20
4.2.4商品詳情頁面 21
4.2.5訂單支付流程 22
4.3后臺管理模塊 23
4.3.1商品模塊 23
4.3.2分類管理 23
4.3.3訂單管理 24
4.3.4底部信息管理 24
5. 系統測試 25
5.1測試的目的 25
5.2測試的要求 25
5.3測試的主要內容 25
5.4測試的方法 25
5.5測試用例的設計 26
6.總結 29
7.參考資料 30
1.實訓概況
1.1 實訓題目
網上商城系統的設計與開發
1.2實訓時間
第9周-第19周
1.3實訓目的
企業項目綜合實訓是計算機專業教學的一個重要環節,其目的是使學生在獲得基本知識和基本技能的基礎上,進行一次較全面、系統的訓練,以鞏固課堂所學知識及提高操作技能。旨在提升本專業學生對此課程中的理論知識的綜合應用能力、邏輯思維能力和軟件開發能力,培養學生獨立工作和解決實際問題的能力,為學生走上畢業崗位作好充足準備。
網上購物是時下比較流行的消費方式,給人們的生活帶來了極大的方便。本次實訓要求學生用Java技術開發基于B/S架構的大型網上商城系統。通過真實的項目實戰過程,讓學生從實踐中認識面向對象程序設計的開發思想和軟件設計與開發的流程,能夠用程序去解決現實生活問題,在一步一步的實踐過程中不斷提高程序設計的水平。
1.4 實訓環境
(1)硬件環境:
機房:計算機學院多媒體專業機房
電腦:雙核高性能主機
網絡:100Mbps校園網
(2)開發環境:
操作系統:Windows 7以上
開發工具:MyEclipse/IntelliJ IEDA
容器:Tomcat
中間件:JDK
數據庫:MySQL
1.5 實訓內容
網上商城系統又稱在線商城系統,是一個功能完善的在線購物系統,主要為在線銷售和在線購物服務。其功能主要包含商品的管理、會員的管理、訂單的管理、庫存的管理、優惠的管理、在線支付等。
本次實訓將由學生參考相關學習資料,用Java EE技術獨立完成“網上商城系統”的設計與開發。系統技術架構可以采用Java EE的基礎架構(如JSP+Servlet+DAO),也可以采用Java EE領域流行的組合架構(如Spring MVC+Spring+MyBatis)。系統應至少包括PC端的Web應用服務器程序,根據能力也可以增加移動端的APP。
系統主要開發的功能如下:
(1)后臺功能
商品模塊:包括后臺商品庫存管理、上貨、出貨、編輯管理和商品分類管理、商品品牌管理等。
訂單模塊:在線訂單程序,使消費者能夠順利的通過Web在線的方式,直接生成購買訂單。
評論模塊:購買過產品的買家可以對產品進行評價和打分。
支付模塊:即通過網上錢包、電子支付卡。進行網上資金流轉換的業務流程;國內主流支付方式包括:騰訊旗下的財付通、支付寶、網銀在線等。
會員模塊:在購物系統中,集成會員注冊是吸引會員進行二次購買和提升轉換率最好的方式。
信息模塊:用于發布商城系統相關的一些信息。
配送模塊:購物系統集成的物流配送方式,從而方便消費者對物流方式進行在線選擇。如:EMS、順風等等。
商品促銷:購物系統都有商品促銷功能,通過商品促銷功能,能夠迅速的促進商城的消費積極性。
(2)前端功能
商品展示:通過前端界面,以標準的或者其他個性化的方式向用戶展示商品各類信息,完成購物系統內信息流的傳遞。
購物車:用戶可對想要購買的商品進行網上訂購,在購物過程中,隨時增刪商品。
模板風格自定義:即通過系統內置的模板引擎,可以方便的通過后臺可視化編輯,設計出符合自身需求的風格界面。
商品多圖展示:隨著電子商務的發展商品圖片成為吸引消費者的第一要素,多圖展示即提供前臺多張圖片的展示,從而提升消費者的購物欲望。
自定義廣告模塊:內置在系統中的廣告模塊,網站管理員能夠順利的通過操作就可以在前端界面中添加各種廣告圖片。
1.6 進度安排
周次 內容
第9周 功能需求分析、數據庫設計、技術選型、項目結構搭建
第10周 商品分類添加、商品分類管理、商品分類修改和刪除、商品發布、商品列表(查詢)
第11周 商品列表(分頁)、商品修改和刪除、商品上/下架、置頂、商品前臺列表(基本)、商品前臺列表(按需)
第12周 商品展示、添加購物車、查看購物車、生成訂單、在線支付
第13周 客服查詢訂單列表、客服審核訂單、會員查詢自己的訂單、會員修改配送信息(未審核之前)、倉管確認發貨、用戶確認收貨
第14周 登錄模塊(會員、客服、倉管、管理員)、管理員管理會員、客服和倉管、管理員修改、刪除會員、客服和倉管、會員評論打分、會員修改和刪除評價打分
第15周 會員、客戶、倉管、管理員修改密碼、會員修改個人信息、會員升級計算、會員管理自己的訂單、會員查看訂單明細
第16周 管理員管理所有已完成訂單、客服發布信息、客服管理信息、客服修改和刪除信息、前臺列出相關信息
第17周 前臺產品搜索、前臺分類展示、前臺功能完善
第18-19周 項目驗收,撰寫報告

2.需求分析
2.1 功能需求分析
網上商城系統應具備網上購物的基本功能,既要合理實現商家展示商品,消費者用戶購買商品,在線支付以及商家發貨等一般功能。
2.1.1用戶需求分析
一個商城網站的成敗很大程度上取決于用戶體驗的好壞,所以成功的商城網站往往遵循著以人為本這個原則,由此可知,本系統在用戶體驗這方面需遵循以下幾點要求:
(1)操作界面簡潔明了,網頁加載速度快
本系統的網站面向所有年齡階層的用戶,所以操作必須簡潔明了,才會有更多的消費者用戶瀏覽本系統的網頁。只有當人們感覺到網站很容易操作時,才會有進一步的購物體驗和以后的再次光臨該網站。網頁的加載速度也對用戶體驗有大影響,專家研究表明當網頁在8秒鐘內還加載不出來時,人們就會關掉該網頁。本系統網頁訪問速度的要求就是,用戶能在本系統網頁訪問量達到巔峰時還能很順暢地瀏覽網頁,輕松實現各項操作不卡頓。
(2)權限分明
本系統具有游客、會員和系統管理員三個權限,其中游客和會員面向消費者用戶。對于沒有登錄的用戶默認為游客,游客只具備瀏覽商品的權限,用戶需注冊才能成為商城會員,會員才具備購買商品的權限。系統管理員面向商家,主要用于管理本商城系統的商品、用戶的訂單等信息。
(3)可視化強
其次本商城網頁上方都有統一的導航欄,導航欄包含的商品一級分類菜單和商品搜索功能方便用戶快速篩選商品,購物車、訂單和用戶等方便用戶管理。
2.2.2網站前臺需求
本網站的系統總體目標是為了實現在線購物。通過系統實現網上購物的多項功能,一方面是管理員對商品的管理實現,即后臺管理系統,另一方面是用戶的購物的實現、即前臺系統。根據對天貓、京東和當當網等幾個當前中國最大的B2C商城系統的調查和研究發現,B2C前臺系統主要是按如下規則來運作的:用戶在線瀏覽所有商品,注冊為會員登錄后才能將商品加入購物車,購物結束后生成訂單并在線支付完成。前臺系統的需求如圖2.1所示。
在這里插入圖片描述

圖2.1商城前臺需求模塊圖
由圖2.1的前臺系統需求模塊圖可知,前臺系統主要分為用戶信息管理、商品展示管理和購物車訂單管理三個模塊。其中用戶信息管理又包含用戶的登錄和注冊,用戶需在本商城系統中注冊和登錄之后才能購買商品,用戶信息管理還包含賬號信息的修改,地址的添加修改刪除,訂單的查看和對未來收貨的訂單確認收貨,確認收貨后會返還相應的積分等功能。商品展示模塊主要是商品以及商品分類菜單的展示,用戶可通過選擇商品分類菜單和通過商品名稱搜索來篩選商品,然后再一件一件地挑選自己中意的商品。用戶添加商品進入購物車之后可選擇繼續挑選其他商品加入購物車,然后調整購物車中商品的數量,最后點擊結算按鈕,即可跳轉到訂單頁面,在訂單頁面用戶可更改收貨人、收貨地址和聯系方式等信息,最后選擇要支付的方式,點擊提交訂單,即可跳轉到確認訂單頁面,支付成功之后返回商品列表頁面。
2.2.3網站后臺需求
網上商城系統除了應給消費者用戶展示各種商品信息以外,還應能對展示的各種信息進行適當的管理,所以商城系統還應包含后臺系統,后臺系統主要管理商品、商品分類菜單、訂單和用戶信息。后臺系統的需求如圖2.2所示。
在這里插入圖片描述

2.2商城后臺需求模塊圖
由圖2.2的后臺系統需求模塊圖可知,后臺系統主要分為商品管理、分類管理、底部信息管理和訂單管理。商品分類菜單和商品的管理都包含增刪改查的操作,可以隨時對商品進行各種操作,使得商城的靈活性大大增強,其中添加商品時需選擇所屬分類,這樣使得商品展示更有條理,用戶也能通過商品分類菜單的篩選來更快的定位所需商品。訂單管理主要是對訂單列表的查看審核流轉到下一步操作,其中管理員可分為客服、財務、倉管、理貨、超級管理員等幾個身份,每個普通管理員負責一個模塊,對訂單和審核流轉到下一個模塊,商城管理員每天定時查看新增訂單,通常也不支持后臺人為地添加和刪除訂單操作。
總之,一個好的商城系統就是要把用戶購物到結款,管理員管理網站、管理商品,處理訂單等功能都―一實現。這樣才能建成一個功能齊全、合理、完善的網上購物系統。
2.2 可行性分析
可行性分析指開發項目之前,對項目開發的過程當中可能會碰到的多方面的問題如技術、經濟、社會等方面的問題,進行可能性或必要性分析,來規避未來可能會遇到的困難,使得項目能有序順利地完成。
2.2.1社會可行性
近年來,隨著Internet的迅速崛起,互聯網已日益成為收集提供信息的最佳渠道并逐步進入傳統的流通領域。于是電子商務開始流行起來,越來越多的商家在網上建起在線商店,向消費者展示出一種新穎的購物理念。
網上購物系統作為B2C(Business to Customer,即企業對消費者),電子商務的前端商務平臺,在其商務活動全過程中起著舉足輕重的作用。B2C網上商城是電子商務網上零售范圍內的一種模式,主要以網絡零售業為主,一般借助Internet在線上開展銷售活動。上世紀90年代末,中國B2C電子商務市場開始起步發展,經過將近二十年的發展,中國的網絡購物行業已步入了相對良性循環的、可持續的、健康的發展道路上,線上零售業早已成為了國內經濟重要的組成部分。
國內網絡用戶的規模持續增長。截至 2017年6月底,我國網絡用戶的數量已突破7.51億,有過網絡購物的用戶規模突破5.14億,網民的網絡購物率達68.4%。不僅國內的網購用戶規模在不斷增長,網購用戶的消費理念也同時在發生著巨大變化,用戶網購時往往對商品的質量和售后服務有了更大的需求。隨著網購市場的不斷發展,未來幾年內國內的B2C交易規模占網購市場的比重必將更進一步提升,B2C將會代去著國內網e購市場的主流,擁有無限光明的發展前景。
2.2.2技術可行性
網上購物的開發基于B/S模式,主要包括前端應用程序的開發以及后臺數據庫的建立和維護兩個方面。對于前者要求應具備功能完備、易于使用等特點,而對于后者則要求能建立數據一致性和完整性強、數據安全性好的庫。
本系統基于當前成熟且流行的軟件和技術進行開發。采用了B/S構架,采用了基于J2EE 的Eclipse平臺進行開發,運用MVC 開發模式,以Servlet和JSP進行設計開發,數據庫用的是流行且實用的Mysql,界面采用了JSP技術。系統具有可復用性,易用性和穩定性。
3.系統設計
3.1 總體設計
本系統分為前臺和后臺兩個系統。前臺子系統是實現商城用戶登錄直接進入商城或注冊后再登錄商場,進行商品瀏覽、購買商品、添加購物車、修改購物車的商品數量、添加訂單、修改訂單等操作。后臺管理子系統主要實現管理員直接登錄后對用戶、商品、商品分類菜單、訂單進行增刪改查等一系列操作。設計架構采用MVC經典架構設計,可以將視圖與業務邏輯分開實現低耦合行,提高代碼的重用性。視圖層使用JSP,CSS,JavaScript,實現網站的前端頁面,通過控制層的Servlet實現業務邏輯,通過forward和request實現視圖層與控制層的信息共享,模型層是通過DAO封裝與數據庫交換的JDBC程序。如圖3.1所示。
在這里插入圖片描述

圖3-1應用服務器之上采用MVC開發的邏輯示意圖
3.2 數據庫設計
在建設網站系統之前,我們必須對系統所用到的數據進行大致的分類和具體的結構設計,既要做到清晰明了,又要能適應系統各項功能的調用,而不至于產生結構上的邏輯混亂,保證關鍵數據在意外情況下不會被破壞,可以說數據庫是系統的重中之重。
3.2.1數據庫E-R圖
本系統需要從數據庫中查詢大量信息,所有模塊的功能實現都需要和數據庫進行交互。根據系統需求和功能要求,共建立九張表:商品表、商品分類表、配送信息表、訂單表、訂單明細表、會員表、后臺管理人員表、商品評論表、底部信息表。網上商城的E-R(Entity Relationship Diagram,實體―聯系)圖如圖3.2所示。

在這里插入圖片描述

圖3.2數據庫E-R圖
3.2.2數據庫表設計
(1)商品表(product)如表3.1所示。
表3.1商品表
字段 類型 是否為空 描述
productid int 否 主鍵
name varchar(100) 否 商品名字
myprice float 否 應答價格
marketprice float 否 市場價格
storecount int 否 庫存數量
hit int 否 點擊數量
time varchar(32) 否 發布時間
photo varchar(200) 否 商品封面
categoryid int 外鍵 否 外鍵,商品分類id,關聯到分類表
content text 否 商品描述

(2)分類表(category)如表3.2所示。
表3.2分類表
字段 類型 是否為空 描述
categoryid int 否 主鍵
name varchar(32) 否 分類名字
sort int 否 排序號
(3)配送地址信息表(address)如表3.3所示。
表3.3配送地址信息表
字段名 類型 是否為空 描述
addressid int 否 主鍵,自動遞增
addressname varchar(200) 否 收貨地址
postcode varchar(32) 否 郵編
receiver varchar(32) 否 收貨人
phone varhcar(32) 否 聯系電話
vipid int 否 關聯會員表(vip),外鍵,記錄該條地址是哪一位會員的
bz varchar(200) 是 備注
(4)訂單表(orders)如表3.4所示。
表3.4訂單表
字段名稱 類型 是否為空 描述
orderid int 否 主鍵(讓它充當訂單編號)
addressid int 否 存儲配送信息記錄的ID
payway varchar(32) 否 支付方式
maketime varchar(32) 否 下單時間
status varchar(32) 否 訂單狀態:未審核
未支付
未發貨
未簽收
未評價

(5)訂單明細表〈條目表: orderdetail))如表3.5所示。
表3.5訂單明細表
字段名稱 類型 是否為空 描述
orderdetailid int 否 主鍵
orderid int 否 訂單ID
productid int 否 產品ID
quantity int 否 產品數量
(6)會員表(vip)如表3.6所示。
表3.6會員表
字段名稱 類型 是否為空 描述
vipid int 否 主鍵
username vrchar(32) 否 用戶名
password vrhcar(32 否 密碼
sex varchar(32) 否 性別
email varchar(32) 否 郵箱
phone varchar(32) 否 電話
score int 否 積分,根據積分判斷等級。
0-99:銅卡會員
100-499:銀卡會員
500-4999:金卡會員
5000以上:鉆石會員
qusteion varchar(300) 否 密碼提示問題
answer varchar(300) 否 密碼提示答案
lastlogintime varchar(32) 否 上一次登錄時間

(7)后臺管理人員表(admin)如表3.7所示。
表3.7后臺管理人員表
字段名字 類型 是否為空 描述
adminid int 否 主鍵,自動遞增
username varchar(32) 否 用戶名
password varchar(32) 否 密碼
realname varchar 否 管理人員名字
sno varchar(32) 否 管理人員編/工號(便于查詢)
role varchar(32) 否 人員角色:
1、客服(審核訂單)
2、財務(看訂單有沒有交錢)
3、倉管(負責發貨)
4、超管(全部功能)
5、理貨(負責產品的管理和維護)
lasttime Varchar(32) 否 最后一次登錄時間
(8)商品評論表(comment)如表3.8所示。
表3.8商品評論表
字段名字 類型 是否為空 描述
commentid int 否 主鍵
title varchar(100) 否 標題
content varchar(1000) 否 內容
score int 否 分數
time varchar(32) 否 時間
productid int 否 所評論的產品的ID
vipid int 否 評論人的ID

(9)信息表(info)如表3.9所示。
表3.9信息表
字段名字 類型 是否為空 描述
infoid int 否 主鍵
title varchar(100) 否 標題
time varchar(32) 否 發布時間
publisher varchar(32) 否 發布人
lanmu varchar(32) 否 欄目
content longtext 否 內容
3.3 業務流程設計
3.3.1前臺系統業務流程
用戶可以輸入網址進入網站的用戶界面,可以根據用戶是否注冊來確定他是否是會員,當完成注冊時可以實現會員登錄的功能。然后在網站首頁進行商品的選購,當選購商品完成時,可以放入購物車,然后去訂單頁面結賬,確認收貨人等信息正確無誤后,可以點擊訂單支付形成未處理訂單,當用戶完成付款操作后服務商就可以發貨,用戶可以在家等待收貨情況,最后用戶確認收貨完成訂單或長時間用戶未確認收貨由管理員確認收貨,訂單被設置為已交易狀態。前臺子系統總體流程圖如圖3.3所示。
在這里插入圖片描述

圖3.3商城前臺系統流程圖
前臺系統模塊主要是為注冊、登錄網站的用戶提供商品和信息服務。用戶選購商品,添加到購物車,填寫并提交訂單。將前臺模塊再細分為首頁用戶管理模塊、購物車模塊、訂單模塊。對前臺模塊的設計如下:
(1)首頁用戶管理模塊
用戶首次進入網上商城可以瀏覽商城信息,但不能進行購買等操作。只有注冊成為商城用戶,才能登陸進行購買等操作。登陸商城后,在首頁用戶管理界面可以進行密碼修改,真實姓名和聯系方式修改等操作。
(2)購物車管理模塊
用戶瀏覽商品,可以將心儀的商品添加到購物車,商品價格會根據用戶選購商品的顏色、版本、容量的不同而進行自動變動,同時購物車界面也可以根據商品的數量、種類等變化實現總價的自動變動。用戶選購了某一商品加入購物車之后可繼續挑選其他商品加入購物車,最后將購物車中數件商品一起結算生成訂單項。當退出當前用戶或者提交訂單時實現購物車清空。
(3)訂單管理模塊
用戶可以查看自己已下的訂單,訂單進行分頁顯示,每頁顯示4條信息。用戶點擊訂單頁面的訂單支付按扭之后,訂單為未審核狀態;付款成功之后訂單為己付款狀態﹔賣家發貨之后訂單為已發貨狀態:用戶點擊訂單頁面該訂單的確認收貨按鈕時,訂單改為交易成功狀態,這時訂單狀態不能再被更改。
3.3.2后臺子系統業務流程
管理員用戶通過后臺管理子系統來對整個系統進行維護,后臺子系統操作簡單,直觀,功能完備。首先,管理員需用管理員賬號和密碼登錄成功才可進入后臺管理頁面,通常直接在數據庫中添加管理員賬號和密碼,這樣使得后臺子系統的安全性大大提高。在后臺子系統管理頁面中可查看前臺系統中用戶訂單信息列表,可對商品和商品分類菜單進行增刪改查操作,還可對訂單進行審核流轉模塊操作。對貨物進行上架操作流程圖3.4所示。
在這里插入圖片描述

圖3.4訂單審核流程圖
后臺子系統是面向管理者,為管理者提供基本的管理操作功能。后臺模塊分為底部信息、商品分類菜單管理模塊、商品管理模塊及訂單管理模塊。
(1)商品分類菜單管理模塊
對于商品二級分類菜單的管理,管理員可以查看已經存在的商品分類菜單信息,可以刪除已存在的分類菜單,也可以進行添加分類菜單,增加分類菜單。
(2)商品管理模塊
該模塊會顯示所有己上架的商品列表、可以修改已上架的商品,也可以進行商品添加,增加或修改時需選擇該商品所屬的商品二級分類菜單、是否熱門商品等。
(3)訂單管理模塊
該模塊會分頁顯示訂單列表,點擊訂單詳情可查看該訂單下的所有商品的名稱、LOGO圖片、數量和價格,每個管理員可以對自己管理的部分進行審核確定。
(4)底部信息管理模塊
該模塊會顯示所有已上架的商品列表,可以修改已上架的商品,也可以進行商品添加,增加或修改時需選擇該商品所屬的商品二級分類菜單、是否熱門商品等。
4.系統實現
4.1系統實現環境
網上商城系統采用了時下流行的Java程序設計語言進行開發,系統開發的工具采用Eclipse 平臺,其可以實現系統功能的編程、部署和運行服務這樣就可以保證系統的邏輯業務功能具有較強的完整性。系統部署過程中,論文采用穩定的Tomcat服務器,通用瀏覽器和Tomcat服務器加上 MySQL數據庫可以實現Web項目運行的邏輯業務流程。本系統采用了集成化開發環境JDK,系統的實現環境如表4.1所示。
表4.1系統環境
操作系統 windows10
數據庫 Mysq15.7
WEB服務器 Tomcat7.0
JDK JDK1.8
開發工具。 Eclipse、Navicate
4.2前臺首頁管理模塊
前臺首頁管理是前臺最主要的組成部分,包含用戶登錄、用戶注冊、找回密碼、密碼修改、信息修改、商品瀏覽、和評論等功能。
4.2.1用戶登錄
用戶登錄流程:用戶在登錄頁面輸入賬號密碼和驗證碼等信息后,通過前臺數據傳入后臺,然后在后臺再次進行非空和圖形驗證碼校驗,并連接數據庫,查詢用戶表中是否存在該用戶名且密碼與輸入密碼一致,前后臺校驗都通過才能進入系統。
用戶登錄流程:用戶在登錄頁面輸入賬號密碼和驗證碼等信息后,通過前臺數據傳入后臺,然后在后臺再次進行非空和圖形驗證碼校驗,并連接數據庫,查詢用戶表中是否存在該用戶名且密碼與輸入密碼一致,前后臺校驗都通過才能進入系統。
用戶登錄界面圖如圖4.1所示:
在這里插入圖片描述

圖4.1用戶登錄
通過一個全局變量Session來實現用戶 login.jsp頁面的登錄操作,從user表查得用戶提交的帳戶名和密碼正確后,把該賬戶密碼等信息存入Session變量(該變量名稱為“vip”) 。
具體的判斷過程為:
若session中 vip為空即session.getAttribute(“vip”) == null,表明沒有經過登錄驗證,則立即跳轉到login.jsp,請用戶登錄之后再進行下單操作;并將用戶登錄的賬號和密碼通過 login()方法判斷:先驗證用戶提交的驗證碼與服務器保存的驗證碼對比,如果相等再進行下一步的賬號密碼驗證,如果不同就返回驗證碼錯誤的提示,賬號密碼驗證就要通過后端數據庫進行驗證,controller層代碼如下:
vip=vipDAO.validateVip(username, MD5.md5(password));
DAO層sql查詢語句如下:
select * from vip where username=? and password=?and password =? ,如果查詢出的vip為空,則返回登錄失敗,跳轉回登錄頁面,并提示“登錄失敗”,如果用戶在數據庫中存在,把用戶的信息存入Session,并跳轉到商城首頁。
如果用戶已注冊過賬號,但是密碼遺忘了,就可以通過忘記密碼來找回密碼,具體實現為在用戶注冊時填寫的密保問題來回答,回答成功就將密碼重置為000000,其中要經過接受用戶輸入的用戶名與經過后臺數據庫查詢,判斷數據庫中有無該用戶名,沒有就返回提示該用戶名不存在,有該用戶名就進行下一步密保問題驗證,通過用戶輸入的密保問題與數據庫中答案進行比對,正確的就將密碼修改為經過MD5加密后的000000,密保問題錯誤就返回密碼錯誤。
4.2.2用戶注冊
新用戶首次進行購物,需要點擊首頁注冊按鈕,進行新用戶的注冊操作,填寫用戶詳細的個人信息。
用戶注冊流程:進入首頁注冊界面依次輸入賬戶名、密碼、性別、郵箱、電話號碼、密碼提示問題和密碼提示答案點擊“注冊”按鈕完成提交。
用戶注冊界面做了前臺Ajax驗證用戶名是否重復,Ajax驗證就是通過異步請求方式來提交輸入的用戶名,然后經過數據庫查詢操作判斷數據庫中是否有與其相同的用戶名,并將判斷結果傳入前端頁面來判斷顯示用戶名是否可以使用等字樣然后提交到后端來進行校驗提示,頁面如圖4.2所示。
在這里插入圖片描述

圖4.2用戶注冊頁面
用戶注冊信息的實現方法如下:
用戶在前臺頁面輸入用戶名、密碼、真實姓名、電話號碼等信息封裝入后臺的VIP類中,后臺獲取用戶輸入的信息,將參數提交給DAO層,調用DAO層,再從DAO層的VipDAO里邊的add方法將用戶信息存入數據庫,執行的sql語句為:insert into vip(username, password, sex, email,phone,score,question,answer, lastlogintime) values(?,?,?,?,?,?,?,?,?)
4.2.3首頁商品列表展示
首頁以每頁4個商品進行分頁顯示,顯示的內容默認為全部商品,商品上方導航欄有分類菜單,點擊相應的分類會篩選出來對應的商品列表,可以通過排序方式進行相應排序,排序規則有價格升序、價格降序、人氣升序、人氣降序、上架時間升序、上架時間降序也可以通過關鍵字搜索和分類篩選出更精確的商品列表,如圖4.3所示。
在這里插入圖片描述

圖4.3商品列表
商品列表實現方法如下:
如果用戶沒有點擊分類列表默認顯示全部商品,如果用戶選擇分類后將分類對應的categoryid傳入后端進行數據庫查詢操作,并將categoryid作為查詢條件,頁碼默認為1,頁碼的加減操作通過前端來運算,可通過下方的上下頁操作進行頁碼的加減后的頁碼傳入后端,通過頁碼的數字和設置查看多少條記錄的數據進行運算,得出數據進行sql語句拼接,默認以時間降序形式進行排序,如果用戶點擊排序方式就將排序名字傳入后端通過字符串拼接來代入數據庫查詢操作,通過controller層的displayProduct方法調用DAO層的 productDAO 的listWithOrderby方法進行查詢,將查詢結果封裝到List里邊轉發到前端頁面displayProduct.jsp進行顯示。
前端顯示頁面是通過接受request作用域中的數據,然后通過循環操作將后端封裝的列表數據輸出到頁面上,上下頁可寫在另外一個 jsp文件中,通過include引入到列表頁面displayProduct.jsp 頁面中,可以使頁面結構更加清晰,并提高了代碼的利用率,使代碼實現的高內聚,低耦合的編程思想。
4.2.4商品詳情頁面
點擊選中商品然后通過前端請求傳入一個productid到后端showDetail 方法中通過調用DAO層的ProductDao 的get方法查詢單條商品數據,封裝到實體類Product中,將數據存入到request作用域中,并采用轉發forward 操作到前端showDetail.jsp進行顯示操作,商品詳情頁面還包含該條商品的評論,評論則是將該條商品的productid傳入后端對評論表進行數據庫查詢操作,查詢條件為productid,并將查詢的評論列表封裝List存入request作用域中,經過forward轉發操作,到前臺循環操作顯示評論,并且用戶可以進行評論操作,將在session中存入的已登錄的vip用戶的信息和vip用戶評論的標題,內容等信息封裝進入數據庫進行數據庫插入操作,并判斷插入成功后,重定向到showDetail 中進行顯示。商品詳情頁面如圖4.4所示。
在這里插入圖片描述

圖4.4商品詳情頁面
4.2.5訂單支付流程
點擊首頁和其他子頁面的商品圖片會跳轉到商品信息頁面,選擇商品數量,然后點擊加入購物車,如果已經登錄會跳轉到購物車頁面,如果沒有登錄則會跳轉到登錄界面購物車頁面有登錄校驗,沒有登錄的用戶點擊加入購物車會直接跳轉到登錄頁面,具體實現方式是先獲取Session 中用戶的登錄信息 vip變量,再判斷vip變量是否為空,如果是為空,就重定向到login.jsp頁面,如果用戶已登錄,會調用addCart方法將商品信息存入session中,點擊結算中心按鈕后,先調用toaddress方法,查詢用戶的收貨地址返回到前臺頁面讓用戶選擇,如果用戶沒有收貨地址就會顯示出添加收貨地址頁面,添加收貨地址提交后調用saveAddress方法封裝地址信息調用數據庫存入數據庫中,重新跳轉到選擇配送地址和支付方式頁面,點擊結算按鈕會調用toOrderConfirm方法,查詢到支付方式,收貨信息,和商品清單等信息返回到前端用于用戶確認,確認之后才會將訂單提交到makeorder方法中,調用Dao 層的OrdersDao的makeOrder方法,如果用戶沒有收貨地址就會顯示出添加收貨地址頁面,添加收貨地址提交后調用saveAddress方法封裝地址信息調用數據庫存入數據庫中,重新跳轉到選擇配送地址和支付方式頁面,點擊結算按鈕會調用toOrderConfirm方法,查詢到支付方式,收貨信息,和商品清單等信息返回到前端用于用戶確認,確認之后才會將訂單提交到makeorder方法中,調用Dao層的OrdersDao的makeOrder 方法,由于要進行兩次插入操作,這里應該開啟事務,兩條sql執行成功后才會提交事務,如果發生錯誤,就回滾事務,并返回flase,確定訂單頁面如圖4.5所示。
在這里插入圖片描述

圖4.5確認訂單頁面
購物車界面如圖4.6所示。
在這里插入圖片描述

圖4.6購物車界面
4.3后臺管理模塊
在后臺登錄界面輸入管理員賬號密碼就進入了后臺管理頁面,該頁面主要分為訂單管理、分類管理、商品管理和底部信息管理四項,四個都有查看的列表功能,其中分類管理和商品管理和底部信息管理都有增加和刪除的功能,商品管理還有編輯修改等功能。
4.3.1商品模塊
點擊商城后臺管理系統頁面左側目錄的商品管理,會在頁面右側分頁顯示出所有的商品信息,并且每條信息后面都有編輯和刪除按鈕,下方還有添加按鍰,按對應按鈕會跳轉到對應的編輯和添加商品頁面,商品管理頁面如圖4.7所示。
在這里插入圖片描述

圖4.7后臺管理頁面
4.3.2分類管理
點擊商城后臺管理系統頁面分類管理,會在頁面右側顯示出所有的分類菜單信息,并且每條信息后面都有刪除按鈕,下方還有添加按鈕,按對應按鈕會跳轉到對應的編輯和添加菜單頁面,添加分類后臺管理頁面如圖4.8所示。
在這里插入圖片描述

圖4.8后臺添加分類頁面
4.3.3訂單管理
點擊商城后臺管理系統頁面訂單管理,會在頁面右側顯示出所有的訂單信息,每頁兩條,并且每條信息后面都有刪除明細和確認審核按鈕,按明細按鈕會跳轉購買的詳細信息頁面,按確認審核按鈕,訂單被審核,轉為未付款訂單,訂單后臺管理頁面如圖4.9所示。
在這里插入圖片描述

圖4.9訂單管理頁面
4.3.4底部信息管理
點擊商城底部信息管理系統頁面底部信息管理,會在頁面右側顯示出所有的底部信息菜單,并且每條信息后面都有刪除按鈕,下方還有添加按鈕,按對應按鈕會跳轉到對應的編輯和添加頁面,添加信息后臺管理頁面如圖4.10所示。

在這里插入圖片描述

圖4.10添加信息頁面
5.系統測試
5.1測試的目的
系統完成之后,對各個模塊的功能進行了詳細的測試,輸入數據和預測輸出數據相比,發現了一些問題。主要是在查詢過程中預計查詢結果和實際結果不一致,有時候達不到目的,對數據庫的操作表之間的關聯考慮得不夠周到,因此往往會出現一些小的錯誤。還有查詢條件的前后數據類型不一致也是一個很常見的錯誤,需要靠一步步的查找解決。各個模塊組裝完成后,又會出現一些問題。比如在操作購物車結帳的這個流程中,由于是多次添加和修改,最后結帳,所以很容易造成數據混亂,必須對相應的數據關系理清楚,一些關鍵查詢統計的SQL語句必須反復斟酌才能放在程序中使用。
5.2測試的要求
在此系統進行初步實現之后,開始進行對系統進行測試,找出系統中存在的 Bug,通過測試,用提交的 Bug報告來為以后軟件的改進提供標準和參考,能夠在以后的系統改進中找到依據。
測試后的軟件各模塊基本功能能順利進行,盡可能的提高軟件的健壯性。
5.3測試的主要內容
對本系統的測試內容主要包括以下五個方面:
(l)功能測試:對商城的每一個功能都要仔細測試,尤其是整個購物流程的暢通,只有這樣才能確保商城所有的功能都能正常工作。
(2)性能測試:對系統的目的性、整體性、突變性以及執行效率都要進行周密細致的檢驗。
(3)余量測試:對系統一些功能進行邊界值測試,檢測系統的穩定性。
(4)強化測試:系統的有些錯誤需反復多次測試才能查出。
(5)兼容性測試:在不同操作系統、不同瀏覽器、不同顯示器大小或分辨率甚至不同國家或網絡上全面測試本系統是否有兼容性問題。
5.4測試的方法
測試通常分為黑盒測試和白盒測試。
(1)黑盒測試又稱為功能測試,在程序接口進行,只檢查程序功能是否能夠按照規格說明書的規定正確使用,程序是否能適當地接收輸入數據并發生正確的輸出信息,而且要能夠保持外部信息的完整性。本系統采用的就是黑盒測試,各類測試用例表見5.1至5.7。
(2)白盒測試又叫結構測試,完全了解程序的結構和處理過程,這種方法按照程序內部的邏輯測試程序,檢驗程序中每條通路是否都能按照預定要求正確工作。
5.5測試用例的設計
本文采用黑盒測試來進行系統的功能測試,依據系統功能的需求分析的具體功能點對系統進行測試,來檢測系統的功能。所謂黑盒,就是不需要去考慮系統內部是如何運作的,只需要針對系統界面和功能進行測試。以后臺管理子系統的主要模塊為例進行測試結果的展示。
購物模塊功能測試結果如表5.1所示。
表5.1購物模塊測試用例
測試編號 用例名稱 測試流程 預期結果 實際結果 結果
1 用戶登錄 輸入賬號密碼和驗證碼,點擊登錄 登錄成功 登錄成功 通過
2 商品放入購物車 點擊商品,再點擊加入購物車按鈕 商品已放入購物車 商品已放入購物車 通過
3 設置配送地址 在訂單的配送信息框選擇配送信息 配送地址設置成功 配送地址設置成功 通過
評論管理模塊功能測試結果如表5.2所示。
表5.2評論管理模塊測試用例
測試編號 用例名稱 測試流程 預期結果 實際結果 結果
1 評論商品 首先輸入評論標題、評分內容,然后點擊評論按鈕 評論發布成功 評論發布成功 通過

修改信息模塊功能測試結果如表5.3所示。
表5.3修改信息模塊測試用例
測試編號 用例名稱 測試流程 預期結果 實際結果 結果
1 修改密碼 輸入原始密碼、新密碼和確認新密碼,點擊修改按鈕 密碼修改成功 密碼修改成功 通過
2 修改個人信息 選擇性別,輸入Email、電話,查看密碼提示問題,點擊修改 個人信息修改成功 個人信息修改成功 通過
商品管理模塊功能測試結果如表5.4所示。
表5.4商品管理模塊測試用例
測試編號 用例名稱 測試流程 預期結果 實際結果 結果
1 修改商品 點擊修改按鈕,然后對商品信息進行修改 商品信息修改成功 商品信息修改成功 通過
2 刪除商品 點擊刪除按鈕 商品信息刪除成功 商品信息刪除成功 通過
3 查看商品 點擊商品列表按鈕 商品信息顯示成功 商品信息顯示成功 通過
4 添加商品 點擊添加商品按鈕,然后輸入商品信息 商品添加成功 商品添加成功 通過
訂單管理模塊功能測試結果如表5.5所示 。
表5.5訂單管理模塊測試用例
測試編號 用例名稱 測試流程 預期結果 實際結果 結果
1 查看訂單 點擊全部訂單按鈕 訂單信息顯示成功 訂單信息顯示成功 通過
2 更新訂單狀態 審核商品信息 訂單交易成功 訂單交易成功 通過

6.總結
通過開發本系統,我較全面的掌握了JAVA的基本知識和編程技巧,并在開發過程中我的JAVA開發能力得到了進一步的提高。對SQL語言的使用也更加熟練,以前學過的軟件工程知識、數據庫原理及操作也得到了充分的應用。目前基于該模型的系統處于實踐階段,還存在許多問題與不足,如實現的功能不太完善,界面不夠美觀等,,這些功能與技術還需要加以提高和實現。
在開發過程中我也學到了一些經驗:系統分析的好壞將決定著的系統開發成功與否,一份好分析設計將是成功開發主要因素。我們在著手開發之前不要急于編程,先應有較長的時間去把分析做好,做好數據庫設計工作,寫出相關的開發文檔等。然后再開始編寫程序代碼,這樣做到每寫一步代碼心底有數,有條不絮。
對我來說,這次設計的本身所產生的影響,還遠遠沒有結束,我從本次實訓設計中學到了許多課本上沒有的知識。從設計任務商品的下達到今天基本實現任務商品中的設計要求。通過自己的學習和努力,通過老師的指導和教育,使我不僅僅在知識水平和解決實際問題的能力上有了很大的提高,還從思想的深處體會到,要把自己的所學變成現實時所將面對的種種難題。今后我會更加努力地進行實踐學習 。

7.參考資料
[1] 武延軍 黃飛躍. 精通JSP編程技術[M]. 北京:人民郵電出版社,2001.8:170-200
[2] 柏亞軍. JSP編程基礎及應用實例集錦[M].北京:人民郵電出版社,2001.7:10-60
[3] 清宏計算機工作室.JSP編程技巧[M].北京:機械工業出版社,2000.1:103-106
[4] 周影 .網絡編程語言JSP實例教程[M].北京:電子工業出版社,2003.6:30-55
[5] 陳海山.深入Java Servlet 網絡編程[M].北京:清華大學出版社,2002.2 :12-20
[6]Donny.JSP與網站開發編程實戰[M].北京:科學出版社 ,2001.7:166-184
[7]Steven Holzner.Java技術內幕[M].北京:機械工業出版社,2002.1:65-70
[8] Phil Hanna .JSP技術大全[M].北京:機械工業出版社, 2002.3 :37-57
[9] Karl Moss. Java Servlet開發人員指南[M].北京:清華大學出版社,2002:189-192
[10]蔡劍,景楠. Java Web應用開發:J2EE和Tomcat[M].北京: 清華大學出版社. 2005:23-132

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/717569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sora學習(一):Sora技術路徑整體認知

前文:最近跟著DataWhale組隊學習這一期“Sora原理與技術實戰”,本篇博客主要是基于DataWhale成員、廈門大學平潭研究院楊知錚研究員分享的Sora技術原理詳解課件內容以及參考網上一些博客資料整理而來(詳見文末參考文獻)&#xff0…

【談一談】并發編程_鎖的分類

【談一談】并發編程_鎖的分類 Hello!~大家好!~每天進步一點點,日復一日,我們終將問劍頂峰 這里主要是介紹下我們常用的鎖可以分為幾類,目的是整體框架作用~方便后續的并發文章 說白了,這篇就是開頭哈~ 本文總綱: 一.可重入鎖和不可重入鎖 我們開發中一般用到的都是可重入鎖比如…

Photoshop 2023:重塑創意,引領數字藝術新紀元

在數字藝術的浩瀚星空中,Adobe Photoshop 2023(簡稱PS 2023)如同一顆璀璨的新星,為Mac和Windows用戶帶來了前所未有的創意體驗。這款強大的圖像處理軟件不僅繼承了前作的精髓,更在細節上進行了諸多創新,讓每…

運行Python文件時出現‘utf-8’code can‘t decode byte 如何解決?(如圖)

如圖 亦或者出現“SyntaxError: Non-UTF-8 code starting with \xbb ” 出現這種問題往往是編碼格式導致的,我們可以在py文件中的第一行加入以下代碼: # codingutf-8或者 # codinggdk優先使用gbk編碼 解釋一下常用的兩種編碼格式: utf-…

朱維群將出席用碳不排碳碳中和頂層科技路線設計開發

演講嘉賓:朱維群 演講題目:“用碳不排碳”碳中和頂層科技路線設計開發 簡介 姓名:朱維群 性別:男 出生日期:1961-09-09 職稱:教授 1998年畢業于大連理工大學精細化工國家重點實驗室精細化工專業&…

什么是B+樹,和B樹有什么不同?

👉博主介紹: 博主從事應用安全和大數據領域,有8年研發經驗,5年面試官經驗,Java技術專家,WEB架構師,阿里云專家博主,華為云云享專家,51CTO 專家博主 ?? 個人社區&#x…

Spring Initializer環境問題

1.基于jdk8與本地 環境準備 1)下載jdk8并安裝 2&#xff09;下載maven 3.6.3并解壓放入D盤maven目錄下&#xff0c;去掉外層 設置阿里源 打開settings.xml,在mirrors標簽之內增加&#xff0c;注意粘貼后</id>中的/有可能被刪掉&#xff0c;要自己補上 <mirror>&l…

健身房預約小程序制作詳細步驟解析

如果你是一位健身愛好者&#xff0c;或者是一位健身教練&#xff0c;你一定知道預約健身的痛苦。傳統的預約方式不僅麻煩&#xff0c;而且效率低下。但是&#xff0c;現在&#xff0c;我們可以使用一種神仙工具——喬拓云網&#xff0c;來搭建一個屬于自己的健身預約小程序&…

【VTKExamples::PolyData】第四十三期 PolyDataPointSampler

很高興在雪易的CSDN遇見你 VTK技術愛好者 QQ:870202403 前言 本文分享VTK樣例PolyDataPointSampler,并解析接口vtkPolyDataPointSampler,希望對各位小伙伴有所幫助! 感謝各位小伙伴的點贊+關注,小易會繼續努力分享,一起進步! 你的點贊就是我的動力(^U^)ノ~YO …

如何使用 CrewAI 構建協作型 AI Agents

一、前言 AI Agents 的開發是當前軟件創新領域的熱點。隨著大語言模型 (LLM) 的不斷進步&#xff0c;預計 AI 智能體與現有軟件系統的融合將出現爆發式增長。借助 AI 智能體&#xff0c;我們可以通過一些簡單的語音或手勢命令&#xff0c;就能完成以往需要手動操作應用程序才能…

運維的利器–監控–zabbix–grafana

運維的利器–監控–zabbix–grafana 一、介紹 Grafana 是一個跨平臺的開源的度量分析和可視化工具 , 可以通過將采集的數據查詢然后可視化的展示 。zabbix可以作為數據源&#xff0c;為grafana提供數據&#xff0c;然后grafana將數據以圖表或者其他形式展示出來。zabbix和gra…

基于YOLOv的目標追蹤與無人機前端查看系統開發

一、背景與簡介 隨著無人機技術的快速發展&#xff0c;目標追蹤成為無人機應用中的重要功能之一。YOLOv作為一種高效的目標檢測算法&#xff0c;同樣適用于目標追蹤任務。通過集成YOLOv模型&#xff0c;我們可以構建一個無人機前端查看系統&#xff0c;實現實時目標追蹤和可視化…

零基礎學編程,中文編程工具之進度標尺構件的編程用法

零基礎學編程&#xff0c;中文編程工具之進度標尺構件的編程用法 一、前言 今天給大家分享的中文編程開發語言工具 進度條構件的用法。 編程入門視頻教程鏈接 https://edu.csdn.net/course/detail/39036 編程工具及實例源碼文件下載可以點擊最下方官網卡片——軟件下載——…

機器人持續學習基準LIBERO系列9——數據集軌跡查看

0.前置 機器人持續學習基準LIBERO系列1——基本介紹與安裝測試機器人持續學習基準LIBERO系列2——路徑與基準基本信息機器人持續學習基準LIBERO系列3——相機畫面可視化及單步移動更新機器人持續學習基準LIBERO系列4——robosuite最基本demo機器人持續學習基準LIBERO系列5——…

Python AI 實現繪畫功能(附帶源碼)

本文我們將為大家介紹如何基于一些開源的庫來搭建一套自己的 AI 作圖工具。 需要使用的開源庫為 Stable Diffusion web UI&#xff0c;它是基于 Gradio 庫的 Stable Diffusion 瀏覽器界面 Stable Diffusion web UI GitHub 地址&#xff1a;GitHub - AUTOMATIC1111/stable-dif…

快速解決maven依賴沖突

我們在開發過程中經常出現maven依賴沖突&#xff0c;或者maven版本不匹配的情況&#xff0c;我們可以使用阿里云原生腳手架來做maven管理&#xff0c;添加需要的組件&#xff0c;然后點擊獲取代碼&#xff0c;就可以獲得對應的依賴文件。

【重要公告】對BSV警報系統AS的釋義

??發表時間&#xff1a;2024年2月15日 由BSV區塊鏈協會開發并管理的BSV警報系統&#xff08;Alert System&#xff0c;以下簡稱“AS”&#xff09;是BSV網絡的重要組件。它是一個復雜的系統&#xff0c;主要職能是在BSV區塊鏈網絡內發布信息。這些信息通常與網絡訪問規則NAR相…

c# 任務(Task)介紹

任務&#xff08;Task&#xff09; Task作為C#異步的核心&#xff0c;Task位于System.Threading.Tasks命名空間下。 創建任務的基本原理是使用線程池&#xff0c;也就是說任務最終也是要交給線程去執行的。但是微軟優化了任務的線程池&#xff0c;使線程的控制更加精準和高效…

自定義TypeHandler

自定義TypeHandler 繼承BaseTypeHandler指定具體的泛型 MappedTypes({Date.class}) MappedJdbcTypes({JdbcType.DATE}) public class DateTimeWithTImeZoneTypeHandler extends BaseTypeHandler<Date> {Log log LogFactory.getLog(DateTimeWithTImeZoneTypeHandler.cl…

C++基于多設計模式下的同步異步日志系統day4

&#x1f4df;作者主頁&#xff1a;慢熱的陜西人 &#x1f334;專欄鏈接&#xff1a;C基于多設計模式下的同步&異步日志系統 &#x1f4e3;歡迎各位大佬&#x1f44d;點贊&#x1f525;關注&#x1f693;收藏&#xff0c;&#x1f349;留言 只要內容主要實現了同步日志消息…