牟明任 趙璘
摘 ?要:本系統(tǒng)使用Spring MVC(Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊)框架,使用Java Web進(jìn)行編碼,同時(shí)使用成熟的MySQL(一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))數(shù)據(jù)庫(kù),具有很好的跨平臺(tái)效果,運(yùn)行穩(wěn)定,不宜發(fā)生系統(tǒng)宕機(jī),不僅可以提高效率,還能降低成本。
關(guān)鍵詞:餐廳管理系統(tǒng);Java Web;Spring MVC
中圖分類號(hào):TP311.5 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Design of Restaurant Management System based on Java Web
MU Mingren, ZHAO Lin
(Department of Software Engineering, Dalian Neusoft University of Information, Dalian 116023, China)
mumingren18@dnui.edu.cn; zhaolin_sx@neusoft.edu.cn
Abstract: The proposed restaurant management system in this paper uses Spring MVC (Model View Controller) framework (Spring framework provides full function MVC module for building web applications), Java web for coding, and the reliable MySQL (a relational database management system) as database. This system, running stably with good cross-platform effect and rare occurrences of system downtime, helps restaurants to improve efficiency, as well as reducing the running cost.
Keywords: restaurant management system; Java Web; Spring MVC
1 ? 引言(Introduction)
如今餐廳的經(jīng)營(yíng)模式已從以往的管理成本高、人工成本昂貴,運(yùn)行效率差過(guò)度到現(xiàn)在的智能化、高效化的模式。但與此同時(shí)也需要更全面的經(jīng)營(yíng)管理體系。輔助人工餐廳管理系統(tǒng)恰好可以彌補(bǔ)以往的不足,可以有效地幫助餐廳進(jìn)行管理。
Web應(yīng)用中,Spring為表現(xiàn)層提供了一個(gè)十分優(yōu)秀的Web框架—Spring MVC,Spring MVC通過(guò)注解無(wú)須實(shí)現(xiàn)任何的接口[1,2],Spring MVC的松散耦合,可以充分體現(xiàn)出它的靈活性和擴(kuò)展性[3]。MySQL數(shù)據(jù)庫(kù),可以展現(xiàn)出數(shù)據(jù)庫(kù)體積小,用量大等優(yōu)勢(shì)[4]。同時(shí)根據(jù)JSP的擴(kuò)展性和維護(hù)性好的特點(diǎn)進(jìn)行頁(yè)面的編寫(xiě)來(lái)創(chuàng)建可移植的Web應(yīng)用[5]。
2 ?系統(tǒng)架構(gòu)及技術(shù)(System architecture and technology)
2.1 ? 系統(tǒng)架構(gòu)
本系統(tǒng)程序是基于B/S(瀏覽器/服務(wù)器)架構(gòu)的Web應(yīng)用程序,同時(shí)本系統(tǒng)使用的Spring Web模型—視圖—控制(MVC)框架是圍繞DispatcherServlet設(shè)計(jì)和開(kāi)發(fā)的[6],DispatcherServlet用來(lái)處理所有程序中發(fā)來(lái)的的HTTP請(qǐng)求和響應(yīng)。SpringMVC是一個(gè)極其優(yōu)秀的框架,現(xiàn)今廣泛應(yīng)用,擁有良好的擴(kuò)展性和穩(wěn)定性,Spring Web MVC DispatcherServlet的請(qǐng)求處理的工作流程圖如圖1所示。
與DispatcherServlet傳遞的HTTP請(qǐng)求相應(yīng)的的事件流程如下:第一步先進(jìn)行接收發(fā)送來(lái)的HTTP請(qǐng)求指令,DispatcherServlet會(huì)按照HandlerMapping進(jìn)行相應(yīng)事件的選擇并調(diào)用合理的的控制器。第二步,控制器接收到該指令并依據(jù)系統(tǒng)所提供的GET或POST方法進(jìn)行調(diào)用合理的執(zhí)行操作方法。服務(wù)方法依照定義的相關(guān)業(yè)務(wù)邏輯來(lái)選擇設(shè)置程序所需要的模型數(shù)據(jù),然后把該視圖名稱扭轉(zhuǎn)到DispatcherServlet。DispatcherServlet會(huì)從ViewResolver獲得相應(yīng)的支持,來(lái)對(duì)該請(qǐng)求需要檢索的需求視圖進(jìn)行定義。當(dāng)系統(tǒng)確定其特定的視圖,DispatcherServlet就會(huì)迅速將模型數(shù)據(jù)傳遞給視圖,并且它將最終呈現(xiàn)在相對(duì)應(yīng)的瀏覽器中。各個(gè)相應(yīng)組件,如HandlerMapping、Controller和ViewResolver,它們都是web ApplicationContext的內(nèi)容中的一部分,也是ApplicationContext的相對(duì)擴(kuò)展,擁有豐富的web應(yīng)用程序所需的額外附加特性。
當(dāng)在使用web.xml文件中的URL相應(yīng)的映射時(shí),有著特定需求的各項(xiàng)配置都要求映射用戶的DispatcherServlet處理請(qǐng)求,使用web.xml文件中的URL進(jìn)行映射。舉個(gè)例子,在要顯示HelloWeb DispatcherServlet聲明和映射的進(jìn)程中:在應(yīng)用程序的WebContent/web-inf目錄中添加一個(gè)web.xml文件并且將它完整保存下來(lái)。HelloWeb DispatcherServlet在進(jìn)行初始化時(shí),Spring MVC將進(jìn)行WebContent/web-inf目錄中的應(yīng)用程序內(nèi)容的加載,該目錄中的的相關(guān)文件名統(tǒng)一均為[servlet-name]-servlet.xml。在本演示流程中中,相應(yīng)的用戶的文件是helloweb-servlet.xml。最后,DispatcherServlet將會(huì)處理標(biāo)記指示的那些url。在框架中,全部以.jsp結(jié)尾的HTTP請(qǐng)求都將由HelloWeb DispatcherServlet來(lái)進(jìn)行處理。
4.2 ? 修改個(gè)人信息模塊
修改個(gè)人信息模塊主要實(shí)現(xiàn)了員工對(duì)于個(gè)人信息管理的功能,執(zhí)行思想如下所描述:用戶在登錄成功后,就意味著后臺(tái)已經(jīng)錄入相應(yīng)用戶信息,該用戶可以按照系統(tǒng)相應(yīng)的標(biāo)示語(yǔ)句進(jìn)行自我的個(gè)人信息,和想要設(shè)置密碼的需求修改,當(dāng)用戶修改完成后單機(jī)編輯按鈕;程序前端進(jìn)行相應(yīng)的有效性驗(yàn)證,驗(yàn)證失敗則給出失敗的信息,操作成功則發(fā)送請(qǐng)求至后端,后臺(tái)根據(jù)用戶輸入的信息向用戶表新增一條記錄,如果新增成功,則返回成功頁(yè)面,提示添加成功,否則,返回失敗頁(yè)面,提示修改失敗。
4.3 ? 管理菜品信息模塊
管理菜品模塊主要實(shí)現(xiàn)了管理員管理菜品功能,其實(shí)現(xiàn)步驟如下流程:在用戶身份驗(yàn)證成功后,此用戶可以遵循相關(guān)的信息自行進(jìn)行菜品的添加,也可以對(duì)菜品的各項(xiàng)信息進(jìn)行相應(yīng)的增刪改查,菜品信息編輯完成后按照指示提交按鈕;首先進(jìn)行數(shù)據(jù)相關(guān)的有效性驗(yàn)證,當(dāng)驗(yàn)證不成功則給出相關(guān)提示,當(dāng)驗(yàn)證成功則進(jìn)行下一步,提交請(qǐng)求至后臺(tái),后端會(huì)根據(jù)改用戶填寫(xiě)的各項(xiàng)信息向菜品表新增一條相關(guān)操作的記錄,如果操作成功,系統(tǒng)窗口則提示修改成功信息,顯示添加成功的語(yǔ)句,反之,返回操作失敗頁(yè)面,系統(tǒng)提示相應(yīng)信息修改失敗。
4.4 ? 餐位管理模塊
餐位管理模塊主要實(shí)現(xiàn)了管理員/員工管理餐廳餐位的功能,其編程思想的流程如下:當(dāng)用戶在登錄該系統(tǒng)成功后,該用戶需要按照系統(tǒng)的要求的權(quán)限可以進(jìn)行各種合理功能的操作,比如增加餐位信息、變更餐廳餐位的的信息,用戶的各項(xiàng)操作完成后進(jìn)行提交;在前臺(tái)進(jìn)行各項(xiàng)功能數(shù)據(jù)的正確性,保證填入信息準(zhǔn)確,各項(xiàng)信息沒(méi)有漏填,當(dāng)校驗(yàn)失敗會(huì)提示操作的錯(cuò)誤原因,頁(yè)面跳轉(zhuǎn)返回首頁(yè),當(dāng)驗(yàn)證成功則提交請(qǐng)求至后臺(tái),后臺(tái)根據(jù)用戶增加的信息向餐位表新增一條記錄,如果操作成功,則提示成功信息,提示已完成,否則,返回失敗頁(yè)面,提示操作失敗。
4.5 ? 訂單管理模塊
訂單管理模塊主要實(shí)現(xiàn)了對(duì)于訂單支付狀態(tài)管理的功能,其思想如下:登錄成功后,員工可以新增客戶追加或者刪除的菜品,點(diǎn)擊相應(yīng)按鈕,后臺(tái)訂單表增加一條記錄,提示添加或者閃出成功當(dāng)客戶結(jié)賬后,員工會(huì)確認(rèn)支付狀態(tài),訂單的當(dāng)前狀態(tài)會(huì)顯示為已支付狀態(tài),顯示訂單支付成功,后臺(tái)訂單表增加一條信息否則會(huì)一直顯示為未支付狀態(tài)。訂單管理模塊頁(yè)面如圖3所示。
4.6 ? 營(yíng)業(yè)報(bào)表統(tǒng)計(jì)模塊
營(yíng)業(yè)報(bào)表統(tǒng)計(jì)模塊主要實(shí)現(xiàn)了管理員查看餐廳銷售額情況的功能,其設(shè)計(jì)如下,登錄成功后,用戶點(diǎn)擊選擇前臺(tái)對(duì)應(yīng)功能按鈕,單擊進(jìn)入,餐廳的營(yíng)業(yè)記錄實(shí)時(shí)會(huì)更新,前臺(tái)員工確認(rèn)訂單支付后,訂單表會(huì)增加一條記錄,通過(guò)Total函數(shù)進(jìn)行營(yíng)業(yè)額的統(tǒng)計(jì),最終顯示在頁(yè)面上。
4.7 ? 關(guān)鍵技術(shù)難點(diǎn)和解決方案
本系統(tǒng)作為一個(gè)餐廳管理系統(tǒng),勢(shì)必需要考慮它的安全性、健壯性和穩(wěn)定性,同時(shí)對(duì)于管理系統(tǒng)內(nèi)各種交互信息的添加和刪除格式都有嚴(yán)格的要求,對(duì)于一個(gè)對(duì)開(kāi)發(fā)系統(tǒng)不是很熟悉的本人來(lái)說(shuō),提高安全性即密碼加密和添加各種信息的格式成為阻礙程序開(kāi)發(fā)的兩大難點(diǎn),同時(shí),為了保證系統(tǒng)避免遭受黑客的潛在注入性攻擊,暴力破解造成死鎖的攻擊危險(xiǎn),維護(hù)其穩(wěn)定性,因此需要設(shè)置驗(yàn)證碼登錄,保證密碼的安全性,避免信息被盜用,系統(tǒng)被破壞。其中這也是一大難點(diǎn)。因本文篇幅限制,故介紹密碼安全性的解決方案。
public static String makeMd5(String password){
MessageDigest md;
String pwd="";
boolean seccess = true;
try {md = MessageDigest.getInstance("MD5");
md.update(password.getBytes());
pwd = (new BASE64Encoder()).encodeBuffer(md.digest());
} catch (Exception e) {
seccess = false;
e.printStackTrace();
5 ? 結(jié)論(Conclusion)
本文進(jìn)行了餐廳管理系統(tǒng)從需求分析到詳細(xì)設(shè)計(jì)再到系統(tǒng)實(shí)現(xiàn)的完整分析,基于Java Web的餐廳管理系統(tǒng)在實(shí)際使用功能的要求上,可靠性上,經(jīng)濟(jì)性上,穩(wěn)定性上都有極大的優(yōu)勢(shì),同時(shí)對(duì)于各項(xiàng)功能的擴(kuò)展都留有接口,使其可擴(kuò)展性高,維護(hù)方便等。因此本系統(tǒng)的設(shè)計(jì)為提高目前餐廳經(jīng)營(yíng)管理模式提供了一種有效解決方案。
參考文獻(xiàn)(References)
[1] 劉麗華,薛玉倩.基于SpringMVC的學(xué)生信息管理系統(tǒng)[J].通訊世界,2019,26(10):173-174.
[2] F.Zhang. Design and Implementation of a Logistics Report Management System Based on Spring MVC[C]. Science and Engineering Research Center.Proceedings of 2015 International Conference on Electrical, Automation and Mechanical Engineering(EAME 2015), 2015: 833-836.
[3] 閔夢(mèng)嬌,羅恩韜,潘學(xué)文.基于Spring MVC框架的個(gè)性化PASS綜測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,15(31):64-65.
[4] 鄭智方.MySQL的重要性以及步入云的應(yīng)用實(shí)例[J].計(jì)算機(jī)產(chǎn)品與流通,2020(01):151.
[5] 劉志洋.AJAX技術(shù)在Web程序開(kāi)發(fā)中的運(yùn)用探討[J].輕紡工業(yè)與技術(shù),2020,49(02):169-170.
[6] 趙璘,王紅霞.JFinal與Spring MVC+JDBCTemplate在Web應(yīng)用開(kāi)發(fā)中的研究[J].電子元器件與信息技術(shù),2017,1(01):13-23.
作者簡(jiǎn)介:
牟明任(1996-),男,本科生.研究領(lǐng)域:軟件工程.
趙 ?璘(1981-),男,碩士,講師.研究領(lǐng)域:軟件工程.