第1頁(yè)

畢業(yè)設(shè)計(jì)(論文)題目:基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(論文)要求及原始數(shù)據(jù)(資料):1.綜述目前國(guó)內(nèi)外網(wǎng)上訂餐管理系統(tǒng)的現(xiàn)狀;2.深入" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢(xún) 在線咨詢(xún)
15158846557 在線咨詢(xún)
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > 基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(包調(diào)試成功)

基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(包調(diào)試成功)

時(shí)間:2023-05-30 21:00:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-05-30 21:00:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(包調(diào)試成功):畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)

第1頁(yè)

畢業(yè)設(shè)計(jì)(論文)題目:基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(論文)要求及原始數(shù)據(jù)(資料):1.綜述目前國(guó)內(nèi)外網(wǎng)上訂餐管理系統(tǒng)的現(xiàn)狀;2.深入了解網(wǎng)上訂餐系統(tǒng)的管理方式以及軟件實(shí)現(xiàn)相關(guān)技術(shù);3.熟練掌握網(wǎng)上訂餐系統(tǒng)的業(yè)務(wù)流程實(shí)現(xiàn),訓(xùn)練編寫(xiě)開(kāi)發(fā)模塊程序的能力;4.設(shè)計(jì)并實(shí)現(xiàn)網(wǎng)上訂餐系統(tǒng)對(duì)于客戶(hù)(訂餐方),供貨商(管理員),支付等模塊的支持,維護(hù);5.深入分析網(wǎng)上訂餐系統(tǒng)的業(yè)務(wù)邏輯,及實(shí)現(xiàn)系統(tǒng)的關(guān)鍵技術(shù)與編寫(xiě)語(yǔ)言;6.訓(xùn)練檢索文獻(xiàn)資料和利用文獻(xiàn)資料的能力;7.訓(xùn)練撰寫(xiě)技術(shù)文檔與學(xué)位論文的能力。
第2頁(yè)

畢業(yè)設(shè)計(jì)(論文)主要內(nèi)容:1.綜述網(wǎng)上訂餐系統(tǒng)在線上,線下餐營(yíng)業(yè)中的應(yīng)用;2.了解網(wǎng)上訂餐系統(tǒng)設(shè)計(jì)思想以及實(shí)現(xiàn)應(yīng)用的相關(guān)技術(shù);3.熟悉網(wǎng)上訂餐系統(tǒng)標(biāo)準(zhǔn)的業(yè)務(wù)流程;4.設(shè)計(jì)網(wǎng)上訂餐系統(tǒng)針對(duì)用戶(hù),店鋪,支付等功能的模塊支持;5.深入分析網(wǎng)上訂餐系統(tǒng)的關(guān)鍵技術(shù)與編寫(xiě)語(yǔ)言以及業(yè)務(wù)的設(shè)計(jì)流程;6.熟練掌握基于javaEE的系統(tǒng)的代碼設(shè)計(jì)以及編寫(xiě);7.設(shè)計(jì)與實(shí)現(xiàn)網(wǎng)上訂餐系統(tǒng)具體模塊的程序,實(shí)現(xiàn)的功能: (1.)用戶(hù)模塊: ①用戶(hù)注冊(cè)登錄模塊 ②用戶(hù)管理模塊 (2.)后臺(tái)模塊: 系統(tǒng)后臺(tái)管理模塊學(xué)生應(yīng)交出的設(shè)計(jì)文件(論文):1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計(jì)論文;2.包括畢業(yè)設(shè)計(jì)論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計(jì)電子文檔及其它相關(guān)材料。
第3頁(yè)

主要參考文獻(xiàn)(資料):[1] 康牧,JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)實(shí)用教程,清華大學(xué)出版社,2009.[2] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010.[3] 楊學(xué)瑜,高立軍,軟件開(kāi)發(fā)過(guò)程與項(xiàng)目管理,電子工業(yè)出版社,2008.[4] 唐友國(guó) 湛洪波著.JSP網(wǎng)站開(kāi)發(fā)詳解.電子工業(yè)出版社2008年10月.[5] 衛(wèi)紅春等著.信息系統(tǒng)分析與設(shè)計(jì)[M].杭州.清華大學(xué)出版社.2009.[6]張文靜 林琪著.JSP程序設(shè)計(jì).人民郵電出版社.2005.[7] 張孝祥、徐明華, JAVA基礎(chǔ)與案例開(kāi)發(fā)詳解, 清華大學(xué)出版社, 2009.[8]張潔才,Java web應(yīng)用開(kāi)發(fā)教程,科學(xué)出版社,2005.[9]戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010.[10] James D. McCaffrey等著.NET軟件測(cè)試自動(dòng)化之道[M]. 杭州.電子工業(yè)出版社.2007.[11]張大方 李瑋等著.軟件測(cè)試技術(shù)與管理[M].湖南.湖南大學(xué)出版社,2007.[12] James Turner,Kevin Bedell. Struts Kick Start[M]. SAMS,2009.[13](美)Elliotte Rusty Harold著.Java Network Programming.東南大學(xué)出版社 .2005.[14] (美)H.M.Deitel,P.Jdeitel著.Java程序設(shè)計(jì)教程(第五版). 清華大學(xué)出版社.2004.[15] (美)David flanagan著.Java技術(shù)手冊(cè)(第五版).東南大學(xué)出版社.2006.
基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

摘 要

隨著科學(xué)技術(shù)與經(jīng)濟(jì)的快速發(fā)展,網(wǎng)絡(luò)信息技術(shù)也有了顯著的提升與進(jìn)步,當(dāng)今的社會(huì)是一個(gè)集數(shù)字化,網(wǎng)絡(luò)化,信息化的,并且是以網(wǎng)絡(luò)為核心的現(xiàn)代化社會(huì)。伴隨信息互聯(lián)網(wǎng)的高速成長(zhǎng),使得互聯(lián)網(wǎng)應(yīng)用也走進(jìn)家家戶(hù)戶(hù)的日常生活。網(wǎng)上訂餐作為一種新的生活方式,更加新穎。

畢業(yè)設(shè)計(jì)中,界面的設(shè)計(jì)主要使用了在jsp插入HTML語(yǔ)言以及JavaScript對(duì)系統(tǒng)的頁(yè)面進(jìn)行相關(guān)的加工處理完善以使得頁(yè)面實(shí)現(xiàn)的效果盡可能的滿(mǎn)足美觀的要求。而對(duì)于后臺(tái)的設(shè)計(jì)主要是使用了javaSE基礎(chǔ)編程,及javaEE中的Jsp頁(yè)面的動(dòng)態(tài)編程,servlet處理交互邏輯,并且使用jdbc連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)則選用了更為高效的MySql數(shù)據(jù)庫(kù)。

本論文就此次畢業(yè)設(shè)計(jì)的系統(tǒng)內(nèi)容,從餐品的管理,餐品的分類(lèi)以及查詢(xún),到訂餐車(chē)實(shí)現(xiàn),客戶(hù)對(duì)訂單的處理,再到系統(tǒng)對(duì)訂餐和餐品的管理。系統(tǒng)從業(yè)務(wù)流程的角度上分析,完成了訂餐系統(tǒng)的基本功能,可是使得用戶(hù)通過(guò)互聯(lián)網(wǎng)進(jìn)行點(diǎn)餐以及交易。相比于以往的訂餐方式,網(wǎng)上訂餐更加便捷,高效,對(duì)于餐廳更加節(jié)省人力,有利于管理,對(duì)于顧客更加省時(shí)省力。

關(guān)鍵字: 網(wǎng)上訂餐系統(tǒng); JSP; 系統(tǒng)管理

Design and implementation of online ordering system based on JSP

Abstract

With the rapid development of science and technology and economy, network information technology has also been improved and significant progress, the society is a set of digital, network, information, and network as the core of the modern society. With the rapid growth of information and Internet, Internet applications have entered daily life in every family. Online ordering as a new way of life, more innovative.

The graduation design, the interface design of the main use of the HTML language and JavaScript system to insert page processing related to the perfect page to achieve the effect of as much as possible to meet the aesthetic requirements in jsp. For the background of the design is mainly used javaSE based programming, dynamic programming and javaEE Jsp page, servlet interactive logic, and use JDBC to connect to the database, the database is more efficient in MySql database.

This paper on the graduation design of the system content, from the management of the meal, the classification of food and query, to the order cart, customer order processing, and then to the system of ordering and food management. From the point of view of the business process, the system has completed the basic functions of the ordering system, but it allows users to order and trade via the internet. Compared to the previous way of ordering, online ordering more convenient and efficient, for restaurants to save more manpower, is conducive to management, for customers more time and effort.

Keywords: online ordering system; JSP; system management

目  錄

摘要I

AbstractII

緒 論1

1 系統(tǒng)概述與技術(shù)介紹2

1.1 課題背景2

1.2 B/S結(jié)構(gòu)介紹3

1.3 JSP技術(shù)介紹4

1.4 JavaScrip語(yǔ)言介紹4

1.5 MySQL數(shù)據(jù)庫(kù)介紹5

1.6 MyEclipse介紹5

1.7 MVC模式介紹6

2 系統(tǒng)需求分析7

2.1 開(kāi)發(fā)環(huán)境7

2.2 需求分析7

2.3 可行性分析8

3 系統(tǒng)概要設(shè)計(jì)9

3.1 系統(tǒng)設(shè)計(jì)概述9

3.2 系統(tǒng)功能分析10

3.3 系統(tǒng)用例圖12

3.4 系統(tǒng)功流程圖14

4 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)15

4.1 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)15

4.1.1 概念結(jié)構(gòu)設(shè)計(jì)15

4.1.1 表概要說(shuō)明16

4.1.2 數(shù)據(jù)表的結(jié)構(gòu)16

5 系統(tǒng)的實(shí)現(xiàn)20

5.1 前臺(tái)模塊首頁(yè)20

5.2 用戶(hù)注冊(cè)登錄管理22

5.3 用戶(hù)訂餐管理功能23

5.4 用戶(hù)其他功能操作頁(yè)面27

5.5 后臺(tái)管理員登錄,注冊(cè)功能27

5.6 后臺(tái)管理員菜品管理28

5.7 后臺(tái)員工及會(huì)員管理29

5.8 后臺(tái)材料采購(gòu)管理29

5.9銷(xiāo)售訂餐及統(tǒng)計(jì)管理30

6 系統(tǒng)測(cè)試32

6.1 測(cè)試方法32

6.2 系統(tǒng)流程32

6.2.1 前臺(tái)首頁(yè)測(cè)試32

6.2.2購(gòu)物車(chē)模塊測(cè)試32

6.2.3 菜品管理模塊測(cè)試33

6.2.4 會(huì)員注冊(cè)模塊測(cè)試33

6.2 系統(tǒng)測(cè)試結(jié)果33

總 結(jié)35

參考文獻(xiàn)36

致謝37

英文原文38

中文翻譯45

緒 論

隨著我國(guó)在本世紀(jì)科學(xué)技術(shù)與經(jīng)濟(jì)的快速提高,網(wǎng)絡(luò)信息技術(shù)也有了顯著的提升與進(jìn)步。在我們平日生活中有很多生活方式以及習(xí)慣隨著周?chē)畔⒒目焖偬岣咭灿泻鸵酝啾茸兓桨l(fā)的翻天覆地。本次畢業(yè)設(shè)計(jì)“基于jsp的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,相比與之前傳統(tǒng)的電話(huà)訂餐,門(mén)店訂餐這種靠無(wú)線電話(huà),人工傳遞的方式的信息途徑,這些方式解決問(wèn)題的效率很低,店家(餐廳)不能及時(shí)將餐廳對(duì)菜品的調(diào)整通知顧客,顧客對(duì)于用餐需求也不能進(jìn)行調(diào)整,線下的交流并不能形成方便快捷的交互。很多時(shí)候?qū)τ?,餐廳以及顧客都是一種損失。由于上述缺陷,為了適應(yīng)當(dāng)前時(shí)代信息快速發(fā)展,數(shù)據(jù)大爆炸的趨勢(shì),采用先進(jìn)的發(fā)展的網(wǎng)上訂餐管理系統(tǒng)使上述的種種缺陷得以得到緩解和解決,精簡(jiǎn)了餐廳的工作流程,顧客的訂餐更加便捷,從而提高了餐廳的營(yíng)業(yè)額。由于網(wǎng)絡(luò)的的快速發(fā)展,所以訂餐系統(tǒng)隨著網(wǎng)絡(luò)也要有一定的發(fā)展與變化。因此畢業(yè)設(shè)計(jì)“基于jsp的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”是非常有必要的。網(wǎng)上訂餐系統(tǒng)對(duì)訂餐所涉及的兩個(gè)主要用戶(hù):客戶(hù)與店家(餐廳),在實(shí)現(xiàn)網(wǎng)上訂餐之前,雙方進(jìn)行訂餐工作,雙方都需要花費(fèi)大量不必要的時(shí)間精力。而快速發(fā)展的網(wǎng)絡(luò)技術(shù),使得訂餐系統(tǒng)中所要使用的管理流程在很大程度上做到了極大的簡(jiǎn)化了,使得餐廳的管理系統(tǒng)更加快速高效,更加便捷。提高餐廳工作人員的整體工作效率,更加給使用訂餐系統(tǒng)的顧客更加便捷的使用享受和良好的用戶(hù)體驗(yàn)。

從始至終人們都尋求便捷,舒適的生活方式。網(wǎng)絡(luò)作為提高生活水平的重要工具,在出現(xiàn)后,人們逐漸對(duì)其產(chǎn)生了依賴(lài),在依賴(lài)的同時(shí)也希望網(wǎng)絡(luò)能給自己帶來(lái)更方便的幫助,從而大量的銷(xiāo)售網(wǎng)站,娛樂(lè)網(wǎng)站等等也就慢慢誕生了,這個(gè)網(wǎng)上訂餐系統(tǒng)是一種基于B/S架構(gòu)的一種系統(tǒng)模式,訂餐系統(tǒng)網(wǎng)站的上手非常的方便,即使第一次登陸,通過(guò)網(wǎng)站的指引也會(huì)讓您訂餐非常順利便捷,如同多次訂餐的老顧客一般。

此次畢業(yè)設(shè)計(jì)的系統(tǒng),網(wǎng)上訂餐系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì),在系統(tǒng)可靠性,以及項(xiàng)目的擴(kuò)展性上占有極大優(yōu)勢(shì)。此外對(duì)一些java相關(guān)技術(shù)進(jìn)行了部分研究,設(shè)計(jì)并且實(shí)現(xiàn)系統(tǒng),同時(shí)為以后自己的可能還要做的其他項(xiàng)目打下了有效以及堅(jiān)實(shí)的基礎(chǔ)。

1 系統(tǒng)概述與技術(shù)介紹

網(wǎng)上訂餐系統(tǒng)作為一個(gè)銷(xiāo)售管理系統(tǒng),首先在頁(yè)面的結(jié)構(gòu)上一定要相對(duì)有自己的獨(dú)特之處,凸顯餐廳的風(fēng)格,餐品的質(zhì)量。只有如此才能從一開(kāi)始吸引顧客的目光,通過(guò)美觀的頁(yè)面滿(mǎn)足顧客對(duì)此類(lèi)訂餐系統(tǒng)的好感依賴(lài)以及業(yè)務(wù)功能的需求。與此同時(shí),系統(tǒng)也要有先對(duì)強(qiáng)的實(shí)用性,系統(tǒng)的實(shí)用性不強(qiáng),這樣的系統(tǒng)會(huì)是的顧客產(chǎn)生厭惡心理,不利于一個(gè)餐廳的未來(lái)發(fā)展。當(dāng)然,作為一個(gè)銷(xiāo)售管理系統(tǒng),要對(duì)顧客的點(diǎn)餐做數(shù)據(jù)統(tǒng)計(jì),這樣才能方便餐廳對(duì)該顧客的用餐習(xí)慣分析,更好的對(duì)顧客實(shí)施更加人性化的服務(wù)。

1.1 課題背景

上世紀(jì)90年代,互聯(lián)網(wǎng)逐漸走進(jìn)人們的視野,在不知不覺(jué)中改變著社會(huì)的商品交易方式。國(guó)內(nèi)各大企業(yè)從認(rèn)識(shí)到互聯(lián)網(wǎng)的重要性之后,一直堅(jiān)持不斷的探索網(wǎng)上交易的可能。但是由于網(wǎng)絡(luò)生活具有很大的虛擬性,商家的信譽(yù)很難得到保證、有關(guān)網(wǎng)上交易的法規(guī)未出臺(tái)、物流的滯后以及其他的一些問(wèn)題,都成為了網(wǎng)絡(luò)交易發(fā)展的絆腳石。但是,社會(huì)的進(jìn)步是具有持續(xù)性的,21世紀(jì)以來(lái),各個(gè)瓶頸問(wèn)題包括網(wǎng)上支付、物流速遞等一一被攻破,網(wǎng)上交易的黃金時(shí)代也隨之來(lái)臨。

調(diào)查顯示,由于科技的進(jìn)步極大地繁榮了物質(zhì)生產(chǎn)生活,人們對(duì)于生活的便利性要求進(jìn)一步提高,網(wǎng)上交易特別是以食品外賣(mài)為代表與大眾日常生活休戚相關(guān)的網(wǎng)絡(luò)交易量將在未來(lái)幾年達(dá)到高峰。

網(wǎng)上交易這一方式給人們的消費(fèi)模式注入了一股新的活力,極大地沖擊了原有的傳統(tǒng)購(gòu)物消費(fèi)習(xí)慣。網(wǎng)上訂餐這一方式,在90后人群中擁有大量的支持者,促使他們做出選擇的,不僅僅是這一形式的便利性,還包括相關(guān)網(wǎng)站對(duì)于消費(fèi)者的引導(dǎo)。

1.2 B/S結(jié)構(gòu)的介紹

此次系統(tǒng)的設(shè)計(jì)過(guò)程主要運(yùn)用到了我們?cè)趯W(xué)校以及公司經(jīng)常提及使用的B/S結(jié)構(gòu)。所謂的B/S系統(tǒng)就是瀏覽器、服務(wù)器的系統(tǒng)結(jié)構(gòu)。網(wǎng)上訂餐系統(tǒng)使用B/S結(jié)構(gòu),主要就是需要服務(wù)端的計(jì)算機(jī)安裝數(shù)據(jù)庫(kù)以及服務(wù)器。而在客戶(hù)端,一個(gè)瀏覽器就足夠。服務(wù)器在服務(wù)端運(yùn)行,瀏覽器在客戶(hù)端運(yùn)行,

B/S結(jié)構(gòu)作為目前最先進(jìn)的軟件構(gòu)造技術(shù),在用戶(hù)使用的瀏覽器向服務(wù)器提交了一些請(qǐng)求之后,服務(wù)器端如果接收到了用戶(hù)在瀏覽器端發(fā)送的請(qǐng)求之后,服務(wù)器端對(duì)從瀏覽器接收而來(lái)的請(qǐng)求對(duì)其進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,隨后將其完成處理后的結(jié)果返回給瀏覽器所在的客戶(hù)端。

B/S結(jié)構(gòu)也是有很多種的,例如:針對(duì)OA系統(tǒng)的開(kāi)發(fā),這些系統(tǒng)主要包括應(yīng)用程序的研發(fā)(基于C/S結(jié)構(gòu)的開(kāi)發(fā)),以及使用傳統(tǒng)的C/S結(jié)構(gòu)的跟網(wǎng)絡(luò)技術(shù)結(jié)合的混合應(yīng)用,以及到目前為止是我們常常用到的網(wǎng)站制作的技術(shù)。但是不可否認(rèn)的是,每中結(jié)構(gòu)以及技術(shù)都有自己的優(yōu)點(diǎn)以及缺點(diǎn):在此前的C/S結(jié)構(gòu)中,更多的它是一種比較傳統(tǒng)的使用較為廣泛的軟件開(kāi)發(fā)的模式,主要是通過(guò)客戶(hù)端以及數(shù)據(jù)庫(kù)兩層結(jié)構(gòu)完成系統(tǒng)的實(shí)現(xiàn),在兩層之間還可以加入其他層次與結(jié)構(gòu),C/S作為先前傳統(tǒng)的軟件開(kāi)發(fā)標(biāo)準(zhǔn)以及開(kāi)發(fā)設(shè)計(jì)結(jié)構(gòu),在伴隨網(wǎng)絡(luò)和軟件的開(kāi)發(fā)技術(shù)快速進(jìn)步,在各種新興技術(shù)不斷出現(xiàn)下,被取代或彌補(bǔ)了其結(jié)構(gòu)的很多缺陷,于是也被其衍生出來(lái)的新興結(jié)構(gòu)技術(shù)在系統(tǒng)開(kāi)發(fā)的過(guò)程中漸漸的將其取代。

1.3JSP技術(shù)的介紹

此次網(wǎng)上訂餐系統(tǒng)中頁(yè)面主要使用到的技術(shù)是java的JSP技術(shù),JSP技術(shù)之所以被廣泛被使用到各種項(xiàng)目中去,主要也是因?yàn)槠渥陨頁(yè)碛械暮芏喙δ?,這使得在項(xiàng)目中可以實(shí)現(xiàn)滿(mǎn)足開(kāi)發(fā)人員,程序員對(duì)項(xiàng)目所需要的效果。

作為JSP技術(shù)的基礎(chǔ),servlet技術(shù)在此前的開(kāi)發(fā)中一直被開(kāi)發(fā)人員所應(yīng)用。JSP技術(shù)的優(yōu)點(diǎn):

(1)進(jìn)過(guò)一次的開(kāi)發(fā)和編寫(xiě),可以在多種平臺(tái)運(yùn)行。因?yàn)镴SP/Servlet都是基于Java變成語(yǔ)言的,因此具有其編程語(yǔ)言的一個(gè)主要優(yōu)點(diǎn)——平臺(tái)無(wú)關(guān)性,這個(gè)就是著名的的“一次編寫(xiě),隨處運(yùn)行(WORA – Write Once, Run Anywhere)”。

(2)系統(tǒng)的多平臺(tái)支持性。在目前已知的所有平臺(tái)JSP技術(shù)可以進(jìn)行任意的環(huán)境開(kāi)發(fā),并且在平臺(tái)中將項(xiàng)目部署在任意的環(huán)境里,相比于其他技術(shù),可以根據(jù)自己項(xiàng)目的需求任意的環(huán)境中拓展。這些優(yōu)勢(shì)相比ASP/PHP的局限性是顯而易見(jiàn)的。

(3)強(qiáng)大的可伸縮性。JSP可以運(yùn)行小到從有一個(gè)jar文件,大到多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,多到多臺(tái)Application進(jìn)行transaction,還有消息處理,從一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java程序編程語(yǔ)言顯示了其巨大的能量。

(4)功能得多態(tài)多樣以及獲得大多數(shù)開(kāi)發(fā)工具的技術(shù)支持。這個(gè)優(yōu)勢(shì)和ASP有點(diǎn)類(lèi)似,java擁有眾多的的開(kāi)發(fā)工具并且極為優(yōu)秀好用。并且都是免費(fèi)下載使用的,而且可以成功穩(wěn)定得在多個(gè)平臺(tái)上順利運(yùn)行。

(5)JSP標(biāo)簽可擴(kuò)充性。JSP對(duì)Web網(wǎng)頁(yè)的動(dòng)態(tài)構(gòu)建主要是利用腳本技術(shù)和標(biāo)簽,JSP技術(shù)站在開(kāi)發(fā)者的角度考慮允許開(kāi)發(fā)者拓展JSP標(biāo)簽,定制專(zhuān)屬的標(biāo)簽庫(kù),xml標(biāo)簽擁有很好的兼容性以及強(qiáng)大的功能,網(wǎng)頁(yè)制作者可以充分利用,減少對(duì)腳本語(yǔ)言的大量依賴(lài),利用自己定制的標(biāo)簽,使網(wǎng)頁(yè)制作程序員降低了制作網(wǎng)頁(yè)的難度以及復(fù)雜度。

1.4JavaScript語(yǔ)言介紹

此次畢業(yè)設(shè)計(jì),在其中的前臺(tái)jsp頁(yè)面中大量的使用了前端腳本語(yǔ)言JavaScript。 JavaScript編程語(yǔ)言以其獨(dú)有特性,使得他在目前的大多數(shù)項(xiàng)目的前臺(tái)頁(yè)面設(shè)計(jì)以及編程都占有重要的一席之地。由于js設(shè)計(jì)來(lái)的產(chǎn)品會(huì)主要運(yùn)行在用戶(hù)的瀏覽器客戶(hù)端,使得只要用戶(hù)點(diǎn)擊頁(yè)面的一些按鈕或者特殊位置,就可以觸發(fā)特定的事件進(jìn)行操作,在頁(yè)面的JavaScript腳本就會(huì)將事件傳給客戶(hù)端(瀏覽器),在客戶(hù)端被設(shè)計(jì)好的事件就會(huì)執(zhí)行進(jìn)行相應(yīng)的事件處理完成一系列的操作。

網(wǎng)上訂餐管理系統(tǒng)在前臺(tái)頁(yè)面的編寫(xiě)設(shè)計(jì)中就多次使用到了JavaScript這種流行的前端編程語(yǔ)言,眾多的優(yōu)勢(shì),使得很多項(xiàng)目的前臺(tái)都是它和它發(fā)展衍生的眾多類(lèi)庫(kù)編寫(xiě)的,例如我們熟知的:jQuery,easyUI,Extjs等在眾多的豐富的前端js類(lèi)庫(kù)。

網(wǎng)上訂餐管理系統(tǒng)在很多地方都用到了JavaScript腳本語(yǔ)言,例如:顧客以及管理員登錄頁(yè)面時(shí)候的,檢出數(shù)據(jù)是否有效,包括重復(fù)為空等場(chǎng)景。

1.5 MySQL數(shù)據(jù)庫(kù)介紹

首先要說(shuō)的是MySQL是一個(gè)開(kāi)源免費(fèi)的數(shù)據(jù)庫(kù)。這也是為什么作為一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),卻獲得了大量的使用,當(dāng)然這并不是它的最大優(yōu)點(diǎn)。MySQL數(shù)據(jù)庫(kù)擁有很多優(yōu)點(diǎn),比如說(shuō):MySql的適應(yīng)性很好,運(yùn)行和反應(yīng)速度快,使用的可靠性高。與此同時(shí),結(jié)構(gòu)化查詢(xún)語(yǔ)句是MySql數(shù)據(jù)庫(kù)系統(tǒng)主要使用的數(shù)據(jù)庫(kù)管理方式,結(jié)構(gòu)化查詢(xún)語(yǔ)言也是目前在數(shù)據(jù)庫(kù)管理語(yǔ)言中最受人們歡迎的,也是最為常用的。因此在很多的項(xiàng)目系統(tǒng)開(kāi)發(fā)中都會(huì)被開(kāi)發(fā)人員關(guān)注,經(jīng)常使用。由于數(shù)據(jù)庫(kù)開(kāi)發(fā)者的允許,MySql作為開(kāi)源的軟件,在官方網(wǎng)站和很多其他網(wǎng)站都可下載到各種版本的MySql數(shù)據(jù)庫(kù)。并且根據(jù)個(gè)人或者開(kāi)發(fā)團(tuán)隊(duì)的項(xiàng)目需要對(duì)下載的代碼做出合理的修改。由此我們可以看出,作為一個(gè)小型的關(guān)系型數(shù)據(jù)庫(kù),在一些項(xiàng)目的管理上是一個(gè)很好的選擇,當(dāng)然這也是在此項(xiàng)目沒(méi)有超出MySql的數(shù)據(jù)處理能力的范圍之外。

1.6 MyEclipse介紹

此次畢業(yè)設(shè)計(jì)主要是面向顧客用戶(hù)在前臺(tái)頁(yè)面訂餐,后臺(tái)管理人員對(duì)前臺(tái)頁(yè)面出來(lái)的數(shù)據(jù)請(qǐng)求進(jìn)行數(shù)據(jù)處理,并對(duì)客戶(hù)端頁(yè)面進(jìn)行及時(shí)調(diào)整,完善的管理系統(tǒng)。

MyEclipse開(kāi)發(fā)軟件對(duì)系統(tǒng)項(xiàng)目的開(kāi)發(fā)更加方便快捷,開(kāi)發(fā)項(xiàng)目的管理更具有條理性。相比于被廣泛使用的Eclipse開(kāi)發(fā)軟件,MyEclipse在Eclipse開(kāi)發(fā)軟件的基礎(chǔ)上進(jìn)行了詳細(xì)的優(yōu)化和功能的完善,并且對(duì)Eclipse的開(kāi)發(fā)環(huán)境進(jìn)行了優(yōu)化,最大的限度進(jìn)行了拓展。使用Eclipse中很多時(shí)候我們自己要尋找安裝插件,但是MyEclipse基本會(huì)幫開(kāi)發(fā)人員在使用之前就集成好了,這對(duì)于開(kāi)發(fā)人員的開(kāi)發(fā)是十分便利的,因此目前正在廣泛使用于企業(yè)級(jí)集成開(kāi)發(fā)中去。而且,MyEclipse開(kāi)發(fā)軟件在應(yīng)用程序的整合方面也顯得十分成功,如果開(kāi)發(fā)人員能十分熟悉Eclipse,那么對(duì)MyEclipse的使用也一定不會(huì)陌生,因?yàn)镸yEclipse的快捷鍵與Eclipse基本保持一致。

1.7MVC模式介紹

此次畢業(yè)設(shè)計(jì)為了能夠在設(shè)計(jì)實(shí)現(xiàn)上達(dá)到最初的想法及要求。并且使完成的系統(tǒng)可以具有一個(gè)優(yōu)秀系統(tǒng)所擁有的一些優(yōu)點(diǎn):安全性高,可移植性好,跨品臺(tái)性高,拓展性?xún)?yōu)秀,還能具有分布式結(jié)構(gòu)。因此在項(xiàng)目中用到了前文所介紹的B/S結(jié)構(gòu)體系,我所設(shè)計(jì)實(shí)現(xiàn)的訂餐系統(tǒng)正式基于Java編程語(yǔ)言的B/S設(shè)計(jì)模式的。為了更加完善系統(tǒng),結(jié)合在大學(xué)時(shí)期學(xué)過(guò)的計(jì)算機(jī)軟件知識(shí),我還用到了另一個(gè)結(jié)構(gòu)模式,MVC三層結(jié)構(gòu),MVC三層結(jié)構(gòu)主要是指基于模型model,視圖view以及控制controller的結(jié)構(gòu)模型,而MVC正是這三者英文的首字母縮寫(xiě)。

控制器,視圖,模型三層軟件設(shè)計(jì)模式是MVC軟件設(shè)計(jì)模式的根本。這三層模式對(duì)應(yīng)到了實(shí)際項(xiàng)目系統(tǒng)中的web服務(wù)器。目前,在網(wǎng)上訂餐管理系統(tǒng)中主要使用的MVC模式,如下圖。

圖1-1 MVC設(shè)計(jì)結(jié)構(gòu)圖

由以上的結(jié)構(gòu)圖可以得知,在此次的項(xiàng)目系統(tǒng)中,前臺(tái)界面頁(yè)面的主要任務(wù)就是使用系統(tǒng)的用戶(hù)可以正常的使用系統(tǒng)邏輯正確完成所要實(shí)現(xiàn)的業(yè)務(wù)。當(dāng)我們使用網(wǎng)上訂餐管理系統(tǒng)的時(shí)候,僅僅需要在用戶(hù)的本地計(jì)算機(jī),移動(dòng)通訊設(shè)備安裝一個(gè)瀏覽器,在這里使用的瀏覽器不會(huì)限制其版本,開(kāi)發(fā)團(tuán)隊(duì)以及類(lèi)型。用戶(hù)就可以通過(guò)這個(gè)瀏覽器作為客戶(hù)端與我們的網(wǎng)上訂餐管理系統(tǒng)建立網(wǎng)絡(luò)連接,用戶(hù)在使用的瀏覽器中發(fā)送需求信息,交由在系統(tǒng)當(dāng)中的業(yè)務(wù)邏輯進(jìn)行準(zhǔn)確的數(shù)據(jù)處理,這些過(guò)程主要是由MVC結(jié)構(gòu)中的對(duì)應(yīng)層次進(jìn)行處理的。業(yè)務(wù)邏輯得到準(zhǔn)確的執(zhí)行處理后,將處理好的數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)的數(shù)據(jù)交互。在模型層中,數(shù)據(jù)訪問(wèn)層必不可少,他主要實(shí)現(xiàn)了當(dāng)前的系統(tǒng)(網(wǎng)上訂餐管理系統(tǒng))對(duì)數(shù)據(jù)的增、刪、改、查等數(shù)據(jù)處理操作。

由上述的闡述,我們可以得出MVC設(shè)計(jì)模式具有眾多的優(yōu)勢(shì),其中主要是有:

  1. 低耦合性,高內(nèi)聚性
  2. 有利于開(kāi)發(fā)者使用,極高的重用性
  3. 可以簡(jiǎn)單方便的使用,快速的部署
  4. 具有比較好的可維護(hù)性,易于未來(lái)的維護(hù)
  5. 具有生命周期本身成本較低的優(yōu)勢(shì)
  6. 軟件過(guò)程化的管理方法更有利于開(kāi)發(fā)的進(jìn)行
2 系統(tǒng)需求分析

2.1 開(kāi)發(fā)環(huán)境

此次畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)”的開(kāi)發(fā)計(jì)算機(jī)環(huán)境主要是學(xué)校配發(fā)的戴爾品牌筆記本電腦,型號(hào)是惠普242G1,處理器為英特爾酷睿i5 3代系列,內(nèi)存容量為 4GB,顯示屏 14英寸;顯卡芯片品牌NVIDIA,型號(hào)NVIDIA GeForce GT 730M+I(xiàn)ntel GMA HD 4000;硬盤(pán)品牌希捷,容量500GB;使用的系統(tǒng)是Windows7旗艦版 SP1。

在我開(kāi)發(fā)完成的訂餐項(xiàng)目系統(tǒng)中,主要使用的數(shù)據(jù)庫(kù)是當(dāng)前非常受歡迎的開(kāi)源免費(fèi)的數(shù)據(jù)庫(kù)MySQL。進(jìn)行項(xiàng)目系統(tǒng)開(kāi)發(fā),發(fā)布管理的軟件也是MyEclipse工具。使用到的技術(shù),主要是JSP技術(shù),以及前端流行的腳本語(yǔ)言JavaScript,還有JAVA編程語(yǔ)言,HTML標(biāo)簽 等。此次完成的系統(tǒng)項(xiàng)目,訂餐管理系統(tǒng)是不需要使用戶(hù)安裝客戶(hù)端程序就可以使用,用戶(hù)只需要使用瀏覽器就可以正常的,完整的使用訂餐管理系統(tǒng)的全部所有功能。

2.2 需求分析

參照軟件開(kāi)發(fā)的標(biāo)準(zhǔn)規(guī)范,參考很多成功的軟件開(kāi)發(fā)案例,軟件開(kāi)發(fā)很重要的一環(huán)就是軟件需求分析。軟件需求分析當(dāng)中很重要的一點(diǎn)就是通過(guò)這次分析,真正準(zhǔn)確了解到用戶(hù)的真實(shí)需求,完整準(zhǔn)確地項(xiàng)目設(shè)計(jì)以及編碼開(kāi)發(fā),這樣才能在項(xiàng)目完成之后,交給用戶(hù)一個(gè)滿(mǎn)意的系統(tǒng)。不僅如此,同時(shí)還能在軟件開(kāi)發(fā)之初,對(duì)軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)評(píng)估。最后完成一次完整的軟件開(kāi)發(fā)設(shè)計(jì)。

軟件項(xiàng)目的需求分析這個(gè)在軟件開(kāi)發(fā)過(guò)程中至關(guān)重要的一環(huán),無(wú)論在什么時(shí)候都占有著不可忽視的地位,不能被省略或者敷衍而過(guò)。這正是因?yàn)樗谡麄€(gè)的項(xiàng)目開(kāi)發(fā)當(dāng)中有著舉足輕重的作用。因?yàn)檐浖?xiàng)目的需求分析,才能在項(xiàng)目的設(shè)計(jì)開(kāi)發(fā)之前,充分理解用戶(hù)需要,準(zhǔn)確的明確開(kāi)發(fā)的方向。在開(kāi)發(fā)的過(guò)程中知道。什么功能是必須實(shí)現(xiàn)的,什么工作是必須完成的。對(duì)系統(tǒng)進(jìn)行全面的定義,準(zhǔn)確,具體的需求,才能更好的實(shí)現(xiàn)在項(xiàng)目開(kāi)發(fā)當(dāng)中具有極其重要的功能。

一個(gè)完善優(yōu)秀的項(xiàng)目系統(tǒng)在開(kāi)發(fā)之初,開(kāi)發(fā)的初期就要準(zhǔn)備充足的資料,進(jìn)行項(xiàng)目的需求分析。只有在這個(gè)階段完成一個(gè)明細(xì),詳盡的需求分析,我們才能在后期的設(shè)計(jì),編碼中更好的實(shí)現(xiàn)系統(tǒng)功能,完成一個(gè)用戶(hù)滿(mǎn)意的系統(tǒng)。

2.3 可行性研究分析

在開(kāi)發(fā)的前期,對(duì)一個(gè)項(xiàng)目系統(tǒng)進(jìn)行可行性分析,這是軟件開(kāi)發(fā)過(guò)程中不可或缺的工作。從多個(gè)角度,維度進(jìn)行可行性分析,可以將項(xiàng)目分析的更加透徹具體,從項(xiàng)目的方方面面來(lái)深入理解項(xiàng)目系統(tǒng)。

  1. 技術(shù)可行性分析
在目前大多數(shù)的公司使用到的軟件開(kāi)發(fā)工具是MyEclipse ,例如我目前實(shí)習(xí)的公司就是用的是MyEclipse2016,因此我在我此次的項(xiàng)目系統(tǒng),網(wǎng)上訂餐管理系統(tǒng)就是用到了MyEclipse 軟件開(kāi)發(fā)工具。ava作為一當(dāng)下最受歡迎關(guān)注的編程語(yǔ)言,歷久彌新,而且方便靈活使用,是此次開(kāi)發(fā)系統(tǒng)的不二之選。

(2)經(jīng)濟(jì)的可行性分析

此次畢業(yè)設(shè)計(jì),在整個(gè)項(xiàng)目系統(tǒng)設(shè)計(jì)編碼完成之后,用戶(hù)不需要在自己所在的客戶(hù)端安裝任何的客戶(hù)端應(yīng)用程序,只需要正常上網(wǎng)就可以完成對(duì)系統(tǒng)的訪問(wèn)和使用,除此之外,只要保證項(xiàng)目系統(tǒng)被正確的部署在服務(wù)器上,并且已經(jīng)正常運(yùn)行。那么,用戶(hù)就可在任何連接互聯(lián)網(wǎng)的瀏覽器上對(duì)系統(tǒng)進(jìn)行訪問(wèn)。

(3)法律可行性分析

此次畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,不僅可以提高餐廳對(duì)訂餐的管理效率,為顧客對(duì)訂餐需求上提供便利,提供更加貼心優(yōu)質(zhì)的服務(wù),良好的用戶(hù)使用體驗(yàn)。而且在整個(gè)的開(kāi)發(fā)過(guò)程中都符合具體的軟件開(kāi)發(fā)流程及規(guī)范的。在項(xiàng)目的的開(kāi)發(fā)過(guò)程中使用到的都是一些開(kāi)源的免費(fèi)的數(shù)據(jù)庫(kù)以及開(kāi)發(fā)人員主要使用的開(kāi)發(fā)工具,參考以及使用到的一些代碼,也都是在開(kāi)源社區(qū)和論壇分享的主要開(kāi)源代碼。因此,此次的網(wǎng)上訂餐管理系統(tǒng)是不存在任何問(wèn)題,在法律上是可行的,滿(mǎn)足法律可行性的所有要求。

為了實(shí)現(xiàn)這些要求,我對(duì)界面頁(yè)面的開(kāi)發(fā)做到最大化的簡(jiǎn)單易懂,將功能實(shí)現(xiàn)盡可能的減少不必要的步驟,做到讓顧客在最短的事件內(nèi)可以快速訂餐,突出餐廳餐品的特色。做到只要會(huì)使用電腦查看網(wǎng)頁(yè),就能成功點(diǎn)餐。因此,在操作可行性上也十分可靠。

3 系統(tǒng)概要設(shè)計(jì)

3.1 系統(tǒng)設(shè)計(jì)概述

系統(tǒng)的設(shè)計(jì)階段作為在項(xiàng)目開(kāi)的發(fā)整個(gè)過(guò)程中,最為復(fù)雜的一環(huán),其實(shí)也是在項(xiàng)目開(kāi)發(fā)的整個(gè)過(guò)程中極為重要的的一環(huán),必須經(jīng)過(guò),必不可缺少。在進(jìn)行系統(tǒng)項(xiàng)目的設(shè)計(jì)之前,說(shuō)明系統(tǒng)項(xiàng)目已經(jīng)完成了對(duì)其自身的分析與設(shè)計(jì)階段,這是一個(gè)具有發(fā)展性的過(guò)程,將從分析階段得出的有些抽象的用戶(hù)需求進(jìn)行具體的實(shí)現(xiàn),編碼。在對(duì)系統(tǒng)項(xiàng)目的設(shè)計(jì)過(guò)程中需要考慮眾多因素,例如在系統(tǒng)實(shí)現(xiàn)過(guò)程中所面對(duì)的內(nèi)在環(huán)境和外在因素,對(duì)項(xiàng)目進(jìn)行良好的業(yè)務(wù)和功能完善以及應(yīng)該具有的敬業(yè)態(tài)度。

作為主要的任務(wù)和目標(biāo),在系統(tǒng)設(shè)計(jì)階段就是為了滿(mǎn)足在系統(tǒng)分析階段提出的用戶(hù)要求.因此,要從用戶(hù)的要求出發(fā)在不僅可以滿(mǎn)足系統(tǒng)分析階段得出的對(duì)系統(tǒng)項(xiàng)目邏輯功能的同時(shí),還要充分考慮到多方因素,包括技術(shù),成本以及時(shí)間環(huán)境等相關(guān)方面。對(duì)于不論是在正在進(jìn)行中的整體的設(shè)計(jì)結(jié)構(gòu)還是局部的每一個(gè)部分,都有相關(guān)的技術(shù)和針對(duì)性的應(yīng)對(duì)方案。在合理的要求和基礎(chǔ)上,對(duì)項(xiàng)目系統(tǒng)所必要的需求進(jìn)行滿(mǎn)足,并且提出該系統(tǒng)具體到實(shí)處的實(shí)行方案,使其可以得到完整的實(shí)現(xiàn),完成最初的目標(biāo)以及要求。

系統(tǒng)設(shè)計(jì)的主要方向以及相關(guān)要點(diǎn):

  1. 在系統(tǒng)設(shè)計(jì)的階段,主要工作涉及到了絕大多數(shù)都是技術(shù)以及專(zhuān)業(yè)知識(shí)。
  2. 為了滿(mǎn)足用戶(hù)的需求,在系統(tǒng)項(xiàng)目的設(shè)計(jì)過(guò)程中,可以對(duì)之前已經(jīng)得出的系統(tǒng)項(xiàng)目分析結(jié)論作出一些修改,當(dāng)然,這是基于非原則性上的。
  3. 使整個(gè)項(xiàng)目系統(tǒng)最終可以獲得成功,不僅僅需要完善的分析,嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì),更需要系統(tǒng)項(xiàng)目的設(shè)計(jì)環(huán)境。這個(gè)環(huán)境不僅僅是技術(shù)環(huán)境與管理環(huán)境,更是兩者的有效結(jié)合。因此,這是急不可缺的重要一點(diǎn)。
有上述可知系統(tǒng)設(shè)計(jì)的要點(diǎn),那么為了更好地設(shè)計(jì)系統(tǒng)項(xiàng)目就需要了解系統(tǒng)設(shè)計(jì)的原則:

  1. 易用性原則。對(duì)項(xiàng)目做系統(tǒng)設(shè)計(jì)是為了,開(kāi)發(fā)出的系統(tǒng)項(xiàng)目,可以滿(mǎn)足用戶(hù)提出的需求,達(dá)到用戶(hù)的滿(mǎn)意。這種滿(mǎn)足需求表現(xiàn)在各個(gè)方面,例如:用戶(hù)的業(yè)務(wù)需求,用戶(hù)的邏輯需求,以及使用戶(hù)處理部分業(yè)務(wù)時(shí)候更加簡(jiǎn)便,提高用戶(hù)的用戶(hù)體驗(yàn)。
  2. 開(kāi)發(fā)階段原則。開(kāi)發(fā)項(xiàng)目系統(tǒng)軟件,在系統(tǒng)技術(shù)選擇階段主要是站在系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)的角度進(jìn)行設(shè)計(jì)與開(kāi)發(fā),而實(shí)現(xiàn)功能階段則有不同,這是需要站到用戶(hù)需求以及開(kāi)發(fā)人員實(shí)現(xiàn)的角度考慮的。
  3. 業(yè)務(wù)完整原則。設(shè)計(jì)實(shí)現(xiàn)的項(xiàng)目系統(tǒng)軟件,要保證在完成業(yè)務(wù)的同時(shí)保證數(shù)據(jù)的完整性,減少數(shù)據(jù)的無(wú)處,例如數(shù)據(jù)庫(kù)中常常出現(xiàn)的臟讀,誤讀等數(shù)據(jù)誤差。
  4. 規(guī)范化的業(yè)務(wù)原則。在最初的設(shè)計(jì)階段中,系統(tǒng)主要是完成用戶(hù)需求要求的業(yè)務(wù),但是在實(shí)際的操作總。對(duì)于系統(tǒng)項(xiàng)目的要求是更高的,它不僅要正確的完成用戶(hù)的業(yè)務(wù)要求,也要面對(duì)完善的業(yè)務(wù)流程,以及系統(tǒng)安全性。
3.2 系統(tǒng)功能分析

作為網(wǎng)上訂餐管理系統(tǒng)主要是為顧客提供便捷,全面的訂餐服務(wù),重點(diǎn)要放在面對(duì)顧客的頁(yè)面功能上,其次是管理員對(duì)餐品以及餐廳的管理,系統(tǒng)主要模塊的設(shè)計(jì):

1.前臺(tái)模塊:

  1. 食品展示模塊
  2. 食品查詢(xún)模塊
  3. 購(gòu)物車(chē)模塊
  4. 收銀臺(tái)模塊
  5. 用戶(hù)維護(hù)模塊
  6. 訂單查詢(xún)模塊
  7. 公告模塊
  8. 后臺(tái)模塊:
(1)食品管理模塊

(2)用戶(hù)管理模塊

(3)管理員維護(hù)模塊

(4)訂單管理模塊

(5)公告管理模塊

(6)留言管理模塊

如圖3-1系統(tǒng)功能層次圖所示。

主要包括這幾個(gè)方面,其中顧客訂餐功能模塊是主要重點(diǎn)模塊,其次是管理員管理功能模塊。當(dāng)訂餐系統(tǒng)管理員使用擁有管理權(quán)限的管理員用登錄管理員頁(yè)面的時(shí)候??梢钥吹侥壳坝啿拖到y(tǒng)中保存的用戶(hù)信息數(shù)據(jù),菜品的數(shù)據(jù),員工的數(shù)據(jù)以及狀態(tài),訂餐的具體信息,采購(gòu)原材料的具體情況,以及對(duì)顧客頁(yè)面的管理,例如:留言板,以及營(yíng)養(yǎng)小貼士等等。通過(guò)管理員對(duì)餐廳的管理,給予顧客最好的網(wǎng)上訂餐服務(wù)。

顧客訂餐功能的相對(duì)應(yīng)的模塊:主要是顧客進(jìn)入訂餐系統(tǒng)網(wǎng)站之后,可以看到整體的訂餐系統(tǒng)網(wǎng)站結(jié)構(gòu),進(jìn)行系統(tǒng)的客戶(hù)端登錄,注冊(cè),以及對(duì)現(xiàn)登陸用戶(hù)的信息修改,搜索菜品,點(diǎn)餐,訂餐,支付,留言的相關(guān)功能,通過(guò)眾多的訂餐系統(tǒng)功能。

管理員系統(tǒng)管理功能相關(guān)模塊:主要是餐廳管理員從后臺(tái)管理頁(yè)面登錄管理系統(tǒng)之后,對(duì)訂餐系統(tǒng)的一些具體業(yè)務(wù)的調(diào)整,可以注冊(cè)新管理員,以及對(duì)現(xiàn)有登錄管理員信息的修改,查看分析管理目前注冊(cè)的顧客的信息,查看修改調(diào)整現(xiàn)有菜品的具體情況,新增,刪除,完善菜品;對(duì)目前餐廳原材料的采購(gòu)和統(tǒng)計(jì);以及對(duì)餐廳員工的管理,新增刪除和調(diào)整狀態(tài);更重要的是可以對(duì)目前已知訂餐的及時(shí)管理,還有就是對(duì)顧客訂餐頁(yè)面的一些人性化管理,查看顧客留言,修改給顧客查看的營(yíng)養(yǎng)小貼士。

通過(guò)這個(gè)兩個(gè)主要的模塊,可以完成訂餐系統(tǒng)的綜合管理,包括了顧客的主要功能,注冊(cè),登錄,點(diǎn)餐等;以及管理員對(duì)餐廳多方面的管理,完成管理員對(duì)顧客的服務(wù)交互。

圖 3-1系統(tǒng)功能層次圖

3.3 系統(tǒng)用例圖

通過(guò)管理員用例圖,可以清晰的,直觀的看到管理員在網(wǎng)上訂餐管理系統(tǒng)中對(duì)用戶(hù)訂餐以及用戶(hù)本身的一些主要的操作:

  1. 管理員可以管理餐品信息。
(1.)管理員可以添加菜品信息。

(2.)管理員可以刪除菜品信息。

2、管理員可以管理訂單信息。

  1. 管理員可以管理訂餐系統(tǒng)中注冊(cè)的用戶(hù)信息。
(1.)管理員可以刪除用戶(hù)注冊(cè)信息

(2.)管理員可以修改用戶(hù)信息

  1. 管理員可以對(duì)留言進(jìn)行管理。
  2. 管理員可以對(duì)用戶(hù)進(jìn)行管理。
管理員用例圖圖,如圖3-2所示。

圖 3-2 管理員用例圖

通過(guò)用戶(hù)(顧客)用例圖,可以更加直觀的理解在網(wǎng)上訂餐管理系統(tǒng)中主要的客戶(hù)端服務(wù),用戶(hù)主要使用的功能以及進(jìn)行的操作,如下:

  1. 游客可以注冊(cè)會(huì)員信息
  2. 游客可以瀏覽菜品。
  3. 游客可以查看公告。
4、注冊(cè)會(huì)員的用戶(hù)可以通過(guò)注冊(cè)信息登錄

5、會(huì)員可以在訂餐頁(yè)面瀏覽菜品信息

6、會(huì)員可以修改會(huì)員信息

7、會(huì)員可以對(duì)正在進(jìn)行的訂餐進(jìn)行修改

8、會(huì)員可以對(duì)完成的訂餐進(jìn)行查詢(xún)

9、會(huì)員可以進(jìn)行留言

因此,為了可以更加準(zhǔn)確,生動(dòng)的理解上述所說(shuō)的用戶(hù)主要使用的訂餐服務(wù)功能。繪制用例圖就很方便的展示了用戶(hù)使用主要使用的功能,用戶(hù)(顧客)用例圖,如圖3-3所示。

圖 3-3 用戶(hù)(顧客)用例圖

對(duì)于主要功能的業(yè)務(wù)處理,例如網(wǎng)上訂餐管理系統(tǒng)整個(gè)業(yè)務(wù)邏輯處理中最為主要的一部分就是訂單處理部分,為了更加直觀的理解整個(gè)業(yè)務(wù)邏輯,最對(duì)訂單的具體的操作如下:

1、可以通過(guò)用戶(hù)操作對(duì)訂單信息,菜品信息進(jìn)行添加。

2、可以通過(guò)用戶(hù)操作對(duì)訂單信息,菜品信息進(jìn)行處理。

3、可以通過(guò)用戶(hù)操作對(duì)訂單信息,菜品信息進(jìn)行刪除。

3.4 系統(tǒng)流程圖

想對(duì)訂餐管理系統(tǒng)進(jìn)行操作,管理員需要登錄訂餐管理系統(tǒng)的后臺(tái)管理系統(tǒng),才能進(jìn)行一系列的對(duì)應(yīng)管理操作。如果登錄時(shí)候出現(xiàn)異常,登錄失敗等狀況,系統(tǒng)會(huì)要求管理員核對(duì)身份密碼后重新登錄。登錄成功之后,就可以通過(guò)訂餐管理系統(tǒng)的后臺(tái)模塊對(duì)整個(gè)訂餐管理系統(tǒng)進(jìn)行正確有效的管理。對(duì)訂單的處理,對(duì)菜品的修改,添加,刪除。對(duì)員工的添加,刪除,管理。對(duì)原材料的采購(gòu)登記。訂餐管理系統(tǒng)目前的概況,都可以從訂餐管理系統(tǒng)的管理員模塊進(jìn)行查看,分析,以及做出及時(shí)的相應(yīng)調(diào)整。

如圖,是訂餐管理系統(tǒng)的后臺(tái)管理員模塊操作的基本流程圖,通過(guò)路程圖,可以更為直觀的看到管理員進(jìn)行登錄操作時(shí)的系統(tǒng)業(yè)務(wù)流程,進(jìn)行登錄,成功進(jìn)行模塊的管理,失敗則重新登錄等操作,如圖3-4管理員流程圖所示。

圖 3-4 管理員流程圖

4 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)

4.1 數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)

一個(gè)項(xiàng)目系統(tǒng)軟件的設(shè)計(jì)開(kāi)發(fā),數(shù)據(jù)庫(kù)可以說(shuō)是必不可少的,沒(méi)有數(shù)據(jù)庫(kù),用戶(hù)的數(shù)據(jù)無(wú)法保存,系統(tǒng)的使用人員無(wú)法處理數(shù)據(jù),那么整個(gè)系統(tǒng)可以說(shuō)是沒(méi)有意義,以及沒(méi)有任何使用價(jià)值的。在系統(tǒng)項(xiàng)目中,數(shù)據(jù)庫(kù)就是用來(lái)給用戶(hù),管理員等各種使用系統(tǒng)的角色進(jìn)行數(shù)據(jù)存儲(chǔ)以及取出等交互動(dòng)作的。不僅如此,根據(jù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的不同,數(shù)據(jù)庫(kù)還會(huì)對(duì)應(yīng)有不同的存儲(chǔ)方式。

網(wǎng)上訂餐管理系統(tǒng),主要是使用流行的關(guān)系數(shù)據(jù)庫(kù)MySQL,MySQL是一個(gè)開(kāi)源的免費(fèi)的關(guān)系型數(shù)據(jù)庫(kù),在開(kāi)發(fā)者中極為流行,極為受歡迎。他的眾多優(yōu)點(diǎn),例如:開(kāi)源,免費(fèi)使用,對(duì)服務(wù)器占用更小,速度更快,是系統(tǒng)更加流暢。這些都使得,系統(tǒng)軟件開(kāi)發(fā)的陳本較低,用戶(hù)體驗(yàn)更佳。

此次,我們畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”中主要使用到了MySQL數(shù)據(jù)庫(kù),以下,就對(duì)主要的數(shù)據(jù)表結(jié)構(gòu)進(jìn)行描述與說(shuō)明。

4.1.1概念結(jié)構(gòu)設(shè)計(jì)

本數(shù)據(jù)庫(kù)為滿(mǎn)足網(wǎng)上訂餐系統(tǒng)的要求,保證使用者信息準(zhǔn)確充分的同時(shí),系統(tǒng)的安全性也同樣重要。所以,至少要擁有以下功能:

(1)建立數(shù)據(jù)表保存使用者注冊(cè)、登錄、驗(yàn)證等功能所需要的數(shù)據(jù);

(2)建立兩張表,分別保存食品分類(lèi)信息和食品的詳細(xì)信息所需要的數(shù)據(jù),對(duì)食品分類(lèi)信息分類(lèi)管理;

(3)使用者確認(rèn)下單后出現(xiàn)的訂單應(yīng)當(dāng)記錄,包括訂單號(hào)、地址等詳細(xì)信息;

(4)訂單自動(dòng)生成滯后,需要記錄訂單的狀態(tài);

(5)除系統(tǒng)管理員外,其他人不能進(jìn)行系統(tǒng)維護(hù),所以要建立一張表保存管理員的信息;

(6)使用者會(huì)對(duì)餐品提出意見(jiàn),那么應(yīng)該有留言表,留言表內(nèi)含標(biāo)題、日期和留言詳情。

根據(jù)以上信息,網(wǎng)上訂餐系統(tǒng)的E-R圖如圖4-1所示。

圖3-2 系統(tǒng)設(shè)計(jì)E-R圖

4.1.2 表概要說(shuō)明

網(wǎng)上訂餐管理系統(tǒng)主要包括了9張數(shù)據(jù)表,分別是餐品菜品信息數(shù)據(jù)表c_book,用戶(hù)顧客注冊(cè)數(shù)據(jù)表表member,管理員數(shù)據(jù)表admin,餐品菜品類(lèi)別數(shù)據(jù)表c_booktype,用戶(hù)評(píng)論數(shù)據(jù)表comment,訂餐車(chē)數(shù)據(jù)表gouwuche,營(yíng)養(yǎng)小貼士數(shù)據(jù)表news,訂單數(shù)據(jù)表num,訂單詳情信息數(shù)據(jù)表orderbook。其中最為重要的5張數(shù)據(jù)表,將會(huì)在詳細(xì)描述其表結(jié)構(gòu)。

4.1.3 數(shù)據(jù)表的結(jié)構(gòu)

(1)餐品菜品信息表c_book

餐品菜品信息數(shù)據(jù)表主要是用來(lái)保存菜品的基本信息,價(jià)格,菜名,描述等,該表的結(jié)構(gòu)如表4-1所示。

表4-1 c_book的結(jié)構(gòu)

字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否描述
idint4ID
namevarchar50菜名
authorvarchar50廚師
pricevarchar50價(jià)錢(qián)
numbervarchar50編號(hào)
typevarchar50類(lèi)別
Sumvarchar50數(shù)量
Remarkvarchar50描述
tatevarchar50原材料
imgpathvarchar150菜品圖片
  1. 管理員信息數(shù)據(jù)表admin
    管理員信息數(shù)據(jù)表,主要是適用于保存管理員的基本信息。表結(jié)構(gòu)如表4-2所示。
    表4-2admin的結(jié)構(gòu)
字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否描述
idint4ID
namevarchar50用戶(hù)名
quanxianvarchar10權(quán)限
pwdvarchar50密碼
  1. 菜品類(lèi)型數(shù)據(jù)表 c_booktype
菜品類(lèi)型數(shù)據(jù)表,主要保存了當(dāng)前訂餐系統(tǒng)的菜品類(lèi)型,類(lèi)型可以根據(jù)餐廳的需求,管理員對(duì)其進(jìn)行增加,刪除,以及修改等操作管理,如表4-3所示。

表4-3c_booktype的結(jié)構(gòu)

字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否描述
Idint4id
namevarchar50菜品類(lèi)型名
(4)用戶(hù)(顧客)注冊(cè)信息數(shù)據(jù)表member

用戶(hù)注冊(cè)信息數(shù)據(jù)表主要保存了,使用訂餐管理系統(tǒng)的用戶(hù)注冊(cè)的信息,這張數(shù)據(jù)表極為重要,表結(jié)構(gòu)如表4-4所示。

表4-4member的結(jié)構(gòu)

字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否描述
Idint4id
namevarchar50用戶(hù)名
pwdvarchar50密碼
sexvarchar50性別
realnamevarchar50真實(shí)姓名
agevarchar50年齡
cardvarchar50身份證號(hào)
addressvarchar150地址
phonevarchar50電話(huà)(手機(jī))
emailvarchar50電子郵件
codevarchar50郵政編碼
typevarchar50會(huì)員
(5)訂單詳情信息數(shù)據(jù)表orderbook

訂餐詳細(xì)信息數(shù)據(jù)表,主要記錄了顧客訂餐之后,完成的訂餐,訂餐中主要記錄了此時(shí)用戶(hù)完成的訂單的詳細(xì)信息。數(shù)據(jù)表的結(jié)構(gòu)如表4-5所示。

表4-5 orderbook的結(jié)構(gòu)

字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否描述
idint4id
useridvarchar50用戶(hù)id編號(hào)
bookidvarchar50菜品id標(biāo)號(hào)
booksumvarchar50菜品數(shù)量
timesvarchar50訂餐時(shí)間
5 系統(tǒng)的實(shí)現(xiàn)

5.1 前臺(tái)模塊首頁(yè)

作為網(wǎng)上訂餐管理系統(tǒng),展現(xiàn)給用戶(hù)的客戶(hù)端前臺(tái)頁(yè)面是整個(gè)項(xiàng)目中最為重要的一環(huán),而首頁(yè)也是使用戶(hù)的留下主要印象,重要的得分點(diǎn)之一。一個(gè)好的首頁(yè)能為系統(tǒng)做良好的推廣效應(yīng),展現(xiàn)系統(tǒng)的主要功能,使得用戶(hù)可以通過(guò)簡(jiǎn)單快捷的熟悉上手,掌握使用方法,實(shí)現(xiàn)自己當(dāng)前的需求。前臺(tái)客戶(hù)端頁(yè)面首頁(yè),運(yùn)行效果如圖5-1。

圖5-1 前臺(tái)客戶(hù)端頁(yè)面首頁(yè)設(shè)計(jì)效果圖

如圖5-1,我們可以看到,用戶(hù)使用的首頁(yè)展示了系統(tǒng)客戶(hù)端的主要功能,包括,用戶(hù)的登錄,一些管理員希望用戶(hù)看到的信息,以及目前餐廳主要的菜品,還有就是重要的模塊功能導(dǎo)航欄,通過(guò)導(dǎo)航欄的點(diǎn)擊,用戶(hù)可以進(jìn)入相應(yīng)的功能模塊,實(shí)現(xiàn)自己目前的需求,包括:詳細(xì)的點(diǎn)餐,會(huì)員中心,訂餐車(chē),留言,找回密碼等主要用戶(hù)使用功能。

首頁(yè)的部分JSP頁(yè)面代碼:

<table border="0" width="99%" cellspacing="0" cellpadding="0"

height="100%">

<tr>

<td>

<% ArrayList alNewly = (ArrayList) request.getAttribute("books");

ArrayList alType = (ArrayList) request.getAttribute("type");

int tem = 0;

int x = 0;

if (alNewly.size() % 3 == 0) {

tem = alNewly.size() / 3;

} else {

tem = alNewly.size() / 3 + 1;

}

for (int n = 1; n <= tem; n++) { %>

<table cellspacing="0" cellpadding="3" width="710" border="0">

<tr>

<% for (int i = n * 3 - 3; i < alNewly.size(); i++) {

ArrayList alNewlyRow = (ArrayList) alNewly.get(i); %>

<td align="middle" width="710">

<table border="0" cellspacing="0" cellpadding="0">

<tr>

<td colspan="2" align="center" bgcolor="#FFE3BB">

<font color="#ff9900"><%

for (int j = 0; j < alType.size(); j++) {

ArrayList alTypeRow = (ArrayList) alType.get(j);

if (alTypeRow.get(0).equals(alNewlyRow.get(8))) { %>

<a href="servlet/SearchServlet?types=<%=aTypeRow.get(0)%>">

<%=alTypeRow.get(1)%>

</a><% break;}}

%></font>

5.2用戶(hù)注冊(cè)登錄管理

用戶(hù)在使用訂餐管理系統(tǒng)客戶(hù)端頁(yè)面進(jìn)行訂餐。首先需要登錄系統(tǒng),登錄之后才能享受訂餐系統(tǒng)帶來(lái)的便捷快速的訂餐服務(wù),如果當(dāng)前還沒(méi)有可以登錄的賬號(hào),首頁(yè)提供有注冊(cè)用戶(hù)的入口。針對(duì)已經(jīng)登錄的用戶(hù),若果想對(duì)自己當(dāng)前所使用的用戶(hù)信息進(jìn)行一些調(diào)整,系統(tǒng)也提供了會(huì)員中心管理頁(yè)面,來(lái)滿(mǎn)足此類(lèi)用戶(hù)的需求。如圖5-2為用戶(hù)登錄功能的頁(yè)面:

圖5-2用戶(hù)登錄頁(yè)面效果圖

用戶(hù)進(jìn)行登錄之后就可以進(jìn)行點(diǎn)餐,搜索等相應(yīng)功能的操作了,圖5-3為用戶(hù)注冊(cè)頁(yè)面效果圖。

圖5-3用戶(hù)注冊(cè)頁(yè)面效果圖

用戶(hù)登錄的程序流程圖如圖5-3所示。

圖5-3用戶(hù)登錄程序流程圖

在用戶(hù)進(jìn)行注冊(cè)成為系統(tǒng)的正式用戶(hù)之后,就可以進(jìn)行功能的使用了,但是如果出現(xiàn)對(duì)當(dāng)前用戶(hù)信息的變更操作,就可以在用戶(hù)的會(huì)員中心,對(duì)當(dāng)前登錄的用戶(hù)信息進(jìn)行修改,如圖5-4為用戶(hù)會(huì)員中心頁(yè)面效果圖:

圖5-4用戶(hù)會(huì)員中心頁(yè)面效果圖

5.3用戶(hù)訂餐管理功能

訂餐管理系統(tǒng),作為用戶(hù)使用的客戶(hù)端的主要功能就是給用戶(hù)帶來(lái)便利的網(wǎng)上點(diǎn)餐服務(wù),此次設(shè)計(jì)實(shí)現(xiàn)的基于JSP的網(wǎng)上訂餐管理系統(tǒng),點(diǎn)餐服務(wù)主要通過(guò)兩個(gè)頁(yè)面來(lái)展示菜品使用戶(hù)進(jìn)行點(diǎn)餐操作,一是首頁(yè)點(diǎn)餐,首頁(yè)會(huì)展示目前主要的菜品,以及銷(xiāo)售排行和新上菜品,根據(jù)這些推薦信息,可以給用戶(hù)帶來(lái)更加貼心的用戶(hù)體驗(yàn);二是搜索點(diǎn)餐,可以通過(guò)首頁(yè)上方的工具欄,點(diǎn)擊進(jìn)入搜索點(diǎn)餐頁(yè)面,通過(guò)菜品的名稱(chēng)或者菜品所屬的類(lèi)別進(jìn)行針對(duì)性的搜索,然后進(jìn)行點(diǎn)餐,如圖5-5為首頁(yè)點(diǎn)餐頁(yè)面效果圖。

圖5-5 首頁(yè)點(diǎn)餐效果圖

如圖5-6為搜索點(diǎn)餐頁(yè)面效果圖。

圖5-6索點(diǎn)餐頁(yè)面效果圖

搜索點(diǎn)餐頁(yè)面,通過(guò)針對(duì)性的搜索可以使用戶(hù)快速的找到自己需要的菜品,進(jìn)而完成自己的點(diǎn)餐過(guò)程。

進(jìn)行菜品搜索的servlet部分主要代碼是:

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Validate vd = new Validate();

String name = vd.getUnicode(request.getParameter("name"));

String types = vd.getUnicode(request.getParameter("types"));

String sql = "select * from s ";

String[] args = {"id","name","author","publishing","number","price",

"storage","brief","type","tate","sums","imgpath","price1","sums1"};

if(name != null && !name.equals("")){

sql += "where name like '%"+name+"%'";

//構(gòu)建對(duì)菜品名稱(chēng)查詢(xún)的SQL語(yǔ)句

}

if(types != null && !types.equals("")){

sql += "where type='"+types+"'";

//構(gòu)建對(duì)菜品類(lèi)別查詢(xún)的SQL語(yǔ)句

}

SelectBean sb = new SelectBean();

ArrayList al = sb.select(sql, args);

request.setAttribute("search", al);

RequestDispatcher rd=request.getRequestDispatcher("/qiantai/search.jsp");

//跳轉(zhuǎn)到前臺(tái)菜品搜索頁(yè)面

rd.forward(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

當(dāng)用戶(hù)找到自己心儀的菜品之后,進(jìn)行點(diǎn)餐操作,所選菜品點(diǎn)餐成功之后,將跳轉(zhuǎn)到訂餐車(chē)頁(yè)面,訂餐車(chē)頁(yè)面將展示目前為止,用戶(hù)所選的菜品,如圖5-7為訂餐車(chē)頁(yè)面效果圖。

圖5-7購(gòu)物車(chē)頁(yè)面效果圖

在購(gòu)物車(chē)頁(yè)面中,用戶(hù)可以清晰的看到目前所點(diǎn)的菜品信息,也可以根據(jù)目前自己的需求對(duì)已經(jīng)點(diǎn)的菜品進(jìn)行操作,例如修改數(shù)量,或者刪除目前選中的菜品,甚至清空,如果認(rèn)為還有所需要的菜品,可以點(diǎn)擊繼續(xù)點(diǎn)餐,進(jìn)入點(diǎn)餐頁(yè)面,繼續(xù)點(diǎn)餐操作。當(dāng)用戶(hù)認(rèn)為菜品足夠,可以點(diǎn)擊收銀臺(tái),進(jìn)行訂單的提交。

購(gòu)物車(chē)流程圖如圖5-7所示:

圖5-8購(gòu)物車(chē)程序流程圖

進(jìn)行提交之后,將進(jìn)入收銀臺(tái)頁(yè)面,點(diǎn)擊在線支付,將提供支付寶鏈接,這樣就可以支持網(wǎng)上在線支付,使得用戶(hù)可以付款進(jìn)而完成當(dāng)前的訂單。如圖5-9為收銀臺(tái)頁(yè)面效果圖。

圖5-9收銀臺(tái)頁(yè)面效果圖

5.4用戶(hù)其他功能操作頁(yè)面

網(wǎng)上訂餐管理系統(tǒng),不僅能讓用戶(hù)進(jìn)行注冊(cè),登錄,修改信息的操作,更重要的是讓用戶(hù)得到良好的訂餐功能體驗(yàn)。因此,用戶(hù)除了可以操作上述的訂餐頁(yè)面之外,也可由有其他更加人性化的功能,例如在此次畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)”中出現(xiàn)的營(yíng)養(yǎng)小貼士,以及在線留言功能。

營(yíng)養(yǎng)小貼士可以用過(guò)管理員在后臺(tái)進(jìn)行編寫(xiě),讓點(diǎn)餐的用戶(hù)看到,提供更加貼心的服務(wù),而在線留言功能可以讓用戶(hù)對(duì)當(dāng)前訂餐管理系統(tǒng)中存在的問(wèn)題,以及改進(jìn)意見(jiàn)進(jìn)行表達(dá),達(dá)到更好的交互體驗(yàn)。如圖5-10為用戶(hù)在線留言頁(yè)面效果圖。

圖5-10 在線留言頁(yè)面效果圖

5.5后臺(tái)管理員登錄,注冊(cè)功能

作為一個(gè)訂餐管理系統(tǒng),僅僅有用戶(hù)功能的頁(yè)面是遠(yuǎn)遠(yuǎn)不夠的,要提供更加全面的服務(wù),為餐廳管理員提供功能管理頁(yè)面就顯得十分重要。通過(guò)系統(tǒng)的后臺(tái)管理管理頁(yè)面,對(duì)餐廳做出實(shí)時(shí)的管理,了解用戶(hù)點(diǎn)餐情況以及目前員工的管理,這樣才能更好運(yùn)作系統(tǒng),使得用戶(hù)擁有更好的用戶(hù)訂餐體驗(yàn)。

如圖5-11為后臺(tái)管理員登錄頁(yè)面效果圖,5-11為注冊(cè)管理員,以及修改管理員頁(yè)面效果圖。

圖5-11后臺(tái)管理員登錄頁(yè)面效果圖

通過(guò)登錄,管理員可以進(jìn)入后臺(tái)管理頁(yè)面對(duì)訂餐系統(tǒng)進(jìn)行管理,可以對(duì)當(dāng)前登錄管理員進(jìn)行修改以及添加新管理員。

圖5-12 管理員注冊(cè)及修改頁(yè)面效果圖

5.6后臺(tái)管理員菜品管理

管理員通過(guò)添加新菜品,以及修改原有菜品,對(duì)訂餐系統(tǒng)中的菜品進(jìn)行調(diào)整,通過(guò)添加菜品的類(lèi)別可以對(duì)菜品進(jìn)行更加完善的管理。添加菜品時(shí)候,通過(guò)添加菜名,原材料,價(jià)格,圖片,以及添加目前擁有的菜品類(lèi)別等信息,來(lái)給用戶(hù)展示一道菜的方方面面,這樣使用戶(hù)通過(guò)網(wǎng)絡(luò)放心的進(jìn)行訂餐。如圖5-13為添加菜品頁(yè)面效果圖。

圖5-13 添加菜品頁(yè)面效果圖

5.7后臺(tái)員工及會(huì)員管理

管理員登錄后臺(tái)管理系統(tǒng)之后,不僅能對(duì)現(xiàn)有系統(tǒng)注冊(cè)的會(huì)員進(jìn)行管理,還可以對(duì)當(dāng)前餐廳的員工進(jìn)行管理,可以添加,刪除,修改員工信息,根據(jù)目前員工的工作狀態(tài)也可以在系統(tǒng)中進(jìn)行標(biāo)注。添加了員工搜索功能,這樣方便了網(wǎng)上訂餐管理系統(tǒng),后臺(tái)管理模塊對(duì)員工的綜合管理,如圖5-14為員工管理頁(yè)面效果圖。

圖5-14 員工管理頁(yè)面效果圖

5.8后臺(tái)材料采購(gòu)管理

作為一個(gè)訂餐管理系統(tǒng),要將每一天做菜使用的原材料進(jìn)行統(tǒng)計(jì)管理,這樣才是一個(gè)完善的訂餐管理系統(tǒng)。對(duì)于原材料采購(gòu)的記錄管理,這樣更能方便餐廳管理員,對(duì)整個(gè)餐廳進(jìn)行全面的管理,做到對(duì)每一天的食材的把控,部分食材采購(gòu)量的調(diào)整,對(duì)餐廳運(yùn)營(yíng)的成本的管理把控。如圖5-15為原材料采購(gòu)管理頁(yè)面效果圖。

圖5-15 原材料采購(gòu)管理頁(yè)面效果圖

通過(guò)對(duì)原材料的統(tǒng)計(jì)把控,以及對(duì)一段時(shí)間的采購(gòu)單種類(lèi)及數(shù)量的分析,可以知道什么時(shí)候需要采購(gòu)什么材料,采購(gòu)的數(shù)量的參考量,采購(gòu)的具體方向。對(duì)近期,原材料價(jià)格走向進(jìn)行統(tǒng)計(jì)分析,得出對(duì)餐廳最為合適的采購(gòu)方案,避免不必要的采購(gòu),或采購(gòu)的數(shù)量不準(zhǔn)確,導(dǎo)致的餐廳管理成本的提高,這都是需要注意以及及時(shí)避免的。

5.9銷(xiāo)售訂餐及統(tǒng)計(jì)管理

作為網(wǎng)上訂餐管理系統(tǒng),對(duì)于當(dāng)前訂餐訂單的管理是不可或缺的,因?yàn)橹挥袑?duì)近期訂單進(jìn)行分析才能知道,用戶(hù)喜歡的菜品,進(jìn)而進(jìn)行針對(duì)化的應(yīng)對(duì),挺高服務(wù)質(zhì)量,對(duì)銷(xiāo)量高的菜品背后的工作者--廚師,進(jìn)行獎(jiǎng)勵(lì)管理,提高工作效率,菜品的質(zhì)量保證。對(duì)近期采購(gòu)單的統(tǒng)計(jì),有效的看出采購(gòu)方向,和采購(gòu)數(shù)量,為今后采購(gòu)提供了有力的數(shù)據(jù)參考保障,避免采購(gòu)人員出現(xiàn)不必要的事物,餐廳承擔(dān)不必要的損失。如圖5-16為銷(xiāo)售訂單管理頁(yè)面效果圖。

圖5-16銷(xiāo)售訂餐管理頁(yè)面效果圖

如圖可以看到,管理頁(yè)面提供了多樣的搜索條件用來(lái)搜索符合條件的訂餐,例如:用戶(hù)id,菜品名稱(chēng),訂購(gòu)數(shù)量,這些搜索條件可以快速定位符合條件的訂單,然后反饋給管理員來(lái)進(jìn)行訂單的管理。

除此之外,還有統(tǒng)計(jì)管理功能,如圖5-17為統(tǒng)計(jì)管理功能頁(yè)面效果圖:

圖5-17 統(tǒng)計(jì)管理頁(yè)面效果圖

如圖,統(tǒng)計(jì)管理頁(yè)面可以清晰,完整的看到當(dāng)日的訂餐銷(xiāo)售量,銷(xiāo)售信息,以及當(dāng)日對(duì)原材料的采購(gòu)量信息,這方便了管理員對(duì)餐廳的管理,也為用戶(hù)提供快速,優(yōu)質(zhì)的使用體驗(yàn)實(shí)現(xiàn)了堅(jiān)實(shí)的保障。

使管理員對(duì)當(dāng)前餐廳的實(shí)時(shí)狀況有了深刻的認(rèn)識(shí),哪些菜品銷(xiāo)量高,需要提前準(zhǔn)備,原材料需要大量采購(gòu);哪些菜品銷(xiāo)量過(guò)低,需要減少原材料的采購(gòu),甚至下架。近期的用戶(hù)更喜歡,哪些類(lèi)別的菜品,是否與天氣季節(jié)相關(guān),需要對(duì)員工廚師進(jìn)行具體化的調(diào)整,提供了有力的數(shù)據(jù)佐證,與數(shù)據(jù)分析的資料。這都對(duì)今后餐廳的發(fā)展十分重要,也是網(wǎng)上訂餐管理系統(tǒng)可以被餐廳使用的重要原因之一。

6 系統(tǒng)測(cè)試

在大學(xué)四年的專(zhuān)業(yè)知識(shí)學(xué)習(xí)中,可以得知。作為完整的規(guī)范的軟件開(kāi)發(fā)流程,在完成系統(tǒng)設(shè)計(jì),編碼開(kāi)發(fā)之后,進(jìn)行軟件測(cè)試是非常重要的一環(huán)。是對(duì)完成開(kāi)發(fā),即將投入使用的系統(tǒng)的一次性能以及質(zhì)量的綜合鑒定。在項(xiàng)目正式上線使用之前,進(jìn)行的必要工作。也是對(duì)項(xiàng)目最初的需求分析,系統(tǒng)的總體設(shè)計(jì),編碼開(kāi)發(fā)的檢驗(yàn),多方面工作的綜合最終審核。

6.1 測(cè)試方法

在項(xiàng)目進(jìn)行完整的整合與交互中,對(duì)項(xiàng)目系統(tǒng)進(jìn)行全面的測(cè)試,對(duì)項(xiàng)目的整體進(jìn)行問(wèn)題的查找,在這個(gè)過(guò)程中耗時(shí)相對(duì)而言較多。但是也正是因?yàn)橄到y(tǒng)測(cè)試的存在,使得系統(tǒng)有了綜合質(zhì)量的保證。

為了確保網(wǎng)上訂餐系統(tǒng)的穩(wěn)定運(yùn)行,本節(jié)對(duì)主要功能模塊進(jìn)行測(cè)試。

6.2 測(cè)試流程

寫(xiě)好測(cè)試的數(shù)據(jù)以及案例,并對(duì)測(cè)試數(shù)據(jù)進(jìn)行設(shè)計(jì)邏輯的處理,得出期望結(jié)果。

6.2.1前臺(tái)首頁(yè)測(cè)試

(1)查詢(xún)模塊的測(cè)試

首先點(diǎn)擊主頁(yè)正中間的查詢(xún)欄,在查詢(xún)欄里中輸入要查找的菜品關(guān)鍵字,如果彈出所查找菜品的信息,則說(shuō)明該模塊可行。對(duì)該模塊進(jìn)行大量數(shù)據(jù)的測(cè)試,驗(yàn)證其成功無(wú)錯(cuò)誤。

(2)菜品分類(lèi)瀏覽模塊的測(cè)試

單擊頁(yè)面左邊的菜品分類(lèi)信息,選定某一種類(lèi)后,系統(tǒng)會(huì)彈出屬于該類(lèi)別的所有菜品信息。對(duì)給模塊進(jìn)行大量數(shù)據(jù)的測(cè)試,驗(yàn)證其成功無(wú)錯(cuò)誤,

該模塊能夠完整地實(shí)現(xiàn)功能。

6.2.2購(gòu)物車(chē)模塊測(cè)試

在本模塊中首先對(duì)修改數(shù)量單元進(jìn)行了測(cè)試,如果填寫(xiě)的數(shù)量為可行的有效數(shù)字如1、2、3,則系統(tǒng)提示修改成功,如果輸入的制服非法,系統(tǒng)默認(rèn)修改數(shù)量為1。通過(guò)隨機(jī)數(shù)據(jù)的測(cè)試,驗(yàn)證其成功無(wú)錯(cuò)誤。假如使用者訂購(gòu)了同一個(gè)商品,系統(tǒng)就會(huì)對(duì)該商品的購(gòu)買(mǎi)數(shù)量進(jìn)行累加。

然后對(duì)購(gòu)物車(chē)是否能滿(mǎn)足使用者的購(gòu)買(mǎi)數(shù)量進(jìn)行測(cè)試,向購(gòu)物車(chē)中添加大量的食品,查看購(gòu)物車(chē)是否會(huì)發(fā)生崩潰現(xiàn)象。經(jīng)過(guò)測(cè)試,購(gòu)物車(chē)完全滿(mǎn)足設(shè)計(jì)要求,達(dá)到了預(yù)期目標(biāo)。

6.2.3菜品管理模塊測(cè)試

(1)添加功能的測(cè)試

在菜品添加的功能下,對(duì)于已經(jīng)選定的菜品名、菜品信息、菜品的圖片、價(jià)格、特價(jià)、菜品種類(lèi)進(jìn)行添加。通過(guò)下拉的選擇列表選擇菜品的類(lèi)別,對(duì)于菜品圖片的添加,需要選擇本地的菜品圖片,然后上傳,當(dāng)所有必須的食品信息都已經(jīng)填寫(xiě)完畢的時(shí)候,即可上傳添加。完成添加以后,隨機(jī)使用幾組不完整的數(shù)據(jù)對(duì)本功能進(jìn)行測(cè)試,均顯示失敗。

(2)刪除功能的測(cè)試

以上述添加的這一條記錄為例,點(diǎn)擊刪除按鈕,會(huì)跳出是否刪除的提示信息,點(diǎn)擊確定按鈕之后,系統(tǒng)返回刪除成功的信息。對(duì)于菜品分類(lèi)信息的刪除,則需要在本分類(lèi)之下已經(jīng)沒(méi)有菜品信息,否則將不能刪除。

6.2.4會(huì)員注冊(cè)模塊測(cè)試

在會(huì)員注冊(cè)模塊中涉及到了三項(xiàng)數(shù)據(jù),項(xiàng)目分別為密碼和確認(rèn)密碼、使用者真實(shí)姓名、住址、性別、E_mail、QQ。測(cè)試這個(gè)模塊準(zhǔn)備的數(shù)據(jù)有:

(1)979332、979332、王藝博、杭州市萬(wàn)柏林區(qū)、男、123456@qq.com、123456

(2)岑志云、12345、1234岑志云、杭州市萬(wàn)柏林區(qū)、男、bzhi@123.com、6434634

點(diǎn)擊注冊(cè)按鈕,輸入第一組數(shù)據(jù),單擊注冊(cè)按鈕網(wǎng)站會(huì)提示表單信息不能為空,因?yàn)楸韱涡畔⒁刻顚?xiě),而昵稱(chēng)沒(méi)有填寫(xiě)。接著測(cè)試第二組數(shù)據(jù),兩次所輸入的密碼并不一樣,系統(tǒng)會(huì)彈出提示。

6.3 系統(tǒng)測(cè)試結(jié)果

當(dāng)本次畢業(yè)設(shè)計(jì)完成完整的項(xiàng)目開(kāi)發(fā)之后,對(duì)本次的“基于JSP的網(wǎng)上訂餐管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)”,進(jìn)行了相應(yīng)的測(cè)試,主要的情況如下:

在項(xiàng)目開(kāi)發(fā)的過(guò)程中,每一個(gè)進(jìn)程的每一步都需要被全面的考慮到,從而確保系統(tǒng)在個(gè)個(gè)時(shí)期具備可控性和穩(wěn)定性。本章注重對(duì)前臺(tái)首頁(yè)、購(gòu)物車(chē)模塊、使用者注冊(cè)模塊和商品管理模塊進(jìn)行了詳細(xì)的測(cè)試說(shuō)明。對(duì)這些模塊進(jìn)行大量數(shù)據(jù)的測(cè)試,驗(yàn)證其成功無(wú)錯(cuò)誤。

總 結(jié)

此次畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,整個(gè)的設(shè)計(jì)與開(kāi)發(fā)的過(guò)程中,遇到了很多的疑問(wèn)與困難,但是通過(guò)基地的指導(dǎo)來(lái)時(shí)的指導(dǎo)以及幫助,與對(duì)實(shí)習(xí)公司的前輩的詢(xún)問(wèn),網(wǎng)上的相關(guān)資料的查閱,逐步解決了在設(shè)計(jì)開(kāi)發(fā)過(guò)程中出現(xiàn)的問(wèn)題,雖然有一些波折,最終完成本次的畢業(yè)設(shè)計(jì)。網(wǎng)上訂餐管理系統(tǒng)的主要功能都可以正常的運(yùn)行,符合最初的用戶(hù)需求分析,以及功能設(shè)計(jì)。通過(guò)這一次的畢業(yè)設(shè)計(jì),使我從電腦開(kāi)發(fā)環(huán)境的搭建,開(kāi)發(fā)軟件的選取,項(xiàng)目需求的分析,系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn),系統(tǒng)的測(cè)試等整個(gè)流程有了新的認(rèn)識(shí),和完整的實(shí)踐。從這一次的畢業(yè)設(shè)計(jì),系統(tǒng)開(kāi)發(fā)的過(guò)程中,學(xué)到了很多知識(shí),不僅僅是從理論方面的,更是從具體的動(dòng)手實(shí)踐都有了巨大的提升。例如,對(duì)項(xiàng)目使用的數(shù)據(jù)表結(jié)構(gòu)的設(shè)計(jì),對(duì)項(xiàng)目功能的具體分析設(shè)計(jì),這都十分考驗(yàn)開(kāi)發(fā)人員的邏輯處理能力和開(kāi)發(fā)經(jīng)驗(yàn)。

雖然在完成畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”的項(xiàng)目過(guò)程中,是一個(gè)人獨(dú)立完成的,但是在這個(gè)過(guò)程中還是非常明白了團(tuán)隊(duì)的重要性,因?yàn)樵谡麄€(gè)的過(guò)程中,并不是一個(gè)人能單獨(dú)完成好的。所以要向公司的前輩,基地的指導(dǎo)老師進(jìn)行請(qǐng)教,在通過(guò)問(wèn)詢(xún)的過(guò)程中解決問(wèn)題,通過(guò)交流解決了一個(gè)又一個(gè)難題。

通過(guò)這一次的開(kāi)發(fā),我充分明白了在未來(lái)的工作中,通過(guò)良好的溝通交流,這在項(xiàng)目的開(kāi)發(fā)過(guò)程中是多么的重要,只有通過(guò)團(tuán)隊(duì)的討論與交流才能對(duì)項(xiàng)目開(kāi)發(fā)過(guò)程遇到的問(wèn)題,得出最優(yōu)秀的解決方案。保證在整個(gè)項(xiàng)目中當(dāng)前的決策時(shí)最為合理,為項(xiàng)目系統(tǒng)的成功奠定良好的基礎(chǔ)。

在完成此次的畢業(yè)之后,進(jìn)行畢業(yè)論文的編寫(xiě)過(guò)程中,我越來(lái)越發(fā)現(xiàn),理論對(duì)于實(shí)踐的重要性,只有系統(tǒng)的學(xué)習(xí)整套的理論知識(shí),才能更好的進(jìn)行軟件開(kāi)發(fā)的實(shí)踐。也讓我明白理論與實(shí)踐的結(jié)合,才是正確的學(xué)習(xí)方式。同時(shí),提升了自己查閱資料,解決問(wèn)題,交流的能力,在整個(gè)過(guò)程中收益匪淺。

通過(guò)這一次的獨(dú)立網(wǎng)上訂餐管理的設(shè)計(jì)與實(shí)現(xiàn),在整個(gè)的系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)過(guò)程中,我也發(fā)現(xiàn)了自身存在的問(wèn)題,與提升的方法以及方向。通過(guò)更多的開(kāi)發(fā)實(shí)踐以及閱讀理論書(shū)籍,我相信我還可以有更大的提升。在這個(gè)過(guò)程中也受到了老師,前輩,朋友的幫助,這都使我前進(jìn)與進(jìn)步。這一次的畢業(yè)設(shè)計(jì),對(duì)于我未來(lái)的工作學(xué)習(xí),有著十分巨大的意義以及作用,是非常大的幫助。

參考文獻(xiàn)

[1] 康牧,JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)實(shí)用教程,清華大學(xué)出版社,2009.

[2] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010.

[3] 楊學(xué)瑜,高立軍,軟件開(kāi)發(fā)過(guò)程與項(xiàng)目管理,電子工業(yè)出版社,2008.

[4].唐友國(guó) 湛洪波著.JSP網(wǎng)站開(kāi)發(fā)詳解.電子工業(yè)出版社2008年10月.

[5]衛(wèi)紅春等著.信息系統(tǒng)分析與設(shè)計(jì)[M].杭州.清華大學(xué)出版社.2009.

[6] 張文靜 林琪著.JSP程序設(shè)計(jì).人民郵電出版社.2005.

[7] 張孝祥、徐明華, JAVA基礎(chǔ)與案例開(kāi)發(fā)詳解, 清華大學(xué)出版社, 2009.

[8] 張潔才,Java web應(yīng)用開(kāi)發(fā)教程,科學(xué)出版社,2005.

[9] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010.

[10]James D. McCaffrey等著.NET軟件測(cè)試自動(dòng)化之道[M]. 杭州.電子工業(yè)出版社.2007.

[11] 黎連業(yè)、王華、李淑春,軟件測(cè)試與測(cè)試技術(shù),清華大學(xué)出版社,2009.

[12].張大方 李瑋等著.軟件測(cè)試技術(shù)與管理[M].湖南.湖南大學(xué)出版社,2007.

[13](美)Elliotte Rusty Harold著.Java Network Programming.東南大學(xué)出版社 .2005.

[14](美)H.M.Deitel,P.Jdeitel著.Java程序設(shè)計(jì)教程(第五版). 清華大學(xué)出版社.2004.

[15](美)David flanagan著.Java技術(shù)手冊(cè)(第五版).東南大學(xué)出版社.2006.

[16](美)John J.Patrick著.SQL基礎(chǔ)(第二版).清華大學(xué)出版社.2004.

致謝

在本次的畢業(yè)設(shè)計(jì)“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”的設(shè)計(jì)與開(kāi)發(fā)的過(guò)程中,遇到了很多的問(wèn)題與困惑,在基地的指導(dǎo)老師與學(xué)院的指導(dǎo)老師的解惑中,在實(shí)習(xí)公司的前輩的幫助下順利完成。

感謝學(xué)院指導(dǎo)老師,基地指導(dǎo)老師在完成畢業(yè)設(shè)計(jì)的過(guò)程中給予的幫助。

感謝實(shí)習(xí)公司的前輩對(duì)我關(guān)心和幫助。

附錄:英文翻譯

  1. 英文原文
Hotel Reservation System Based on the JavaServer Faces Technology

This paper describes implementation of web -based hotel reservation system whichenables users tobook hotel rooms by means of a web browser. The systemis based on JavaServer Faces technology in thepresentation layer, Spring Framework in the service layerand iBatis library for the data access layer.

  1. INTRODUCTION
    The Hotel Reservation System is a specific type of softwarethat supports, often by means of a web browser, wholeinfrastructure of the hotel for which the system has beendeployed. Its key features are listed below:To search and to book hotel rooms.Tonotify of every event related to a user by sending the email on a given address during the registration process.
    To support definition process of each component of the hotel. The components of the hotel are: rooms,promotions, packages, discounts and se rvices.To complete the reservation process by notifying the system about the fact that the guest came to the hotel and received keys to the booked room.
  2. JAVASERVER FACES
    The user graphical interface is a crucial part of every computer programme with regard to its responsibility for interaction with the users. This part of application should be flexible,which means susceptible to any needed changes and without any doubts, user – friendly. Regrettably, process of developing such user interface in the main requires usually a profusion of developer's work and time, making the whole development process involved and onerous.The most apting technology to this field is JavaServer Faces (JSF). This holistic, component-based solution for longstanding problems facing software developers has a specific goal: to make web development faster and easier by masking a lot of complexities hidden behind this kind of programming.JSF technology is a server-side user interface framework for Java technology-based web applications. The main components of JSF technology are as follows:
    Two JavaServer Pages custom tags library for expressing UI components within a JSP page and for wiring components to server-side objects.The user interface created with JSF technology (represented by myUI on the Fig. 1) runs on the server and renders back to the client (in this case the browser).Because web-based applications, must often appease multiple clients (such as desktop browsers, cell phones, and PDAs),JSF has a powerful architecture for displaying components in different ways. As for the browsers, for which JSF is mostly used, the default rendering technology is HTML 4.0, though the others like WML or SVG are also possible.One of the greatest advantages of JSF technology is that it offers a clean separation between behavior and presentation layers.
  3. SPRING FRAMEWORK
    Spring is a lightweight, inversion of control container, created to address the complexity of enterprise application development.Spring makes possible to use plain JavaBeans to achieve things that were previously only possible with EJBs [10,11].Any Java application can benefit from Spring in terms of simplicity, test-ability, and loose coupling. The Spring Framework contains a lot of features, which are well-organized in seven modules.
    When taken as a whole, these modules give everything that is needed to develop enterprise applications, although there is no must to build the application fully on the Spring framework. One can pick and choose only those modules that suit best to the application and ignore the rest. This strategy was chosen for the Hotel Reservation System Since one of the core value propositions of the framework is that of enabling choice by not forcing one to apply any particular architecture, technology or methodology, Spring also provides convenient mechanisms for integration with number of third -party frameworks (also with JSF and iBatis).
  4. APACHE IBATIS DATAMAPPER
    Apache iBatis JDBC – based Data Mapper provides simple and flexible way to transport data between relational database and Java, .Net or Ruby application. Contrary to popular Hibernate library, iBatis does not directly tie classes to tables or fields to columns, but instead, it couples objects with results of stored procedures or SQL statements using simple XML descriptor letting the developer to reach only for required data. The iBatis framework can map nearly any database to any object model and is very tolerant of legacy designs, or even bad designs.Simplicity is the main advantage of the iBatis over other frameworks.
    The Hotel Reservation System was primarily built upon JSF technology for the user interface along with auxiliary libraries –Spring and iBatis. The application architecture is presented in Fig. 3.The composition of the system is modular. Each layer is separated with and appropriate interface layer. Such solution makes the architecture not only more error -resistant but also more flexible for changes. The presentation layer consists of the graphical user interface written in the JSF technology andunderlying backing beans objects. It communicates with the Service layer through the service interfaces.Service layer is the central business part of the system where, on the basis of the user input data, proper decisions are made. It also translates input data into explicit form understood for the Data access layer, with which communication takes place by means of Data access interface layer.The Data access layer cooperates with Data Mapper layer and is responsible for data exchange with database.The Data Mapper layer talks via JDBC to database to ask required data. This is a layer where iBatis Data Mapper plays the main role.
  5. JSF - SPRING INTEGRATION
    In a nutshell, JSF – Spring integration makes Spring managed beans visible as variables to JSF, just as if the Spring beans are configured as JSF managed beans.Before diving into the integration specifics of JavaServer Faces,the general integration step for any web framework must be set forth.All that need to be done, is to declare ContextLoaderListener in the standard JEE servlet web.xml deployment descriptor. This listener initializes the Spring's WebApplicationContext that contains all of the business beans in the application. (Fig. 4).The second step in the integration between Spring and JSF is specific just for JSF. The key class used in this process isDelegatingVariableResolver. To configure this variable the faces-context.xml file must be edited. After opening <faces -config> tag <application> tag must be added and within it the <variable-resolver> pointing to the Spring's DelegatingVariable Resolver must be put. The example faces -config.xml file is presented in. The DelegatingVariableResolver delegates value lookups to the default resolver of the underlying JSF implementation, and then to Spring's business context WebApplicationContext. This allows to easily inject dependencies into one's JSF-managed beans.
    Example of faces-config.xml file from Hotel Reservation System application
  6. JSF AND GETMETHOD.
    The JSF only recommended method for sending input data from an online form to an application server is the POST method,though sometimes there is a strong need for use the GET method instead. In the Hotel Reservati on System the GET method is used during the registration process for bringing about user account activation.The common way to implement the GET method is to create a special filter which can manipulate the header or contents (or both) of a request or response.To put GET method into operation, in case of JavaServer Faces,the following algorithm must be fulfilled in the body of thefilter:
    1. Get parameters from the request.
    2. Create appropriate backing bean object accordingly to the
      view that will be used further.
    3. Store the backing bean object in the current session.
    4. Set changed JSF context as current.
    5. Create view and store it in the JSF context.
    6. Execute backing beans methods.
      The Hotel Reservation System was also based on the Spring library, hence some changes to the raw algorithm were necessary.The foremost method for any filter is doFilter() where the proper filtration happens .
      public void doFilter(ServletRequest request,
      ServletResponse response,
      FilterChain chain)throws IOException,
      ServletException {
      FacesContext facesContext =
      getFacesContext(request, response);
      if (facesContext != null){
      request.getRequestDispatcher(
      facesContext.getViewRoot().getViewId()).
      forward(request, response);
      }else{
      chain.doFilter(request, response);
      }
      }
      The doFilter method from GET filter implementation As it may be seen on Fig. 6, an additional function implementing the presented algorithm was used to keep the source code clear and easy-to-read.Create appropriate backing bean object.Almost all backing beans from Hotel Reservation System have at least one property of Spring managed -bean origin. Because of that, it is necessary to set this property after backing bean object creation.
      WebApplicationContext wac =WebApplicationContextUtils.
      getRequiredWebApplicationContext
      (servletContext);
      RegisterService registerService =
      (RegisterService)
      wac.getBean("registerService");
      ConfirmBean confirmBean = new ConfirmBean();
      confirmBean.
      setRegisterService(registerService);
      Creating backing bean object and setting spring –origin property.Getting Spring managed -bean object requires operating on Spring's WebApplicationContext object that is initialised during the server start-up.Set changed JSFes context as current.When storing backing bean object in the session the whole Faces context becomes changed, therefore it must be set as current in order all modifications take place .
      FacesContextFactory contextFactory =(FacesContextFactory)
      FactoryFinder.getFactory(
      FactoryFinder.FACES_CONTEXT_FACTORY);
      LifecycleFactory lifecycleFactory =(LifecycleFactory)FactoryFinder.
      getFactory(FactoryFinder.
      LIFECYCLE_FACTORY);
      Lifecycle lifecycle =lifecycleFactory.
      getLifecycle(LifecycleFactory.
      DEFAULT_LIFECYCLE);
      facesContext = contextFactory.
      getFacesContext (servletContext, req,res, lifecycle);
      ProtectedFacesContext.
      setFacesContextAsCurrentInstance
      (facesContext);
      Setting JSF context as current Before the actual setting context into current, it is indispensable to grab Lifecycle object. Lifecycle manages the processing of the entire lifecycle of a particular JSF request. It is responsible for executing all of the phases that have been defined by the JSF specification, in the specified order, unless otherwise directed by activities that occurred during the execution of each phase. An instance of Lifecycle is created by calling the getLifecycle() method of LifecycleFactory, for a specified lifecycle identifier. Because this instance is shared across multiple simultaneous requests, it must be implemented in a thread -safe manner. Using the current Lifecycle object along with ServletContext,HttpServletReqest and HttpServletResponse objects the FacesContext can be updated and becomes up to date.
      Create view and store it in the JSF context.After making Faces context actual, the new view is supposed to be created and added to this context, nevertheless it is n ot possible to do it with usage of 'new' operator, instead it has to be done in an indirect manner.
      UIViewRoot view = facesContext.
      getApplication().
      getViewHandler().
      createView(facesContext,
      "/confirm/register.jsp" );
      facesContext.setViewRoot(view);
      Creating new view and stroing it in Faces context The createView() method of ViewHandler object constructs and return a new UIViewRoot instance initialized with information from the argument FacesContext and viewId . The viewed parameter is always String variable representing (relative to /WEB-INF/ directory) path where the definition file is located.As shown in Fig. 9 the definition of the view is placed in ordinary JSP file and is located in subdirectory of a WEB-INF directory.Executing backing beans methods The last step is the actual execution of methods of the underlying, proper to created view backing bean object. This example of the filter for the GET method was based upon one used in the Hotel Reservation System, which works as a registration confirmation tool, so in the end, the method responsible for confirmation should be invoked:confirmBean.confirmRegistration(userId);



  1. CONCLUSIONS
The Hotel Reservation System is developed application designed accordingly to the modern programming trends with usage of technologies like JavaServer Faces, Spring Framework and iBatis Data Mapper. Its modular architecture makes the application more error-resistant and flexible for any changes therefore easy to add new functionality. The common problem of sending input data through the GET method has also been solved.System is easy to install and use and the three –module composition puts work-division pattern into operation.This research was supported by the Technical University of Lodz Grant K-25/1/2007/Dz.St.

2. 中文翻譯

基于JavaServer Faces技術(shù)的酒店預(yù)訂系統(tǒng)

本文介紹了基于網(wǎng)絡(luò)的酒店預(yù)訂系統(tǒng)如何利用JavaServer Faces技術(shù)和Spring框架訪問(wèn)系統(tǒng)通過(guò)Web瀏覽器為用戶(hù)預(yù)定酒店客房。

一.引言

酒店預(yù)訂系統(tǒng)是一個(gè)支持特定類(lèi)型功能的軟件,往往通過(guò)Web瀏覽器作為承載手段。其主要特點(diǎn)為尋找并發(fā)送一個(gè)在登記過(guò)程中給定的地址的電子郵件來(lái)預(yù)訂酒店相應(yīng)的房間。

為了支持各酒店的組件定義的過(guò)程。酒店的組成部分是:房間,促銷(xiāo),包裝,折扣,完成的通知等有關(guān)的事實(shí),客人來(lái)到酒店,并收到鑰匙,以及房間預(yù)訂系統(tǒng)預(yù)訂的過(guò)程。

二.JavaServer Faces

圖形用戶(hù)界面是每一個(gè)計(jì)算機(jī)程序的關(guān)鍵部分,其承載與用戶(hù)的交互的責(zé)任。這應(yīng)該是靈活的應(yīng)用程序的一部分,這意味著容易因用戶(hù)需求產(chǎn)生更改,但是無(wú)疑的可以增加用戶(hù)友的好性。令人遺憾的是,發(fā)展中的主要過(guò)程需要好的用戶(hù)界面,通常造成的是開(kāi)發(fā)人員的工作和時(shí)間泛濫,并且使整個(gè)開(kāi)發(fā)過(guò)程涉及JavaServer Faces(JSF)這一領(lǐng)域的技術(shù)。這種整體的,基于構(gòu)件的,軟件開(kāi)發(fā)人員所面臨的長(zhǎng)期問(wèn)題的解決有一個(gè)具體的目標(biāo):使網(wǎng)站發(fā)展速度和復(fù)雜性掩蓋了很多種類(lèi)的技術(shù)。JSF技術(shù)更容易隱藏的是一個(gè)服務(wù)器的端用戶(hù)對(duì)基于Java技術(shù)的Web應(yīng)用程序界面框架。 JSF的技術(shù)的主要組成部分如下:

以UI組件為代表的并且管理他們,處理事件,執(zhí)行服務(wù)器交互和數(shù)據(jù)轉(zhuǎn)換,定義頁(yè)面導(dǎo)航,支持國(guó)際和普及,并為所有這些功能提供擴(kuò)可展性的技術(shù)支持。

兩個(gè)JavaServer Pages定制標(biāo)記庫(kù)在JSP頁(yè)面表示UI組件和布線組件的服務(wù)器端的用戶(hù)界面與JSF技術(shù)在服務(wù)器上運(yùn)行,并返回客戶(hù)端(在這種情況下瀏覽器)由于基于Web的應(yīng)用程序。如桌面瀏覽器,手機(jī)和PDA(多個(gè)客戶(hù)端),JSF的已經(jīng)以不同的方式展示了強(qiáng)大的組件體系結(jié)構(gòu)。至于瀏覽器,因?yàn)樗饕糜贘SF,默認(rèn)的渲染技術(shù)是HTML 4.0,盡管像其他的WML或SVG也有可能。JSF技術(shù)的最大優(yōu)勢(shì)之一是,它提供了一個(gè)干凈的分離行為層和表示層和表示層的架構(gòu)。

三.Spring框架

Spring是一個(gè)輕量級(jí),控制反轉(zhuǎn)容器,它的創(chuàng)建解決了企業(yè)應(yīng)用發(fā)展.Spring的復(fù)雜性使得可以使用普通的JavaBeans實(shí)現(xiàn)的東西,以前只可能與EJB的相關(guān)聯(lián)。任何Java應(yīng)用程序能夠受益于Spring,簡(jiǎn)單來(lái)說(shuō),測(cè)試能力和松散的耦合。

當(dāng)作為一個(gè)整體,這些模塊提供的一切需要發(fā)展的企業(yè)來(lái)進(jìn)行應(yīng)用,雖然不一定要有充分的構(gòu)建Spring框架的應(yīng)用程序。人們可以從中挑選適合的模塊,只有那些最好的應(yīng)用,而忽略其他方面。這一戰(zhàn)略是為酒店預(yù)訂系統(tǒng)選擇了自構(gòu)框架的核心價(jià)值主張之一,并且是社會(huì)的選擇方向,沒(méi)有強(qiáng)迫任何一個(gè)適用于特定的架構(gòu),技術(shù)或方法,Spring還提供了與第三個(gè)數(shù)字一體化的便利機(jī)制 - 框架(也與JSF和iBatis)。

四.iBATIS DataMapper的APACHE

iBatis的JDBC在apache - 數(shù)據(jù)庫(kù)和Java基于數(shù)據(jù)映射器提供了簡(jiǎn)單和靈活的運(yùn)輸方式之間的關(guān)系,.Net或Ruby應(yīng)用程序的數(shù)據(jù)。與流行的Hibernate庫(kù),iBatis的并沒(méi)有直接配合,以表或列或字段,而是,它的存儲(chǔ)過(guò)程或使用簡(jiǎn)單的XML描述符開(kāi)始的開(kāi)發(fā),以達(dá)到對(duì)所需數(shù)據(jù)的應(yīng)用。產(chǎn)生只有SQL語(yǔ)句的結(jié)果對(duì)象。 iBatis的框架幾乎任何數(shù)據(jù)庫(kù)可以映射到任何對(duì)象模型,是非常傳統(tǒng)的設(shè)計(jì),甚至壞designs.Simplicity寬容,是與其他框架相比iBatis的主要優(yōu)點(diǎn)。

酒店預(yù)訂系統(tǒng),主要是建立基于JSF技術(shù)的同時(shí)輔助庫(kù),Spring與iBATIS的用戶(hù)界面。應(yīng)用程序體系結(jié)構(gòu),該系統(tǒng)的組成模塊。每一層和適當(dāng)?shù)姆指襞c界面層。這種解決方案不僅能降低更多的錯(cuò)誤發(fā)生可能性,也能產(chǎn)生更靈活的變化。表示層組成的圖形用戶(hù)在JSF支持bean對(duì)象技術(shù)編寫(xiě)的界面。它傳達(dá)的是在那里,對(duì)用戶(hù)輸入數(shù)據(jù)的基礎(chǔ)上,適當(dāng)?shù)臎Q定是系統(tǒng)的核心業(yè)務(wù)的一部分,通過(guò)服務(wù)層。這也意味著為數(shù)據(jù)訪問(wèn)層明確了解的形式,而溝通需要通過(guò)數(shù)據(jù)訪問(wèn)接口是指數(shù)據(jù)訪問(wèn)層與數(shù)據(jù)輸入數(shù)據(jù)映射層進(jìn)行合作,并與數(shù)據(jù)庫(kù)上進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)映射層負(fù)責(zé)通過(guò)JDBC數(shù)據(jù)庫(kù)談判要求所需的數(shù)據(jù)。這是一個(gè)在iBatis的數(shù)據(jù)映射層起著主要作用。

五.JSF的Spring集成

概括地說(shuō),JSF的spring的整合使Spring管理類(lèi)在JSF變量可見(jiàn),就像spring為JSF管理beans到JavaServer Faces,任何Web框架綜合集成一體化的具體步驟,必須配置forth.All需要做的事,是標(biāo)準(zhǔn)的J2EE servlet的ContextLoaderListener的web.xml部署文件。這個(gè)監(jiān)聽(tīng)器初始化Spring的WebApplicationContext的,它包含所有在應(yīng)用程序的業(yè)務(wù)類(lèi)。在spring和JSF之間的整合只是第二個(gè)步驟是具體為JSF。課堂上使用的關(guān)鍵在這個(gè)過(guò)程中。要配置這個(gè)變量在faces - context.xml文件必須被編輯。開(kāi)幕后<faces -config>標(biāo)簽<應(yīng)用程式必須加上標(biāo)簽,并在它的<variable-resolver>指向Spring的DelegatingVariable分解必須付諸表決。這個(gè)例子的faces - config.xml文件。代表們的值查找到相關(guān)的JSF實(shí)現(xiàn)的默認(rèn)解析器,然后到Spring的業(yè)務(wù)范圍內(nèi)的WebApplicationContext。這使得很容易注入一的JSF管理的bean依賴(lài)關(guān)系。

示例的faces-config.xml文件從酒店冗余接點(diǎn)JSF只建議應(yīng)用的一個(gè)利用表格獲取輸入數(shù)據(jù)到應(yīng)用服務(wù)器的方法是POST方法,雖然有時(shí)也有一種強(qiáng)烈的需要使用GET方法,但卻不常用。在關(guān)于酒店系統(tǒng)使用GET方法是在有關(guān)用戶(hù)帳戶(hù)帶來(lái)共同的方式來(lái)實(shí)施登記過(guò)程中使用GET方法是創(chuàng)建一個(gè)特殊的過(guò)濾器,可以操縱頭或內(nèi)容(或兩者)的請(qǐng)求或付諸實(shí)施的GET方法在JavaServer Faces的,下面的算法的情況下,必須在過(guò)濾器下應(yīng)用:

1.從請(qǐng)求參數(shù)。

2.建立適當(dāng)?shù)闹С謆ean的相應(yīng)的對(duì)象認(rèn)為將繼續(xù)使用。

3.存儲(chǔ)在本屆會(huì)議上支持bean的對(duì)象。

4.設(shè)置更改為當(dāng)前JSF上下文。

5.創(chuàng)建視圖和存儲(chǔ)它在JSF上下文。

6.支持bean的方法執(zhí)行。

六.JSF和具體配置文件

酒店預(yù)訂系統(tǒng)也基于Spring庫(kù),因此一些原始算法變化后成為了在適當(dāng)過(guò)濾情況下的最適當(dāng)方法。在doFilter方法的GET由于從上圖可以看到過(guò)濾器的執(zhí)行情況。額外的函數(shù)執(zhí)行該算法被用于保持源代碼的清晰和易于創(chuàng)造適當(dāng)類(lèi)從酒店預(yù)訂系統(tǒng)的所有支持的類(lèi)都應(yīng)該至少有一個(gè)spring的財(cái)產(chǎn)托管bean。由于這個(gè)原因,有必要支持的bean對(duì)象后,設(shè)置創(chuàng)建此屬性。

支持創(chuàng)建對(duì)象和設(shè)置spring托管bean的對(duì)象需要在Spring的WebApplicationContext的對(duì)象,它是在啟動(dòng)up.Set改為current.支持存儲(chǔ)在會(huì)話(huà)Bean對(duì)象JSFes整個(gè)服務(wù)器初始化經(jīng)營(yíng)范圍面臨環(huán)境變得改變,因此它必須設(shè)置,以便與目前發(fā)生的所有修改。

JSF的設(shè)置作為當(dāng)前的實(shí)際環(huán)境中之前將目前的情況下,它是不可或缺的攫取生命周期的對(duì)象。生命周期管理的特定JSF請(qǐng)求的整個(gè)生命周期處理。它負(fù)責(zé)執(zhí)行的已經(jīng)由JSF規(guī)范中定義的階段,在指定的順序,所有負(fù)責(zé)任的,除非另有活動(dòng),在每個(gè)階段的執(zhí)行導(dǎo)演發(fā)生。生命周期的一個(gè)實(shí)例是創(chuàng)建調(diào)用getLifecycle()的LifecycleFactory方法,為一個(gè)指定的生命周期標(biāo)識(shí)符。因?yàn)檫@種情況是在多個(gè)并發(fā)請(qǐng)求共享的,它必須是在一個(gè)線程安全的方式實(shí)現(xiàn)。利用當(dāng)前的生命周期隨著ServletContext的對(duì)象,HttpServletReqest和HttpServletResponse對(duì)象的FacesContext中可以更新,成為最新的。

創(chuàng)建意見(jiàn),并在JSF決策方面面臨的實(shí)際context.After儲(chǔ)存,新的看法應(yīng)該是創(chuàng)建并添加到這個(gè)方面,但它是被可以做到“新”的運(yùn)營(yíng)商使用它,它反而要以間接方式進(jìn)行。

創(chuàng)建新的觀點(diǎn)和廣泛的在工作面范圍內(nèi)的CreateView的()的方法,它構(gòu)造的ViewHandler對(duì)象并返回一個(gè)新的UI ViewRoot實(shí)例資料和論據(jù)FacesContext中的viewId初始化。該效果參數(shù)始終是String變量代表(相對(duì)的/ WEB INF /目錄)路徑定義文件如圖所示located。視圖的定義是放置在普通的JSP文件,并在一個(gè)WEB INF文件目錄測(cè)試支持bean方法的最后一步是位于子目錄中的底層,以創(chuàng)造適當(dāng)?shù)闹С謆ean的方法的實(shí)際執(zhí)行對(duì)象的看法。這對(duì)于GET方法過(guò)濾的例子是基于在酒店預(yù)訂系統(tǒng),它作為一個(gè)工程的注冊(cè)確認(rèn)工具之一,所以最后,該方法負(fù)責(zé)確認(rèn)應(yīng)被調(diào)用(userId的)。

七.結(jié)論

酒店預(yù)訂系統(tǒng),開(kāi)發(fā)相應(yīng)的設(shè)計(jì)與JavaServer Faces的一樣,Spring框架和iBatis數(shù)據(jù)映射技術(shù)的使用現(xiàn)代編程應(yīng)用的趨勢(shì)。它的模塊化結(jié)構(gòu)使應(yīng)用程序更多的錯(cuò)誤性和靈活的任何變化,因此容易地添加新的功能。派遣通過(guò)GET方法還solved.System輸入數(shù)據(jù)常見(jiàn)的問(wèn)題是易于安裝和使用,這三個(gè)模塊組成放入operation.這個(gè)研究工作分工格局是由羅茲大學(xué)授予的K - 25/1/2007/Dz.St技術(shù)支持的。

關(guān)鍵詞:實(shí)現(xiàn),設(shè)計(jì),成功,系統(tǒng),管理

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉