摘 要:互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)技術(shù)的發(fā)展,也使得信息技術(shù)發(fā)展越來越快,隨著信息技術(shù)的發(fā)展,電子商務(wù)時(shí)代來臨,在電子商務(wù)的發(fā)展中,安全問題和電子商務(wù)交易平臺(tái)的網(wǎng)絡(luò)數(shù)據(jù)庫,發(fā)揮重要作用。基于JSP的圖書商城系統(tǒng)支持PHP,PHP+JSP數(shù)據(jù)庫和網(wǎng)絡(luò)安全控制技術(shù)的應(yīng)用,實(shí)現(xiàn)了B2C電子商務(wù)交易平臺(tái)的應(yīng)用和實(shí)現(xiàn)。
關(guān)鍵詞:JSP 圖書商城系統(tǒng) 數(shù)據(jù)庫技術(shù)
一、圖書商城系統(tǒng)功能簡(jiǎn)介
圖書商城系統(tǒng)主要由三部分組成:前臺(tái)系統(tǒng)實(shí)現(xiàn)用戶注冊(cè)、用戶登錄、圖書商品詳情在線查看、購物車管理及網(wǎng)上訂貨實(shí)現(xiàn)在線支付功能等;后臺(tái)系統(tǒng)主要是圖書商品訂單處理功能的實(shí)現(xiàn),包括圖書基本信息管理、商品信息更新、送貨管理、訂單管理、財(cái)務(wù)管理、數(shù)據(jù)庫管理等幾個(gè)方面;后臺(tái)實(shí)時(shí)系統(tǒng)的主要功能則是生成用戶在線訂單和收發(fā)地址郵件確認(rèn)等。
二、系統(tǒng)用戶分析
游客(未登錄):注冊(cè)、登陸、圖書商城信息查看;商城注冊(cè)用戶:商品瀏覽、添加圖書商品到購物車、購物車管理、生成訂單、訂單管理、在線支付;系統(tǒng)管理員:添加商品、商品管理、查看訂單、榜單查看(導(dǎo)出)。
三、系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
系統(tǒng)存在以下實(shí)體:用戶、商品、訂單、購物車,其中,購物車不放入數(shù)據(jù)庫,通過Session或者Cookie來實(shí)現(xiàn)。
1.用戶表。
create table users (
id int primary key auto_increment,
username varchar(40),
password varchar(100),
nickname varchar(40),
email varchar(100),
role varchar(100) ,
state int ,
activecode varchar(100),
updatetime timestamp );
2.商品表。
create table products(
id varchar(100) primary key ,
name varchar(40),
price double,
category varchar(40),
pnum int ,
imgurl varchar(100),
description varchar(255));
3.訂單表。
create table orders(
id varchar(100) primary key,
money double,
receiverinfo varchar(255),
paystate int,
ordertime timestamp,
user_id int ,
foreign key(user_id) references users(id)
);
4.用戶關(guān)系。
(1)用戶與訂單之間存在一對(duì)多(1:N)的關(guān)系:在多方添加一方主鍵作為外鍵;(2)訂單和商品之間存在多對(duì)多(N:N)的關(guān)系:創(chuàng)建第三張關(guān)系表,引入兩張表主鍵作為外鍵(聯(lián)合主鍵)。
5.訂單項(xiàng)。
create table orderitem(
order_id varchar(100),
product_id varchar(100),
buynum int ,
primary key(order_id,product_id),
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
6.設(shè)置數(shù)據(jù)庫環(huán)境。數(shù)據(jù)庫:create database estoresystem
四、功能實(shí)現(xiàn)
1.用戶注冊(cè)(技術(shù)點(diǎn):驗(yàn)證碼技術(shù) 、激活郵件技術(shù))。
(1)一次性驗(yàn)證碼原理:在生成驗(yàn)證碼Servlet程序中,將生成驗(yàn)證碼保存Session中,用戶提交驗(yàn)證碼 與 保存在Session驗(yàn)證碼進(jìn)行比較,如果相同,請(qǐng)求合法;
(2)注冊(cè)表單JS校驗(yàn):考慮JS校驗(yàn)是否可以抽取成框架;
(3)處理form亂碼問題——通用get post亂碼過濾器;
(4)密碼MD5加密;
(5)激活郵件發(fā)送;
(6)配置通用錯(cuò)誤處理頁面web.xml
500.jsp顯示錯(cuò)誤的信息,404.jsp自動(dòng)刷新跳轉(zhuǎn)回主頁面。
2.用戶登錄。用戶登陸原理:用戶輸入正確用戶名和密碼,登陸成功,用戶信息將會(huì)被保存Session對(duì)象中。——記住用戶名和密碼、自動(dòng)登陸。(1)登陸表單中,添加記住用戶名和自動(dòng)登陸功能; (2)登陸過程中判斷賬戶是否已經(jīng)激活;(3)在login.jsp顯示記住用戶名,在username的input項(xiàng)中添加 value=\"${cookie.username.value}\" 在勾選自動(dòng)登陸 checkbox 添加;(4)登陸后注銷功能,注銷Session。
3.商品添加。文件上傳三個(gè)注意事項(xiàng):(1)input輸入框 必須有name屬性; (2)表單form 必須post提交方式;(3)設(shè)置form的enctype 為 multipart/form-data;表單提交時(shí),校驗(yàn)分為兩種:客戶端校驗(yàn)、服務(wù)器端校驗(yàn)——只有服務(wù)器端校驗(yàn)才能確保數(shù)據(jù)準(zhǔn)確。商品圖片上傳到服務(wù)器端后,保存在某個(gè)目錄,必須直接在WebRoot下及其除WEB-INF、META-INF子目錄外,一般情況下,一張表對(duì)應(yīng)Domain類——DAO類——Service類。
4.訂單列表查詢與取消。管理查詢訂單——所有人訂單信息;普通用戶——只能查詢自己的訂單; 在訂單生成后,查看訂單列表、也可以通過index.jsp進(jìn)入訂單查看頁面;重點(diǎn):查詢訂單時(shí),同時(shí)查詢訂單項(xiàng)目信息。
(1)查詢訂單基本信息時(shí),查詢下單用戶昵稱和用戶名在Order類中添加用戶的username和nickname字段select orders.*,users.username,users.nickname from orders,users where orders.user_id = users.id;
(2)查詢訂單項(xiàng)信息時(shí),查詢商品的名稱和單價(jià),在OrderItem類中添加商品的name和price 字段 select orderitem.*,products.name,products.price from orderitem,products where orderitem.produtct_id = products.id and orderitem.order_id=?訂單取消:刪除訂單表信息時(shí),同時(shí)刪除訂單項(xiàng)信息(訂單項(xiàng)信息依賴訂單信息,必須先刪除訂單項(xiàng))
5.訂單在線支付。
(1)網(wǎng)站進(jìn)行支付,根據(jù)易寶支付接口請(qǐng)求規(guī)范,生成易寶需要數(shù)據(jù),將數(shù)據(jù)提交到易寶指定網(wǎng)址,在提交支付請(qǐng)求給易寶,需要將請(qǐng)求中數(shù)據(jù),使用易寶提供密鑰和算法進(jìn)行加密,獲得數(shù)字簽名hmac碼,將hmac碼發(fā)送給易寶;
(2)易寶會(huì)連接銀行,進(jìn)行支付;
(3)支付后,瀏覽器會(huì)以重定向方式訪問網(wǎng)站回調(diào)程序,易寶在收到銀行轉(zhuǎn)賬后,會(huì)以Socket方式通知網(wǎng)站,在瀏覽器重定向通知后,提供給用戶支付成功顯示頁面,期間不能修改訂單狀態(tài),在網(wǎng)站收到易寶點(diǎn)對(duì)點(diǎn)通知后,回復(fù)易寶success,修改訂單狀態(tài);
(4)數(shù)字簽名原理:將數(shù)據(jù)使用密鑰和算法加密后獲得數(shù)字簽名hmac,將數(shù)據(jù)和數(shù)字簽名hmac一起發(fā)送給易寶,易寶采用同樣密鑰和算法對(duì)數(shù)據(jù)進(jìn)行加密獲得數(shù)字簽名hmac,比較請(qǐng)求中數(shù)字簽名hmac與加密后獲得數(shù)字簽名hmac是否一致,如果一致簽名hmac有效(數(shù)據(jù)沒有被篡改);
(5)在線支付過程中,首先pay.jsp 銀行選擇頁面,OnlinePayServlet 準(zhǔn)備易寶支付參數(shù),confirm.jsp通過form的隱藏域提交參數(shù)給易寶網(wǎng)址,最后,通過CallbackServlet回調(diào)程序收到瀏覽器重定向和服務(wù)器點(diǎn)對(duì)點(diǎn)兩個(gè)通知,瀏覽器重定向,顯示支付成功,期間不能修改訂單狀態(tài),服務(wù)器點(diǎn)對(duì)點(diǎn),修改訂單狀態(tài),回復(fù)success。
五、結(jié)語
本文詳述了如何設(shè)計(jì)一個(gè)基于JSP網(wǎng)上圖書商城系統(tǒng),闡述了圖書商城系統(tǒng)的用戶分類、數(shù)據(jù)庫設(shè)計(jì)代碼、功能模塊設(shè)計(jì)與實(shí)現(xiàn)以及相關(guān)技術(shù),基于JSP+JavaBean模式的小型電子商務(wù)平臺(tái),提供了友好的用戶界面,簡(jiǎn)化了操作流程,具有完備的功能。
參考文獻(xiàn):
[1]周光明,曾建華,沈翠心等.在線購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦學(xué)習(xí),2004(2).
[2]李霞,劉慧婷,趙凱等.基于JSP的宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(12).
[3]廖彥華,羅小亮.基于JSP技術(shù)的網(wǎng)上購物系統(tǒng)[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2007(12).
[4]郭萬召.圖書館在線參考咨詢服務(wù)優(yōu)缺點(diǎn)及改進(jìn)對(duì)策[J]. 四川圖書館學(xué)報(bào),2004(05).
[5]胡康秀,王兵賢.基于JSP的網(wǎng)上書店銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國管理信息化,2009(05):106-109.
[6]秦成華.基于JSP網(wǎng)絡(luò)購書系統(tǒng)的開發(fā)與實(shí)現(xiàn)[D].長(zhǎng)春: 吉林大學(xué), 2008.
作者簡(jiǎn)介:袁斌(1981.08—)。民族:漢。云南省曲靖市人。學(xué)歷:碩士學(xué)歷。碩士畢業(yè)院校:云南大學(xué)。講師主要研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。