《JAVA網(wǎng)上商城系統(tǒng)課設(shè)報告.doc》由會員分享,可在線閱讀,更多相關(guān)《JAVA網(wǎng)上商城系統(tǒng)課設(shè)報告.doc(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
目 錄
1.緒論 1
1.1課題研究背景 1
1.2課題研究意義 1
1.3國內(nèi)外的發(fā)展現(xiàn)狀 2
2.需求分析 3
2.1 技術(shù)可行性分析 3
2.2 操作可行性分析 3
2.3 成本可行性分析 3
3.總體設(shè)計 4
4.詳細(xì)設(shè)計 6
4.1 數(shù)據(jù)庫設(shè)計 6
4.1.1 概念建模 6
4.1.2 物理建模 6
4.1.3數(shù)據(jù)庫表結(jié)構(gòu) 8
4.2 功能設(shè)計 12
4.3 代碼設(shè)計 14
4.3.1后臺功能 14
4.3.2前端功能 18
5.結(jié)論 27
參考文獻(xiàn) 28
1.緒論
1.1課題研究背景
隨著社會經(jīng)濟的發(fā)展和信息技術(shù)的高度發(fā)達(dá),越來越多的企業(yè)和個人的購物方式和以前有了實質(zhì)的改變,網(wǎng)上商店逐漸增多,交易的方式也從以前的網(wǎng)上發(fā)布,然后網(wǎng)下交易購買,發(fā)展到了直接通過網(wǎng)絡(luò)進行在線支付,隨著物流的發(fā)展,交易的物品也從以前的大件物品,發(fā)展到現(xiàn)在幾乎所有商品都能在網(wǎng)上購買。因此,為了更方便顧客購物,就需要有一個功能比較完善的網(wǎng)上商城系統(tǒng)來實現(xiàn)這個平臺。網(wǎng)上商城系統(tǒng)是解決實體商城各種問題的一種方法。因此該課題具有一定的意義和研究價值。
1.2課題研究意義
相對于傳統(tǒng)的實體商城,網(wǎng)上商城投資少,回收快。一項針對中國中小企業(yè)的情況調(diào)查顯示,個人在網(wǎng)下啟動銷售公司的平均費用至少5萬元,而網(wǎng)上開店建店成本非常小。一般說,籌辦一家網(wǎng)上的商店投入很小,不用去辦營業(yè)執(zhí)照,不用去租門面,不用囤積貨品,所需資金不過1500元左右;網(wǎng)上商店比同等規(guī)模的地面商店“租金”要低得多,同時租金不會因為營業(yè)面積的增加而增加,投資者也不用為延長營業(yè)時間而增加額外的費用。
基本不需要占壓資金。傳統(tǒng)商店的進貨資金少則幾千元,多則數(shù)萬元,而網(wǎng)上商店則不需要壓資金。
24小時營業(yè)時間。網(wǎng)上商店延長了商店的營業(yè)時間,一天24小時、一年365天不停地運作,無須專人值班看店,都可照常營業(yè)。傳統(tǒng)店鋪的營業(yè)時間一般為8-12小時,遇上壞天氣或者老板、店員有急事也不得不暫時休息。
銷售規(guī)模不受地盤限制。傳統(tǒng)商店有多大就只能擺放多少商品,生意大小常常被小店面積限制。而在網(wǎng)上,即便在地面上只有一個小商店,或者干脆就沒有門面,開店的生意卻可以照樣做得很大。
不受店面空間的限制。哪怕只是街邊小店,在網(wǎng)上卻可以擁有百貨大樓那么大的店面,只要投資者愿意,可以擺上成千上萬種商品。目前國內(nèi)最大的專業(yè)拍賣網(wǎng)站同時在線的商品要超過10萬件——已超過一些大超市。
不受地理位置影響。不管客戶離店有多遠(yuǎn),也不管顧客是國內(nèi)還是國外,在網(wǎng)上,客戶一樣可以很方便地找到并購買商品。這令消費群體突破了地域的限制,變得無限廣闊了。
1.3國內(nèi)外的發(fā)展現(xiàn)狀
伴隨著Internet的蓬勃發(fā)展,網(wǎng)絡(luò)購物中心作為電子商務(wù)的一種形式正以其高效、低成本的優(yōu)勢,逐步成為新興的經(jīng)營模式和理念,人們已不再滿足于信息瀏覽和發(fā)布,而是渴望著能夠充分享受網(wǎng)絡(luò)所帶來的更多的便利??蛻糇悴怀鰬舯憧梢苑奖憧旖莸倪x購自己喜歡的商品,這正是網(wǎng)絡(luò)購物中心為客戶帶來的好處。
敏銳的網(wǎng)絡(luò)商家當(dāng)然不會錯過這樣絕好的機會,越來越多的網(wǎng)站投身到提供網(wǎng)絡(luò)購物服務(wù)的行列中來,一個基于Internet的全球電子商務(wù)框架正在形成。
在我國,網(wǎng)上購物從無到有也不過短短幾年時間。我國第一家網(wǎng)上購物發(fā)生在1996年,燕莎友誼商場首次通過網(wǎng)上商城售出一個景泰藍(lán),雖然貨款的支付不是在網(wǎng)上進行的,但這畢竟為我國零售業(yè)奏出了網(wǎng)上購物的先聲。根據(jù)CNNIC的統(tǒng)計結(jié)果,截止2004年1月中國有互聯(lián)網(wǎng)用戶7950萬人,而又有40.7%以上的網(wǎng)民在過去的一年里有過網(wǎng)上購物經(jīng)歷,這就說明中國有網(wǎng)上購物的用戶達(dá)是3235.7萬人,并且這一數(shù)字還在以17%左右的速度增長,到2006年中國網(wǎng)上購物用戶將達(dá)到6962萬人,這說明在中國發(fā)展網(wǎng)上購物具有良好的群眾基礎(chǔ),網(wǎng)上購物方式日趨被大家所接受。
因此,設(shè)計一個網(wǎng)上購物網(wǎng)站具有非常好的開發(fā)與應(yīng)用前景。
2.需求分析
2.1 技術(shù)可行性分析
本系統(tǒng)在前臺用在前臺用JSP進行頁面開發(fā)和管理用戶界面,提示信息完善,界面友好,具有較強的親和力,后臺采用MYSQL數(shù)據(jù)開發(fā)和管理數(shù)據(jù)庫,對數(shù)據(jù)庫操作采用事務(wù)處理機制,具有強大的錯誤處理功能。本系統(tǒng)的開發(fā)環(huán)境是使用現(xiàn)在非常流行的開源開發(fā)工具Eclipse和Tomcat服務(wù)器。使用的靈活、以及他們當(dāng)前的廣泛實際應(yīng)用,充分說明本系統(tǒng)在技術(shù)方面可行。
2.2 操作可行性分析
本系統(tǒng)采用的是網(wǎng)上管理,非常簡單、易懂,不需要具有非常高的計算機專業(yè)知識,只需要管理員能夠上網(wǎng),就可對商城進行維護。
2.3 成本可行性分析
整個開發(fā)過程只需要一臺裝有上述所需求的各種軟件的PC機就可以實現(xiàn)全部的開發(fā)任務(wù)。目前的計算機硬件市場競爭比較激烈,在價格上都出現(xiàn)了從沒有過低廉;而所需要的各種軟件,在相關(guān)產(chǎn)品的官方網(wǎng)站上都可以免費下載,而且還不斷的有增加了最新功能的升級版的出現(xiàn)。因此,整個開發(fā)成本可以說是非常的低廉,這也為我進一步完善我的網(wǎng)站提供了更大的方便。
在使用成本上,用戶只需要擁有一臺能夠連接到國際互聯(lián)網(wǎng)上的計算機,通過注冊就可以在世界的任何一個角落使用網(wǎng)站的全部功能和服務(wù)。而且對計算機的硬件的需求也不是很高,軟件方面也沒有特殊的需求,極大了方便了廣大用的訪問與使用。
因此,從成本可行性分析來看,這個網(wǎng)站體現(xiàn)了經(jīng)濟實惠,但是功能強大的特點。
3.總體設(shè)計
網(wǎng)上商城系統(tǒng)又稱在線商城系統(tǒng),其功能主要包含商品的管理、會員的管理、訂單的管理、在線支付等。本次實訓(xùn)將由指導(dǎo)老師帶領(lǐng)學(xué)生有Java EE技術(shù)完成“網(wǎng)上商城系統(tǒng)”的設(shè)計與開發(fā),主要開發(fā)的功能如圖3-1所示。
商城平臺
用戶
管理員
注冊
下訂單
瀏覽商品
搜索商品
查看訂單
訂單管理
會員管理
商品管理
配送管理
圖3-1 功能圖
1)后臺功能
商品模塊:包括后臺商品庫存管理、上貨、出貨、編輯管理和商品分類管理、商品品牌管理等。
訂單模塊:在線訂單程序,使消費者能夠順利的通過Web在線的方式,直接生成購買訂單。
會員模塊:在購物系統(tǒng)中,集成會員注冊是吸引會員進行二次購買和提升轉(zhuǎn)換率最好的方式。
配送模塊:購物系統(tǒng)集成的物流配送方式,從而方便消費者對物流方式進行在線選擇。如:EMS、順風(fēng)等等。
2)前端功能
商品搜索:通過前端界面,以標(biāo)準(zhǔn)的或者其他個性化的方式向用戶展示商品各類信息,完成購物系統(tǒng)內(nèi)信息流的傳遞。
購物車:用戶可對想要購買的商品進行網(wǎng)上訂購,在購物過程中,隨時增刪商品。
商品瀏覽:隨著電子商務(wù)的發(fā)展商品圖片成為吸引消費者的第一要素,多圖展示即提供前臺多張圖片的展示,從而提升消費者的購物欲望。
用戶管理模塊:為了方便于網(wǎng)站的管理,必須由一套完整的用戶管理體系。該網(wǎng)站用戶管理模塊主要實現(xiàn)用戶的注冊、登錄、找回密碼3方面功能。
為了全面的了解前端功能,圖3-2將前端的購物流程詳細(xì)的展示。
圖3-2購物流程
4.詳細(xì)設(shè)計
4.1 數(shù)據(jù)庫設(shè)計
4.1.1 概念建模
本系統(tǒng)實體包括:管理員、網(wǎng)站、顧客、商品、購物車、訂單。如圖4-1所示:
圖4-1 E-R圖
4.1.2 物理建模
數(shù)據(jù)庫表之間關(guān)系如圖4-1所示:
圖4-2數(shù)據(jù)庫表關(guān)系圖
4.1.3數(shù)據(jù)庫表結(jié)構(gòu)
整個購物系統(tǒng)能運行離不開數(shù)據(jù)庫的支持,數(shù)據(jù)庫在整個系統(tǒng)的最底部發(fā)揮著不可忽視的作用。沒有了數(shù)據(jù)庫的支撐,系統(tǒng)無法運行。由此可見,系統(tǒng)離不開數(shù)據(jù)庫,在系統(tǒng)之前首先必須保證數(shù)據(jù)庫的準(zhǔn)備工作已經(jīng)完成。本系統(tǒng)采用的是Mysql數(shù)據(jù)庫,數(shù)據(jù)庫的準(zhǔn)備工作需要以下幾個表來保存整個系統(tǒng)的重要信息,它們分別是:
商品表,用來存儲購物系統(tǒng)的所有商品的信息,能夠根據(jù)這個表來管理所有的商品信息,如表4-1所示。
表4-1 商品表(product)
字段
類型
長度
備注
productid
int
11
商品表主鍵
productname
varchar
200
商品名
categoryid
int
11
分類ID(外鍵)
storecount
int
11
庫存量
marketprice
float
10
市場價
saleprice
float
10
銷售價
hit
int
11
點擊量
addtime
varchar
200
上架時間
isdel
varchar
255
是否下架
content
text
商品詳情
商品圖片表,用來存儲購物系統(tǒng)的商品的所有圖片信息,能夠根據(jù)這個表來管理商品所有的圖片信息,如表4-2所示。
表4-2 商品圖片表(pic)
字段
類型
長度
備注
picid
int
11
主鍵
picurl
vachar
200
圖片路徑
productid
int
11
商品ID(外鍵)
分類表,用來存儲購物系統(tǒng)的所有商品的分類信息,能夠根據(jù)這個表來管理所有的分類信息,如表4-3所示。
表4-3 分類表(category)
字段
類型
長度
備注
categoryid
int
11
分類表主鍵
categoryname
varchar
100
分類名
parnetid
int
11
父分類ID
level
int
11
分類的級
商品屬性名稱表,用來存儲購物系統(tǒng)的所有商品屬性名稱信息,能夠根據(jù)這個表來管理所有商品屬性名稱信息,如表4-4所示。
表4-4 商品屬性名稱表(attribute)
字段
類型
長度
備注
attributeid
int
11
主鍵
name
varchar
100
商品屬性名字
商品屬性值表,用來存儲購物系統(tǒng)的所有商品屬性值的信息,能夠根據(jù)這個表來管理所有商品屬性值的信息,如表4-5所示。
表4-5 商品屬性值表(value)
字段
類型
長度
備注
valueid
int
11
主鍵
valuestr
varchar
100
商品屬性值
商品屬性中間表,用來存儲購物系統(tǒng)的所有商品的屬性信息,能夠根據(jù)這個表來管理所有商品的屬性信息,如表4-6所示。
表4-6 商品屬性中間表(attrvalue)
字段
類型
長度
備注
id
int
11
主鍵
attributeid
int
11
商品屬性名稱ID(外鍵)
valueid
int
11
商品屬性值ID(外鍵)
productid
int
11
商品ID(外鍵)
發(fā)票表,用來存儲購物系統(tǒng)的發(fā)票信息,能夠根據(jù)這個表來管理發(fā)票,如表4-7所示。
表4-7 發(fā)票表(invocie)
字段
類型
長度
備注
invocieid
int
11
主鍵
title
vachar
100
發(fā)票類型
content
vachar
100
明細(xì)
orderid
int
11
訂單ID(外鍵)
訂單明細(xì)表,用來存儲購物系統(tǒng)的所有訂單詳細(xì)信息,能夠根據(jù)這個表來管理訂單詳細(xì)信息,如表4-8所示。
表4-8 訂單明細(xì)表(orderdetail)
字段
類型
長度
備注
orderdetailid
int
11
主鍵
productid
int
11
商品表ID
productname
varchar
100
商品名
saleprice
float
10
銷售價
buycount
int
11
購買數(shù)量
orderid
int
11
訂單ID(外鍵)
訂單表,用來存儲購物系統(tǒng)的所有訂單信息,能夠根據(jù)這個表來管理訂單信息,如表4-9所示。
表4-9 訂單表(orders)
字段
類型
長度
備注
orderid
int
11
主鍵
orderno
vachar
100
訂單編號
userid
int
11
用戶ID(外鍵)
bz
varchar
100
標(biāo)志
paywayid
int
11
支付方式ID(外鍵)
sendwayid
int
11
配送方式ID(外鍵)
total
float
10
總價
支付方式表,用來存儲購物系統(tǒng)的支付信息,能夠根據(jù)這個表來管理支付信息,如表4-10所示。
表4-10 支付方式表(payway)
字段
類型
長度
備注
paywayid
int
11
主鍵
title
vachar
100
支付方式
收貨人信息表,用來存儲購物系統(tǒng)的收貨人信息,能夠根據(jù)這個表來管理收貨人信息,如表4-11所示。
表4-11 收貨人信息表(receive)
字段
類型
長度
備注
receiveid
int
11
主鍵
receiver
varchar
100
收貨人
address
varchar
100
地址
mobile
varchar
100
手機
phone
varchar
100
固話
mail
varchar
100
郵件
postcode
varchar
255
郵編
配送方式表,用來存儲購物系統(tǒng)的配送方式,能夠根據(jù)這個表來管理配送方式,如表4-12所示。
表4-12 配送方式表(sendway)
字段
類型
長度
備注
sendwayid
int
11
主鍵
sendway
varchar
100
配送方式
sendmoney
float
10
運費
用戶表,用來存儲所有會員用戶的信息,能夠根據(jù)這個表管理所有用戶,如表4-13所示。
表4-13 用戶表(user)
字段
類型
長度
備注
userid
int
11
主鍵
username
varchar
100
用戶名
password
vachar
100
密碼
realname
varchar
100
真實姓名
score
int
11
積分
amount
float
10
余額
question
varchar
100
問題
answer
varchar
100
答案
email
varchar
100
郵箱
tel
varchar
100
電話
4.2 功能設(shè)計
網(wǎng)上商城系統(tǒng)又稱在線商城系統(tǒng),其功能主要包含商品的管理、會員的管理、訂單的管理、在線支付等。
1)后臺功能
商品模塊:包括后臺商品庫存管理、上貨、出貨、編輯管理和商品分類管理、商品品牌管理等。
訂單模塊:在線訂單程序,使消費者能夠順利的通過Web在線的方式,直接生成購買訂單。
會員模塊:在購物系統(tǒng)中,集成會員注冊是吸引會員進行二次購買和提升轉(zhuǎn)換率最好的方式。
配送模塊:購物系統(tǒng)集成的物流配送方式,從而方便消費者對物流方式進行在線選擇。如:EMS、順風(fēng)等等。
2)前端功能
商品搜索:通過前端界面,以標(biāo)準(zhǔn)的或者其他個性化的方式向用戶展示商品各類信息,完成購物系統(tǒng)內(nèi)信息流的傳遞。
購物車:用戶可對想要購買的商品進行網(wǎng)上訂購,在購物過程中,隨時增刪商品。
商品瀏覽:隨著電子商務(wù)的發(fā)展商品圖片成為吸引消費者的第一要素,多圖展示即提供前臺多張圖片的展示,從而提升消費者的購物欲望。
用戶管理模塊:為了方便于網(wǎng)站的管理,必須由一套完整的用戶管理體系。該網(wǎng)站用戶管理模塊主要實現(xiàn)用戶的注冊、登錄、找回密碼3方面功能。
該購物網(wǎng)站具體功能結(jié)構(gòu)圖如圖4-3所示。
商城平臺
用戶
管理員
注冊
購物車
瀏覽商品
搜索商品
查看訂單
訂單管理
會員管理
商品管理
配送管理
圖4-3 功能圖
4.3 代碼設(shè)計
4.3.1后臺功能
1)添加或修改
a.判斷是添加還是修改代碼
//如果有商品ID,說明是編輯
int productid=CommonUtil.getIntParameter(request, "productid");
BaseDAO dao=new BaseDAO();
if(productid!=0){//說明是進入修改頁面
try {
Map
record=dao.listWithPage("a.*,b.categoryname", "product a,category b", " and a.categoryid=b.categoryid and a.productid="+productid, "a.productid desc", 1, 9999, false).getRecords().get(0);
request.setAttribute("record", record);
} catch (Exception e) {
e.printStackTrace();
}
}
String tree=CategoryUtil.makeTree("listcategory");
request.setAttribute("tree", tree);
request.getRequestDispatcher("addproduct.jsp").forward(request, response);
b.添加或修改代碼
//接收參數(shù)
String productname = request.getParameter("productname");
String categoryid = request.getParameter("categoryid");
String storecount = request.getParameter("storecount");
String marketprice = request.getParameter("marketprice");
String saleprice = request.getParameter("saleprice");
String hit = request.getParameter("hit");
String picture = request.getParameter("picture");
String addtime = request.getParameter("addtime");
String isdel = request.getParameter("isdel");
String content = request.getParameter("content");
int productid=CommonUtil.getIntParameter(request, "productid");
try {
//調(diào)用DAO
BaseDAO dao=new BaseDAO();
int result=0;
if(productid!=0){//修改
result=dao.update("product","productname="+productname+",
categoryid="+categoryid+",storecount="+storecount+"
,marketprice="+marketprice+",saleprice="+saleprice+",
hit="+hit+",picture="+picture+",addtime="+addtime+",
isdel="+isdel+",content="+content+"", " and productid="+productid);
}else{//添加 result=dao.add("product","productname="+productname+",
categoryid="+categoryid+",storecount="+storecount+",
marketprice="+marketprice+",saleprice="+saleprice+",
hit="+hit+",picture="+picture+",addtime="+addtime+",
isdel="+isdel+",content="+content+"");
}
String msg="";
if(result>0){
msg="";
}else{
msg="";
}
//把提示信息放入request
request.setAttribute("msg", msg);
request.getRequestDispatcher("msg.jsp").forward(request, response);
c.商品的添加及修改公用一個頁面,如圖4-4所示。
圖4-4 添加或修改頁面
2)商品列表及刪除
a.列表代碼
String where=" and a.categoryid=b.categoryid";
String productname=CommonUtil.getStringParameter(request,"productname");
if(!productname.equals("")){
where+=" and a.productname like %"+productname+"%";
}
int categoryid=CommonUtil.getIntParameter(request,"categoryid");
if(categoryid!=0){
where+=" and a.categoryid="+categoryid;
}
CommonUtil.getIntParameter(request,"categoryname");
float startprice=CommonUtil.getFloatParameter(request,"startprice");
float endprice=CommonUtil.getFloatParameter(request,"endprice");
if(startprice==0 && endprice==0){
}else{
float temp=0;
if(startprice>endprice){
temp=startprice;
startprice=endprice;
endprice=temp;
}
where+=" and a.saleprice>="+startprice+" and a.saleprice<="+endprice;
}
BaseDAO dao=new BaseDAO();
SearchResult sr=dao.listWithPage("a.*,b.categoryname", "product a,category b",where, "a.addtime desc",CommonUtil.getPageNo(request), 2,true);
request.setAttribute("records", sr.getRecords());
request.setAttribute("pb", sr.getPb());
List pagecode=new ArrayList();
for(int i=1;i<=sr.getPb().getPageCount();i++){
pagecode.add(i);
}
request.setAttribute("pagecode", pagecode);
String tree=CategoryUtil.makeTree("searchproduct");
request.setAttribute("tree", tree);
request.getRequestDispatcher("listproduct.jsp").forward(request, response);
b.刪除代碼
int productid=CommonUtil.getIntParameter(request, "productid");
BaseDAO dao=new BaseDAO();
int result = dao.del("product", " and productid="+productid);
String msg="";
if(result>0){
msg="";
}else{
msg="";
}
request.setAttribute("msg", msg);
request.getRequestDispatcher("msg.jsp").forward(request, response);
c.列表部分適合刪除在一起完成的,如列表圖4-5、刪除如圖4-6所示。
圖4-5 列表
圖4-6 刪除
3)分類管理
這一部分包括了分類的添加修改以及刪除,基本實現(xiàn)方法與商品管理相同,不同的地方是:分類主要的視圖是以分類樹的形式出現(xiàn)。如圖4-7所示是分類的添加及修改所公用的頁面,而圖4-8則是分類的刪除及列表的頁面。
圖4-7添加修改公用頁面 圖4-8分類列表
4.3.2前端功能
1)主頁
在這部分比較重要的是主頁的分類樹的實現(xiàn),如圖4-9、4-10所示 。
圖4-9 主頁代碼
圖4-10 主頁
2)商品列表
在列表部分比較重要的是分頁樹的實現(xiàn)以及排序方式和分頁功能,如圖4-11、4-12所示。
圖4-11列表代碼
圖4-12 列表
3)登陸
a.可以完成的功能是登陸之后才可以結(jié)算。
//調(diào)用DAO
BaseDAO dao=new BaseDAO();
String username=CommonUtil.getStringParameter(request, "username");
String password=MD5.md5(CommonUtil.getStringParameter(request, "password"));
String checkcode=CommonUtil.getStringParameter(request, "checkcode");
//獲取SESSION
HttpSession session=request.getSession();
String msg="";
String rightcode=session.getAttribute("checkcode").toString();
//驗證碼正確
if(checkcode.equals(rightcode)){
try {
List
鏈接地址:http://m.jqnhouse.com/p-8988667.html