王晟宇 葉傳奇 劉迪 李闖 蔣文杰 陳昕
摘要:隨著社會的發(fā)展和軟件技術(shù)的不斷進步,越來越多的企業(yè)和個人將信息化的管理方式運用到自己的領(lǐng)域中,所以開發(fā)一套軟件系統(tǒng)是大有裨益的。該項目開發(fā)的商城系統(tǒng)不僅可以全面的展示企業(yè)商品,同時還可以將企業(yè)商品推廣到世界各地,而且對于企業(yè)來說,網(wǎng)絡商店相較于實體店的各方面成本較低。對于消費者來說,網(wǎng)上商城的模式更加的方便快捷。在這樣的時代背景下,該項目針對企業(yè)開發(fā)一套B2C商城系統(tǒng),商城系統(tǒng)采用C/S架構(gòu),使用SSH框架技術(shù)用于后臺開發(fā),前端顯示層使用BootStrap框架,同時采用MySQL數(shù)據(jù)庫存儲網(wǎng)站數(shù)據(jù)。
關(guān)鍵詞:B2C商城系統(tǒng);C/S架構(gòu);SSH框架;BootStrap框架;MySQL數(shù)據(jù)庫
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)07-0282-03
1 研究背景及研究內(nèi)容
信息技術(shù)產(chǎn)生和發(fā)展改變了人們的消費習慣,使人們從以前人們走遍多家商店挑選商品的生活方式改變?yōu)樽悴怀鰬艟涂梢酝ㄟ^電腦和手機瀏覽并選購自己喜愛的商品,人們也可以隨時隨地搜索到最合適的合作伙伴,信息化為人們的工作和生活提供了極大的便利。
B2C商城系統(tǒng)在銷售模式上和傳統(tǒng)模式有很大的區(qū)別,在渠道成本、推廣成本和服務成本上有著的先天優(yōu)勢,在整體情況下,將B2C商城系統(tǒng)和傳統(tǒng)模式作對比,B2C商城系統(tǒng)對消費者有更強的吸引力。在于傳統(tǒng)模式相比較的時候,消費者在獲取更多信息以輔助選擇、權(quán)衡性價比等方面,會更傾向于選擇B2C網(wǎng)上商城系統(tǒng)。虛擬的電子商務模式已經(jīng)越來越走近大眾的生活。在B2C商城系統(tǒng)中,企業(yè)管理人員能夠直觀的觀察各類商品的庫存情況,便捷的統(tǒng)計銷售信息,以及進行商品的下架和更新,同時也能對自身的用戶體系進行分層統(tǒng)計以及信息分析,便于挖掘出潛在的消費能力和新用戶。
在系統(tǒng)的設(shè)計研究內(nèi)容上本項目使用SSH框架為主導框架,并結(jié)合引入了BootStrap框架,SSH是Struts2、Spring和Hibernate的組合框架。Struts2本質(zhì)上相當于一個servlet,完美地體現(xiàn)了MVC的設(shè)計理念,Struct2能使業(yè)務邏輯控制器與servletAPI完全剝離開來,這樣能夠方便開發(fā)者更好的管理項目的業(yè)務邏輯,Spring是一個解決了業(yè)務邏輯和其他各層耦合度過高的開源框架,Spring致力于提供一種方法管理業(yè)務對象,同時Spring的模塊化分層體系就能夠使開發(fā)者選擇使用Spring任何獨立結(jié)構(gòu)仍然能保持架構(gòu)的穩(wěn)定性。Hibernate集諸多持久層設(shè)計思想于一體,能建立面向?qū)ο蟮挠蚰P团c關(guān)系之間的映射關(guān)系。BootStrap框架是簡潔、直觀、強大的熱門開源框架,該框架提高了頁面的可觀賞性,美觀的頁面增強了用戶體驗感。
2 系統(tǒng)總體要求
2.1 系統(tǒng)框架要求
(1)系統(tǒng)采用B/S構(gòu)架模式。
(2)后臺采JavaWeb技術(shù),并結(jié)合SSH(struts2 spring hibernate)框架。
(3)采用MVC設(shè)計模式,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼。
(4)前段使用BootStrap框架,使用JQuery,Ajax等技術(shù)。
(5)使用體積小、速度快、成本低的MySQL數(shù)據(jù)庫。
(6)系統(tǒng)提供良好的視圖組件及界面,大幅度提高用戶的體驗度。
(7)系統(tǒng)保證可擴展性,未來可方便實現(xiàn)功能增加以及健壯性。
2.2 軟件環(huán)境的要求
(1)操作系統(tǒng):Window7及以上。
(2)編寫工具:Eclipse3.8及以上。
(3)瀏覽器:chrome、Firefox瀏覽器。
(4)服務器:Tomcat 9服務器。
(5)數(shù)據(jù)庫:MySQL 5.7。
2.3 硬件的支持要求
建議用戶的計算機使用以下配置(或更高):
(1)CPU:3.0Hz。
(2)內(nèi)存:2G。
(3)硬盤:50G。
3 系統(tǒng)設(shè)計與實現(xiàn)
在零售行業(yè)競爭激烈的今天,只有不斷地創(chuàng)新,豐富渠道,實事求是,才能成功。電子商務網(wǎng)站也和傳統(tǒng)商業(yè)模式一樣,首先要確定好系統(tǒng)設(shè)計和技術(shù)分析,之后就可以開始網(wǎng)站的建設(shè)了。
在體系設(shè)計上,本項目由前臺和后臺系統(tǒng)組成。前臺系統(tǒng)展示頁面為顧客提供瀏覽界面,顧客可以在這里瀏覽商品、購物、支付等;后臺系統(tǒng)為維護者提供網(wǎng)站管理和維護的工具。
在系統(tǒng)實現(xiàn)中,頁面展示部分使用BootStrap框架,提高界面的美觀性和可觀賞性,保證用戶有著較好的體驗感;后臺部分使用成熟的SSH框架開發(fā),提高邏輯處理的安全性以及服務器的穩(wěn)定性。
SSH框架的系統(tǒng)從職責上可以劃分為四層,分別是:表示層、業(yè)務邏輯層、數(shù)據(jù)持久層以及域模塊層,采用分層次的架構(gòu)方法便以搭建可復用性好、結(jié)構(gòu)清晰并且維護方便的B2C商城網(wǎng)站應用。其中系統(tǒng)的整體基礎(chǔ)架構(gòu)使用spring框架,MVC的分離和業(yè)務的跳轉(zhuǎn)控制使用Struts2框架模型,同時采用Hibernate框架對數(shù)據(jù)持久層提供支持。SSH框架在系統(tǒng)的進行整合時采用Spring框架做頂層管理,管理Struts2框架和Hibernate框架。
下面具體講解具有代表性的功能模塊以及介紹所用到的技術(shù):
3.1 商品瀏覽
無論是登錄的用戶或是未登錄用戶均可在網(wǎng)站上瀏覽商品信息,商品信息通過后臺從數(shù)據(jù)庫調(diào)取獲得,以josn串的形式返回到主頁進行信息展示,并且在初次訪問時將獲得的信息通過ehcache緩存處理將數(shù)據(jù)放到內(nèi)存中,并且,再次訪問時直接從內(nèi)存中進行獲取,用于節(jié)約訪問系統(tǒng)的時間,同時減少服務器的壓力。
3.2 注冊登錄
用戶可以通過注冊成為本網(wǎng)站的用戶。點擊登錄頁面旁邊注冊按鈕時即可通過超鏈接跳轉(zhuǎn)到注冊頁面,注冊賬號是用戶手機號或郵箱號碼,同時密碼存儲時采用md5算法進行加密。在用戶填寫用戶名以后通過Ajax技術(shù)在數(shù)據(jù)庫中查詢,判斷用戶名是否重名,如果不重名則注冊用戶登錄信息表,獲取id后再進一步完善注冊用戶詳細信息表,之后服務端給客戶端返回結(jié)果JSON串。之后用戶通過輸入注冊賬號和密碼即可進行賬號登錄。登錄信息提交時首先請求服務端接口,返回并接收用戶信息后驗證通過再登錄。登錄成功后則把用戶信息保存在用戶本地瀏覽器中,保證用戶下次瀏覽網(wǎng)站時用戶賬號實現(xiàn)自動登錄,同時跳轉(zhuǎn)界面到網(wǎng)站主頁。
//md5算法
public static String myMd5Algorithm(String sendPlainText) {
byte[] mySecretBytes = null;
try {
mySretBytes = MessageDigest.getInstance("md5").digest(
sendPlainTextlainText.getBytes());
} catch (Exception e) {
throw new Exception("沒有md5這個算法!");
}
String myMd5Code = new BigInteger(1, mySretBytes).toString(16);// 16進制
// 如果生成數(shù)字未滿32位,需要前面補0
int i;
for ( i = 0 ; i< 32 - myMd5Code.length(); i++) {
myMd5code = "0" + md5code;
}
return myMd5code;
}
3.3 現(xiàn)金支付
為保障支付的安全性,本系統(tǒng)的支付采用第三方支付平臺“易寶”提供的支付接口進行支付,用戶添加商品至購物車并完成下單即可進入支付頁面。用戶選擇銀行并進入提交支付請求,傳遞易寶規(guī)定的安全參數(shù),并且對這些參數(shù)進行數(shù)據(jù)加密,由易寶提供加密的密鑰和加密算法,當支付成功后,會重定向到指定的返回頁面,而且還會返回給一些參數(shù),頁面需要獲取這些參數(shù),顯示在頁面中。同時對于沒有支付成功的訂單進行異常處理。
//PaymentUtil方法如下:
public static String buildHmac(String p0_Cmd,String p1_MerId,
String p2_Order, String p3_Amt, String p4_Cur,String p5_Pid, String p6_Pcat,
String p7_Pdesc,String p8_Url, String p9_SAF,String pa_MP,Stringpd_FrpId,
String pr_NeedResponse,StringkeyValue)
public static booleanverifyCallback(String hmac, String p1_MerId,
String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt,
String r4_Cur, String r5_Pid, String r6_Order, String r7_Uid,
String r8_MP, String r9_BType, String keyValue)
public static String hmacSign(String aValue, String aKey)
public static String toHex(byte input[])
public static String getHmac(String[] args, String key)
public static String digest(String aValue)
3.4 后臺管理員
管理員管理,又稱為權(quán)限管理,可以進行的操作有新增管理員以及修改管理員密碼,管理上傳文件,管理新增加產(chǎn)品時上傳的圖片以及其他文件;進行企業(yè)信息管理,可以設(shè)置和修改企業(yè)的各類信息及介紹;對商品進行添加,或是修改、分類和刪除商品;操作系統(tǒng)的日志,并且每一步操作都有記錄,系統(tǒng)更加安全。
4結(jié)論
B2C商城系統(tǒng)采用SSH為主導框架,結(jié)構(gòu)清晰、可復用性好、維護方便,SSH框架基于MVC設(shè)計模式,實現(xiàn)了控制器、視圖與模型的完全分離,并且業(yè)務邏輯層與持久層也實現(xiàn)了分離,無論前端如何變化,模型層只需改動部分代碼即可完成,數(shù)據(jù)庫的變化也不會對前段界面布局有影響,提高了系統(tǒng)的可復用性。降低了系統(tǒng)的耦合度,便于開發(fā)效率的提高。技術(shù)的優(yōu)越性才能保證了系統(tǒng)的功能完善性和用戶體驗的安全性,相信在未來的不斷發(fā)展中,B2C商城系統(tǒng)會不斷地完善和發(fā)展,從而更好地為人們提供服務。
參考文獻:
[1] 巴雷特(美),西爾弗曼(美). SSH權(quán)威指南[M].中國電力出版社, 2003.
[2] 林信良.Spring技術(shù)手冊[M].北京:電子工業(yè)出版社博文視點, 2006.
[3] 陳俟伶.SSH框架項目教程[M].北京:水利水電出版社, 2013.
[4] 范伊紅.基于HTML5的網(wǎng)頁設(shè)計及應用[M].北京:電子工業(yè)出版社, 2014.
[5] 單東林.鋒利的jQuery[M].2版.北京:人民郵電出版社,2012.
【通聯(lián)編輯:代影】