覃茂輝 趙衛(wèi)東 王超
摘要:該文設(shè)計開發(fā)的一站式點餐網(wǎng)站具有用戶點餐購物,個人信息管理,訂單信息管理,菜品信息管理和其他數(shù)據(jù)管理等功能?;贐/S模式,前端采用HTML5、CSS3、JavaScript、jQuery、JSP技術(shù),后臺采用 Spring框架、Struts2、J2EE、MySQL 數(shù)據(jù)庫技術(shù),代碼量適中且易于維護(hù),具有良好的拓展性。通過黑盒測試和白盒測試,該系統(tǒng)的功能滿足系統(tǒng)設(shè)計需求,可靠性較高,具有良好的適用性。
關(guān)鍵詞:B/S;Struts2;電子商務(wù);Spring;Ajax
中圖分類號:TB311? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)29-0073-03
1背景
21世紀(jì),隨著互聯(lián)網(wǎng)的不斷普及與發(fā)展,電子商務(wù)模式隨之涌現(xiàn),憑借其網(wǎng)絡(luò)化和信息化的特點,通過線上連接用戶,相比線下消費更加方便快捷,使得電子商務(wù)模式發(fā)展愈加蓬勃。如何構(gòu)建科學(xué)有效的盈利模式,保證盈利質(zhì)量和盈利能力,形成良好的商業(yè)生態(tài),打造各產(chǎn)品與服務(wù)的商業(yè)閉環(huán),形成自己的核心競爭力成為重中之重[1]。同時相較于傳統(tǒng)的到店用餐和電話叫餐,一站式點餐網(wǎng)站因其點餐方便、成本低、訂單可追溯的特點而具有巨大的優(yōu)勢。本文設(shè)計開發(fā)的一站式點餐網(wǎng)站不僅實現(xiàn)了自助點餐功能,還提供了用戶信息管理和菜品信息管理功能。讓商家和用戶都能通過信息化的手段更為方便快捷的進(jìn)行外賣活動。
2關(guān)鍵技術(shù)
系統(tǒng)主要Java語言來編寫服務(wù)器程序,同時采用MVC 三層架構(gòu)將應(yīng)用程序分為模型、控制器和視圖。前端使用JSP技術(shù),結(jié)合 HTML5,CSS3,JavaScript 技術(shù)將頁面展示給用戶和商家。后臺采用Struts2、Spring、JDBC進(jìn)行編寫,利用Struts2框架中的taglib獲得可重用的代碼,利用ActionServlet配合struts.xml 文件實現(xiàn)對整個系統(tǒng)的導(dǎo)航。在本系統(tǒng)中,由Spring框架代替 Struts框架來對用戶請求進(jìn)行攔截并分發(fā),Spring框架可通過聲明式的方式進(jìn)行事務(wù)管理,可以讓其變得更加簡潔方便,因此 Hibernate事務(wù)便由 Spring代替Struts2框架進(jìn)行管理。在前端和后端之間,使用 Ajax 異步提交數(shù)據(jù),同時使用MySQL進(jìn)行數(shù)據(jù)保存和處理。
2.1 JSP
JSP是由Sun公司主導(dǎo),眾多互聯(lián)網(wǎng)公司共同參與、建立的基于Servlet規(guī)范的一種動態(tài)網(wǎng)頁技術(shù)。它具有良好的獨立性、可復(fù)用性、可拓展性,可以很好地將視圖層與業(yè)務(wù)邏輯層分割開,降低了維護(hù)成本。相較于ASP,JSP 因其擁有用戶定制標(biāo)簽庫而具有良好的可拓展性,而ASP沒有。JSP是基于Java語言的,它可以使用JavaAPI,較ASP而言可以更好地實現(xiàn)跨平臺??傮w而言,JSP更加的方便、強(qiáng)大。
2.2 Struts2框架
Struts2框架是一個具有靈活性和可重用性的開放資源框架,以WebWork為核心,具有組件模塊化的優(yōu)點,采用MVC設(shè)計模式,它清晰地將事務(wù)邏輯、視圖和控制器區(qū)分開來,從而降低了程序的耦合性,簡化了程序開發(fā)過程。不僅如此,Strut2還提供了豐富具體的JSP 自定義標(biāo)簽庫,充分利用了Java 的強(qiáng)大功能和其跨平臺的特性,不僅使得編寫程序更加靈活且提高了應(yīng)用程序的柔韌性。
3系統(tǒng)設(shè)計
為了方便用戶使用,一站式點餐平臺分為管理員登錄和用戶登錄,對應(yīng)不同的功能和界面。
3.1體系結(jié)構(gòu)
一站式點餐網(wǎng)站采用目前最為流行的B/S體系,即瀏覽器/服務(wù)器模式。采用這種模式的優(yōu)勢在于系統(tǒng)功能主要實現(xiàn)集中在服務(wù)器上完成,用戶無需下載,在任意平臺使用瀏覽器即可進(jìn)行點餐操作,不僅具有很強(qiáng)的便捷性、跨平臺性,還有利于管理員更新系統(tǒng)內(nèi)容。
3.2用戶端
用戶端主要為用戶提供服務(wù),為滿足用戶的不同需求,為用戶提供個人信息管理、訂單管理、用戶登錄與注冊、自助點餐四大功能模塊,每個功能模塊由若干個功能組成。用戶登錄與注冊模塊:用戶通過填寫表單提交數(shù)據(jù),前端驗證數(shù)據(jù)合法性,若提交的數(shù)據(jù)不合法則直接由前端提示錯誤信息,若數(shù)據(jù)合法則將表單提交服務(wù)器,數(shù)據(jù)提交到服務(wù)器后,服務(wù)器通過和數(shù)據(jù)庫的交互返回驗證結(jié)果,前端將服務(wù)器返回的驗證結(jié)果顯示到頁面上。自助點餐板塊:用戶可通過分類功能查看不同種類的餐品,可點擊加入購物車按鈕將餐品添至購物車,用戶點餐完畢后,在購物車頁面中填寫收貨地址并成功支付后即點餐成功,訂單會根據(jù)用戶填寫的信息自動生成。個人信息管理模塊:用戶通過該模塊管理個人信息。用戶可以進(jìn)行的操作有:管理收貨地址、查看個人信息、修改個人信息。訂單管理模塊:用戶通過訂單管理模塊管理個人訂單。用戶可通過該模塊查看正在進(jìn)行的訂單狀態(tài)、查看已完成訂單或取消當(dāng)前的訂單。
3.3管理員端
管理員端主要由管理員操作,管理員通過管理員賬號密碼登錄后即進(jìn)入管理員端。用于對系統(tǒng)進(jìn)行維護(hù)和管理,并對系統(tǒng)信息進(jìn)行更新和備份,保障系統(tǒng)流暢、平穩(wěn)運行。管理端提供的功能主要分為菜品管理、用戶個人信息管理、用戶訂單管理、管理員個人信息管理四大模塊。
用戶信息管理模塊:可以修改用戶的賬號密碼,對違規(guī)賬號做封號處理,甚至刪除賬號。菜品管理模塊:可以添加供用戶選擇的餐品,修改餐品的圖片、菜名、價格等信息。訂單管理模塊:管理員可以查詢訂單的狀態(tài),查詢歷史訂單,修改某個訂單狀態(tài),為用戶退款,刪除某個訂單。管理員信息管理模塊:管理員可修改管理員的個人信息,添加新的管理員。
4系統(tǒng)關(guān)鍵技術(shù)實現(xiàn)
4.1數(shù)據(jù)操作
圖3為管理員用戶管理菜品流程圖,主要闡釋了該模塊為管理員用戶提供修改和刪除菜品信息的功能流程。如查詢菜品信息,刪除菜品信息和修改菜品信息。
自助點餐模塊中加入購物車的操作:
圖4為用戶加入購物車功能系統(tǒng)流程圖,主要闡釋了用戶將餐品加入購物車時系統(tǒng)后臺的響應(yīng)流程。
加入購物車功能關(guān)鍵代碼:
$("#btn_shoppingcart").click(function(){
//驗證用戶是否登錄
var username =$("#usersession").val();
//用戶名
if(username =="null"){
//用戶沒有登錄,跳轉(zhuǎn)到登錄頁面
location.href="/ApluStop/login.jsp";
return;
}
$.ajax({
type:'POST',
url:"json/addToShoppingCart.action",
data: dishData,
dataType:'json',
success:function(rs){
console.log(rs);
//后臺接收消息,展示動畫效果
dynamicAdd(rs);}
});
4.2 Spring框架的配置
Spring框架是為解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而建立的Web 框架技術(shù),也是目前國內(nèi)外Web企業(yè)開發(fā)項目中應(yīng)用非常廣泛的一個[2]。在本系統(tǒng)中,Spring框架提供了初始化的服務(wù),通過 Bean 的注入有效的組織中間層對象,在使用之前自動創(chuàng)建對象,通過AOP進(jìn)行面向切面編程,消除了使用各種各樣格式的屬性定制文件的需要。優(yōu)化了系統(tǒng)運行速度,方便解耦,提高了開發(fā)效率。
本系統(tǒng)中數(shù)據(jù)庫Bean 的配置:
<bean id="dataSourceBean" class="com. zaxxer. hikari. Hi?kariDataSource">
<property name="driverName">
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property name="dataUrl">
<value>jdbc: mysql://localhost:3306/mydb? serverTimezone= GMT</value>
</property>
<property name="rootMysqlDataFirstSoursePrettyName"><value>myDataFirstSourseAdministerName</value></property>
<property name="rootMysqlDataSourseBeautifulPassword"><value>mySqlPassWordpd123.asdzxcvbn</value></property>
</bean>
5軟件測試
軟件測試的目的是檢查實際結(jié)果與預(yù)期結(jié)果是否匹配并確保軟件系統(tǒng)按系統(tǒng)設(shè)計需求運行。軟件測試還有助于識別產(chǎn)品與實際需求不符或是缺失項[3]。鑒于作者對系統(tǒng)的系統(tǒng)架構(gòu)、功能和內(nèi)部邏輯處理的完全了解,本系統(tǒng)擬采用白盒測試和黑盒測試的方法進(jìn)行軟件測試,測試服務(wù)器選用本地服務(wù)器。
本系統(tǒng)的軟件測試階段信息流程圖如圖5所示:
為了設(shè)計出有效地測試方案按照下面準(zhǔn)則進(jìn)行測試:所有的測試方案應(yīng)當(dāng)根據(jù)用戶需求來制定;軟件測試前必須要指定嚴(yán)密的測試計劃,并且要嚴(yán)格執(zhí)行測試計劃避免測試的隨意性;測試完成后要注意保留測試設(shè)計和說明文檔并注意測試設(shè)計的可重用性;運用Pareto原理著重對出現(xiàn)錯誤最多的20%的模塊進(jìn)行測試,測試前必須明確定義軟件的質(zhì)量標(biāo)準(zhǔn),先重點測試單個程序模塊,單個程序無錯誤出現(xiàn)后再轉(zhuǎn)向集成的模塊簇[4];精心設(shè)計測試方案,如果進(jìn)行相同的重復(fù)測試,則該方法將無助于發(fā)現(xiàn)新的缺陷[5]。
根據(jù)以上原則對本系統(tǒng)各功能模塊進(jìn)行功能測試:表1 一站式點餐平臺功能測試表
測試結(jié)論:經(jīng)過黑盒測試和白盒測試,測試結(jié)果表示系統(tǒng)的各個功能實現(xiàn)都達(dá)到了系統(tǒng)需求設(shè)計的要求,測試通過。
6結(jié)束語
本系統(tǒng)使用JSP 頁面進(jìn)行頁面展示,與傳統(tǒng)的前端開發(fā)框架相比而言,JSP 可以很容易的和靜態(tài)模板結(jié)合,包括:HTML 或者XML,也可以很容易的和產(chǎn)生動態(tài)內(nèi)容的代碼結(jié)合起來[6]。使用Spring框架結(jié)合Struts2來進(jìn)行服務(wù)器開發(fā),利用了Spring 框架的兩個重要思想:Ioc(控制反轉(zhuǎn))和Aop(面向切面編程),統(tǒng)一管理了系統(tǒng)中的Java對象,在使用前自動創(chuàng)建對象,提高了開發(fā)效率,同時節(jié)約了系統(tǒng)占用的資源。經(jīng)過系統(tǒng)的測試,本系統(tǒng)無論是從功能方面還是性能方面都具有良好的表現(xiàn),能夠很好地滿足用戶的點餐需求,各個功能模塊功能完善,具有良好的實用性。本系統(tǒng)基于B/S模式,用戶使用方便,也便于對服務(wù)器進(jìn)行維護(hù)和升級,具有良好的便捷性。
參考文獻(xiàn):
[1] 張涵.美團(tuán)網(wǎng)的盈利模式及其財務(wù)評價研究[D].大慶:東北石油大學(xué),2020.
[2] 翟劍錕.Spring框架技術(shù)分析及應(yīng)用研究[D].北京:中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2013.
[3] 佟偉光,郭霏霏 . 軟件測試[M]. 北京:人民郵電出版社,2015(1):281.
[4] 劉文娟.基于WEB的行政審批管理系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2011.
[5] 張海藩.軟件工程導(dǎo)論[M].4版.北京:清華大學(xué)出版社,2003.
[6] 尼邁耶,洛伊科.Java 學(xué)習(xí)指南[M]. 李強(qiáng),王建新,吳戈,譯.北京:人民郵電出版社,2014.
【通聯(lián)編輯:謝媛媛】