◎張威 馬永斌
技洪流的涌動下,一大批智能設備應運產(chǎn)生,推動著互聯(lián)網(wǎng)革命的產(chǎn)生與發(fā)展,智能生活逐步走向人群中。白領人群的日益增多,以及工作的繁忙,導致他們并沒有足夠的時間到達特定的地點進餐,本設計開發(fā)的線上餐廳外送網(wǎng)站,解決消費人群的時間矛盾問題。線上餐廳采用B/S架構(gòu),運用JSP開發(fā)手段和MySQL數(shù)據(jù)庫進行項目開發(fā)與搭建,使用IDEA進行運行環(huán)境的搭建與配置,使用Spring、SpringMVC、MyBatis作為后臺開發(fā)框架,前端主題頁面采用jQuery框架進行頁面整體布局搭建。
本網(wǎng)站的前端功能頁面為消費人群提供,供給消費顧客選擇要購買的菜品,并完成加購、支付,以及評論等功能。后臺管理平臺針對于餐廳商家,進行訂單管理以及菜品添加修改。本報告對線上餐廳的需求以及網(wǎng)站的總體布局和測試維護進行詳細的概要描述。
隨著全國經(jīng)濟形勢的突飛猛進,生活節(jié)奏變得越來越快,給很多處于工作前線的白領們帶來工作與進餐的矛盾,沒有足夠的時間到特定的地點進餐,網(wǎng)上訂餐網(wǎng)站的誕生大大降低了這種矛盾的產(chǎn)生與激化。人們可以借助工作閑暇之余進行網(wǎng)上訂餐,大大減少了就餐時間,提高了工作效率與時間運用。將用戶點餐移動到線上,方便快捷的解決了用戶到店排隊點餐的痛點。定制餐廳專屬的外送管理平臺已尤為重要,客戶可登錄餐廳專屬的訂餐網(wǎng)站進行菜品選購,由餐廳管理人員負責管理訂餐后臺。移動點餐系統(tǒng)的開發(fā)已成為發(fā)展的趨勢,對餐飲業(yè)的發(fā)展起著極大的推動作用。
從2012年開始,我國網(wǎng)上在線訂餐外賣網(wǎng)站進入了起步期,美團、餓了么等在線點餐派送企業(yè)相繼成立,直到2021年1月,經(jīng)過九年的行業(yè)競爭,無數(shù)外賣的平臺的興起于衰落,現(xiàn)今已形成雙雄瓜分的形勢,外賣行業(yè)所占市場份額逐年遞增,也吸引著更多不同行業(yè)的人參與到市場競爭中來。
線上餐廳外送網(wǎng)站使用IntelliJIDEA作為開發(fā)平臺。IDEA相較于Eclipse,添加了代碼自動補全功能,可以大幅度節(jié)約了程序員在進行系統(tǒng)開發(fā)時消耗的時間,而且集成了多種框架工具,搭載Maven項目時,不需要專門下載jar包,提高了開發(fā)效率。
IDEA進行了代碼功能顏色分類,為枯燥的代碼時間添加了樂趣,增加了代碼的可讀性。更方便的Debug功能,使得程序修正時更加的便捷與方便。
(1)Java語言。
Java語言已經(jīng)高居計算機語言排名前列多年,面向?qū)ο筮M行編程,大大降低了代碼開發(fā)之間的難度。Java語言注重高內(nèi)聚,低耦合。系統(tǒng)功能之間的連接不再復雜,開發(fā)效率大大提高。
(2)jQuery。
jQuery是對JavaScript的封裝的框架,使用更少的語句完成更多的功能一直是jQuery核心,頁面的動畫以及輪播等功能基本上都是有JS語句完成,增加了用戶的體驗感。
(3)Spring。
Spring相較于普通的Java開發(fā)時的面向?qū)ο?,更?cè)重于面向切面,將代碼中具有相同的功能的業(yè)務邏輯成源代碼中抽離出來,統(tǒng)一進行管理,降低了程序間的耦合,提高了系統(tǒng)維護時的效率。Spring是一個開源框架,用戶可以在Spring的源代碼上進行修改和再創(chuàng)造。Spring的另一核心就是控制反轉(zhuǎn)。當一個對象要使用另一個對象的功能時,必須顯式的new一個對象,程序之間的耦合就會產(chǎn)生,在后期的系統(tǒng)的維護時,就會產(chǎn)生其一發(fā)而動全身的效果,這是維護人員最不想看到的事情,增加了系統(tǒng)的時間,造成不可估量的維護費用,而Spring則將這一步驟通過集成隱式的創(chuàng)建,大大降低了程序間的耦合。
(4)SpringMVC。
Spring集成了MVC模塊,將程序之間數(shù)據(jù)的傳輸、前臺頁面的展示功能以及用戶與頁面的交互之間相互分離,在系統(tǒng)維護的過程中可以在不影響業(yè)務邏輯的同時改變頁面與用戶之間的交互。即使用SpringMVC負責請求的轉(zhuǎn)發(fā)和視圖管理。
(5)MyBatis。
Mybatis框架主要是對數(shù)據(jù)訪問層進行操作,它的功能特點類似于JDBC[11]。MyBatis集成了整套JDBC連接語句,使開發(fā)者在進行數(shù)據(jù)庫連接時不用手動輸入JDBC連接對象和數(shù)據(jù)庫連接,提高了開發(fā)效率,支持了開發(fā)過程中所能使用的基本SQL語句,減輕了JDBC的復雜性,而且能夠很好的和Spring進行集成。
該系統(tǒng)主要開發(fā)目的是打造一個定制的網(wǎng)上訂餐平臺,其主要功能基于商家用戶對訂餐網(wǎng)站的設計要求,打造專屬的網(wǎng)上訂餐與送餐網(wǎng)站。主要服務對象為大型且具有一定用戶流量的商家用戶,使得其客戶無論在訂餐感受還是在用餐感受上的滿意程度大幅提升,不僅提高了菜品的銷量,還滿足了大部分客戶的需求。
(1)系統(tǒng)功能需求分析。本系統(tǒng)的功能主要包括:
a.用戶頁面:用戶可以在不登錄的條件下進行菜品的瀏覽,菜品評價的查看以及網(wǎng)站活動資訊的查看。
b.管理員頁面:管理員登錄到線上餐廳外送網(wǎng)站的后臺后可以獲取到客戶的個人賬號信息,包括收貨地址及手機等。菜品訂單的管理是本系統(tǒng)的重要組成部分,管理員通過操作菜品、訂單以及評論等后臺功能,完成對系統(tǒng)的運行。
(2)系統(tǒng)性能需求分析。
a.實用性。線上餐廳外送網(wǎng)站針對的用戶龐大,因此無論是在用戶視覺體驗還是訂餐與用餐體驗上都要多方位考慮。首先在頁面設計上,應多使用簡潔,明亮的設計,方便用戶挑選菜品的同時,不被繁雜的操作步驟降低購買的欲望。
b.高效率。在網(wǎng)站的功能上,應滿足多用戶同時登錄,其搭載的服務器應足夠,在數(shù)據(jù)庫方面,應保證每張表之間的關(guān)系,防止因數(shù)據(jù)庫方面的漏洞導致用戶體驗感降低。
c.安全性。為保證用戶賬號的安全性,使用MySQL存儲賬號密碼時,使用了MD5加密算法,加鹽值轉(zhuǎn)換為十六進制數(shù)據(jù)存儲到MySQL數(shù)據(jù)庫中,保證商家的賬戶安全,防止黑客獲取到數(shù)據(jù)信息時進行破解,給商家造成不可逆的財產(chǎn)損失。
d.維護性。本系統(tǒng)使用了SSM框架進行開發(fā),三層架構(gòu)將各個功能模塊完美的分割出來,當商家遇到系統(tǒng)問題或新的需求時,可保證更改某個功能時不影響到其他功能,降低功能與功能之間的耦合度。
線上餐廳外送網(wǎng)站開發(fā)用到的Java語言開發(fā)工具包是jdk1.8。對于一般的Java系統(tǒng)開發(fā),jdk1.8已可以滿足大部分開發(fā)人員的需求。而且相較于最新的jdk15版本,jdk1.8的穩(wěn)定性也較高。本課程的教學重點、難點為使用JSP實現(xiàn)數(shù)據(jù)的增、刪、改、查。在技術(shù)方面使用動態(tài)網(wǎng)頁開發(fā)技術(shù)JSP,可以完美的將網(wǎng)頁頁面上的動態(tài)內(nèi)容和前臺顯示進行分離,將所有使用的邏輯核心封裝在Bean中,使前臺開發(fā)人員在更改網(wǎng)頁前臺頁面,不會影響到后臺邏輯的運行。本系統(tǒng)搭載的框架使用了SSM,SSM框架封裝了大量基礎的簡單代碼,使開發(fā)效率大大提升,而且Spring的特點使得程序之間的耦合程度降低,利于系統(tǒng)后期的維護。Spring框架的功能可以應用在所有的J2EE服務器中。
(1)經(jīng)濟可行性分析。
線上餐廳外送網(wǎng)站開發(fā)使用了IDEA綠色版本,本系統(tǒng)所使用的數(shù)據(jù)持久化工具MySQL數(shù)據(jù)庫開源而且支持綠色版本。系統(tǒng)運行時所搭載的Web服務器為Tomcat也是面向大眾群體。不需要收費便可以提供給開發(fā)者使用并且運行,其開發(fā)成本較低。本網(wǎng)站面對的人群固定,所以投入運營后所要搭載的網(wǎng)絡服務器也相對較小,運營與維護成本較低。
(2)操作可行性分析。
本系統(tǒng)設計的目的就是為了提高用戶就餐體驗,節(jié)省用戶的點餐時間,所以在網(wǎng)站的訂餐頁面應盡量設計的簡潔,便于用戶操作,菜品分類明確,便于在眾多菜品種類中,快速找到自己想要購買的菜品。在后臺管理的設計頁面中,系統(tǒng)功能性明確,便于快速使用系統(tǒng)后臺應用功能,還要保證管理員登錄的安全性,管理員在設置密碼存儲到數(shù)據(jù)庫中時,使用MD5加鹽算法,使得商家密碼不會被黑客盜走,造成財務上的損失,對菜品進行統(tǒng)一管理,可以便捷的對菜品的信息、價格以及圖片進行修改。
線上餐廳外送網(wǎng)站的功能結(jié)構(gòu)模塊,主要功能分類包括實現(xiàn)前臺功能的用戶模塊和實現(xiàn)管理員后臺管理功能的模塊。其主要功能分類如圖2.1所示。
圖2.1 線上餐廳外送網(wǎng)站的功能圖
數(shù)據(jù)庫是整個網(wǎng)上訂餐網(wǎng)站的核心,只有配置好數(shù)據(jù)庫,與系統(tǒng)前臺建立好連接,才能使整個系統(tǒng)完美的運作起來。一個數(shù)據(jù)庫的優(yōu)劣影響著整個系統(tǒng)的用戶體驗,完美的數(shù)據(jù)庫關(guān)系可以使后期的維護簡單高效,還可以提升系統(tǒng)的運行速度,因此在數(shù)據(jù)庫的設計階段,就要考慮到整個系統(tǒng)運行和維護。
(1)前臺實現(xiàn)效果。
每一個網(wǎng)站的前臺首頁都是最直觀的表現(xiàn)出本網(wǎng)站的內(nèi)容,因此簡潔的首頁外觀往往可以帶給用戶的最好的使用感受,使用戶能夠很好的進行點餐操作,快速進行購買。網(wǎng)頁的右上角還會顯示用戶是否登錄,首頁效果如圖2.2所示。
圖2.2 線上餐廳首頁
(2)后臺實現(xiàn)效果。
作為網(wǎng)站重要的管理平臺,需要讓管理員更準確的找到需要管理的頁面,所以后臺登錄首頁只允許登錄,不能注冊。后臺登錄頁面如圖2.3所示。
圖2.3 后臺登錄頁面
線上餐廳外送網(wǎng)站在開發(fā)過程中使用Java作為主要的系統(tǒng)開發(fā)語言,使用JSP動態(tài)網(wǎng)頁開發(fā)技術(shù),來實現(xiàn)網(wǎng)站的前端頁面效果。相較于普通的HTML頁面,JSP網(wǎng)頁的優(yōu)勢在于可以將Java語言寫入到前端頁面,方便系統(tǒng)開發(fā)人員快速的將用戶輸入的數(shù)據(jù)獲取到后臺,通過后臺的業(yè)務邏輯將數(shù)據(jù)庫中的信息回顯到頁面中,減少了代碼的冗余,加快了程序的運行速度。
相較于網(wǎng)上熱門的外賣平臺,本系統(tǒng)的優(yōu)勢在于定制的網(wǎng)站服務和簡潔的購物頁面。可以為商家定制開發(fā)網(wǎng)頁前臺,用戶通過搜索商家網(wǎng)站進行點餐。