最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于JSP的實驗管理系統(tǒng)的設計與實現(xiàn)(包調試成功)

2022-12-23 00:31 作者:考研保研直通車  | 我要投稿

畢業(yè)設計(論文)題目:

基于

JSP的

網(wǎng)上

訂餐

管理系統(tǒng)

的設計與

實現(xiàn)

畢業(yè)設計(論文)要求及原始數(shù)據(jù)(資料):1.綜述目前國內外網(wǎng)上訂餐管理系統(tǒng)的現(xiàn)狀;2.深入了解網(wǎng)上訂餐系統(tǒng)的管理方式以及軟件實現(xiàn)相關技術;3.熟練掌握網(wǎng)上訂餐系統(tǒng)的業(yè)務流程實現(xiàn),訓練編寫開發(fā)模塊程序的能力;4.設計并實現(xiàn)網(wǎng)上訂餐系統(tǒng)對于客戶(訂餐方),供貨商(管理員),支付等模塊的支持,維護;5.深入分析網(wǎng)上訂餐系統(tǒng)的業(yè)務邏輯,及實現(xiàn)系統(tǒng)的關鍵技術與編寫語言;6.訓練檢索文獻資料和利用文獻資料的能力;7.訓練撰寫技術文檔與學位論文的能力。 第2頁 畢業(yè)設計(論文)主要內容:1.綜述網(wǎng)上訂餐系統(tǒng)在線上,線下餐營業(yè)中的應用;2.了解網(wǎng)上訂餐系統(tǒng)設計思想以及實現(xiàn)應用的相關技術;3.熟悉網(wǎng)上訂餐系統(tǒng)標準的業(yè)務流程;4.設計網(wǎng)上訂餐系統(tǒng)針對用戶,店鋪,支付等功能的模塊支持;5.深入分析網(wǎng)上訂餐系統(tǒng)的關鍵技術與編寫語言以及業(yè)務的設計流程;6.熟練掌握基于JAVAEE的系統(tǒng)的代碼設計以及編寫;7.設計與實現(xiàn)網(wǎng)上訂餐系統(tǒng)具體模塊的程序,實現(xiàn)的功能: (1.)用戶模塊: ①用戶注冊登錄模塊 ②用戶管理模塊 (2.)后臺模塊: 系統(tǒng)后臺管理模塊學生應交出的設計文件(論文):1.內容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設計論文;2.包括畢業(yè)設計論文、源程序等內容在內的畢業(yè)設計電子文檔及其它相關材料。 第3頁 主要參考文獻(資料):[1] 康牧,JSP動態(tài)網(wǎng)站開發(fā)實用教程,清華大學出版社,2009.[2] 戴維爾,JAVASCRIPT程序員教程,電子工業(yè)出版社,2010.[3] 楊學瑜,高立軍,軟件開發(fā)過程與項目管理,電子工業(yè)出版社,2008.[4] 唐友國 湛洪波著.JSP網(wǎng)站開發(fā)詳解.電子工業(yè)出版社2008年10月.[5] 衛(wèi)紅春等著.信息系統(tǒng)分析與設計[M].北京.清華大學出版社.2009.[6]張文靜 林琪著.JSP程序設計.人民郵電出版社.2005.[7] 張孝祥、徐明華, JAVA基礎與案例開發(fā)詳解, 清華大學出版社, 2009.[8]張潔才,JAVA WEB應用開發(fā)教程,科學出版社,2005.[9]戴維爾,JAVASCRIPT程序員教程,電子工業(yè)出版社,2010.[10] JAMES D. MCCAFFREY等著.NET軟件測試自動化之道[M]. 北京.電子工業(yè)出版社.2007.[11]張大方 李瑋等著.軟件測試技術與管理[M].湖南.湖南大學出版社,2007.[12] JAMES TURNER,KEVIN BEDELL. STRUTS KICK START[M]. SAMS,2009.[13](美)ELLIOTTE RUSTY HAROLD著.JAVA NETWORK PROGRAMMING.東南大學出版社 .2005.[14] (美)H.M.DEITEL,P.JDEITEL著.JAVA程序設計教程(第五版). 清華大學出版社.2004.[15] (美)DAVID FLANAGAN著.JAVA技術手冊(第五版).東南大學出版社.2006. 基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn) 摘 要 隨著科學技術與經濟的快速發(fā)展,網(wǎng)絡信息技術也有了顯著的提升與進步,當今的社會是一個集數(shù)字化,網(wǎng)絡化,信息化的,并且是以網(wǎng)絡為核心的現(xiàn)代化社會。伴隨信息互聯(lián)網(wǎng)的高速成長,使得互聯(lián)網(wǎng)應用也走進家家戶戶的日常生活。網(wǎng)上訂餐作為一種新的生活方式,更加新穎。 畢業(yè)設計中,界面的設計主要使用了在

jsp

插入HTML語言以及JavaScript對系統(tǒng)的頁面進行相關的加工處理完善以使得頁面實現(xiàn)的效果盡可能的滿足美觀的要求。而對于后臺的設計主要是使用了javaSE基礎編程,及javaEE中的Jsp頁面的動態(tài)編程,servlet處理交互邏輯,并且使用jdbc連接數(shù)據(jù)庫,數(shù)據(jù)庫則選用了更為高效的MySql數(shù)據(jù)庫。 本論文就此次畢業(yè)設計的系統(tǒng)內容,從餐品的管理,餐品的分類以及查詢,到訂餐車實現(xiàn),客戶對訂單的處理,再到系統(tǒng)對訂餐和餐品的管理。系統(tǒng)從業(yè)務流程的角度上分析,完成了訂餐系統(tǒng)的基本功能,可是使得用戶通過互聯(lián)網(wǎng)進行點餐以及交易。相比于以往的訂餐方式,網(wǎng)上訂餐更加便捷,高效,對于餐廳更加節(jié)省人力,有利于管理,對于顧客更加省時省力。 關鍵字:?網(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)概述與技術介紹2 1.1 課題背景2 1.2 B/S結構介紹3 1.3 JSP技術介紹4 1.4 JavaScrip語言介紹4 1.5 MySQL數(shù)據(jù)庫介紹5 1.6 MyEclipse介紹5 1.7 MVC模式介紹6 2 系統(tǒng)需求分析7 2.1 開發(fā)環(huán)境7 2.2 需求分析7 2.3 可行性分析8 3 系統(tǒng)概要設計9 3.1 系統(tǒng)設計概述9 3.2 系統(tǒng)功能分析10 3.3 系統(tǒng)用例圖12 3.4 系統(tǒng)功流程圖14 4 數(shù)據(jù)庫設計與實現(xiàn)15 4.1 數(shù)據(jù)庫結構設計15 4.1.1 概念結構設計15 4.1.1 表概要說明16 4.1.2 數(shù)據(jù)表的結構16 5 系統(tǒng)的實現(xiàn)20 5.1 前臺模塊首頁20 5.2 用戶注冊登錄管理22 5.3 用戶訂餐管理功能23 5.4 用戶其他功能操作頁面27 5.5 后臺管理員登錄,注冊功能27 5.6 后臺管理員菜品管理28 5.7 后臺員工及會員管理29 5.8 后臺材料采購管理29 5.9銷售訂餐及統(tǒng)計管理30 6 系統(tǒng)測試32 6.1 測試方法32 6.2 系統(tǒng)流程32 6.2.1 前臺首頁測試32 6.2.2購物車模塊測試32 6.2.3 菜品管理模塊測試33 6.2.4 會員注冊模塊測試33 6.2 系統(tǒng)測試結果33 總 結35

參考文獻3

6

致謝3

7 英文原文38 中文翻譯45 緒 論 隨著我國在本世紀科學技術與經濟的快速提高,網(wǎng)絡信息技術也有了顯著的提升與進步。在我們平日生活中有很多生活方式以及習慣隨著周圍信息化的快速提高也有和以往相比變化越發(fā)的翻天覆地。本次畢業(yè)設計“基于jsp的網(wǎng)上訂餐系統(tǒng)的設計與實現(xiàn)”,相比與之前傳統(tǒng)的電話訂餐,門店訂餐這種靠無線電話,人工傳遞的方式的信息途徑,這些方式解決問題的效率很低,店家(餐廳)不能及時將餐廳對菜品的調整通知顧客,顧客對于用餐需求也不能進行調整,線下的交流并不能形成方便快捷的交互。很多時候對于,餐廳以及顧客都是一種損失。由于上述缺陷,為了適應當前時代信息快速發(fā)展,數(shù)據(jù)大爆炸的趨勢,采用先進的發(fā)展的網(wǎng)上訂餐管理系統(tǒng)使上述的種種缺陷得以得到緩解和解決,精簡了餐廳的工作流程,顧客的訂餐更加便捷,從而提高了餐廳的營業(yè)額。由于網(wǎng)絡的的快速發(fā)展,所以訂餐系統(tǒng)隨著網(wǎng)絡也要有一定的發(fā)展與變化。因此畢業(yè)設計“基于jsp的網(wǎng)上訂餐系統(tǒng)的設計與實現(xiàn)”是非常有必要的。網(wǎng)上訂餐系統(tǒng)對訂餐所涉及的兩個主要用戶:客戶與店家(餐廳),在實現(xiàn)網(wǎng)上訂餐之前,雙方進行訂餐工作,雙方都需要花費大量不必要的時間精力。而快速發(fā)展的網(wǎng)絡技術,使得訂餐系統(tǒng)中所要使用的管理流程在很大程度上做到了極大的簡化了,使得餐廳的管理系統(tǒng)更加快速高效,更加便捷。提高餐廳工作人員的整體工作效率,更加給使用訂餐系統(tǒng)的顧客更加便捷的使用享受和良好的用戶體驗。 從始至終人們都尋求便捷,舒適的生活方式。網(wǎng)絡作為提高生活水平的重要工具,在出現(xiàn)后,人們逐漸對其產生了依賴,在依賴的同時也希望網(wǎng)絡能給自己帶來更方便的幫助,從而大量的銷售網(wǎng)站,娛樂網(wǎng)站等等也就慢慢誕生了,這個網(wǎng)上訂餐系統(tǒng)是一種基于B/S架構的一種系統(tǒng)模式,訂餐系統(tǒng)網(wǎng)站的上手非常的方便,即使第一次登陸,通過網(wǎng)站的指引也會讓您訂餐非常順利便捷,如同多次訂餐的老顧客一般。 此次畢業(yè)設計的系統(tǒng),網(wǎng)上訂餐系統(tǒng)的開發(fā)與設計,在系統(tǒng)可靠性,以及項目的擴展性上占有極大優(yōu)勢。此外對一些java相關技術進行了部分研究,設計并且實現(xiàn)系統(tǒng),同時為以后自己的可能還要做的其他項目打下了有效以及堅實的基礎。 1 系統(tǒng)概述與技術介紹 網(wǎng)上訂餐系統(tǒng)作為一個銷售管理系統(tǒng),首先在頁面的結構上一定要相對有自己的獨特之處,凸顯餐廳的風格,餐品的質量。只有如此才能從一開始吸引顧客的目光,通過美觀的頁面滿足顧客對此類訂餐系統(tǒng)的好感依賴以及業(yè)務功能的需求。與此同時,系統(tǒng)也要有先對強的實用性,系統(tǒng)的實用性不強,這樣的系統(tǒng)會是的顧客產生厭惡心理,不利于一個餐廳的未來發(fā)展。當然,作為一個銷售管理系統(tǒng),要對顧客的點餐做數(shù)據(jù)統(tǒng)計,這樣才能方便餐廳對該顧客的用餐習慣分析,更好的對顧客實施更加人性化的服務。 1.1 課題背景

上世紀90年代,互聯(lián)網(wǎng)逐漸走進人們的視野,在不知不覺中改變著社會的商品交易方式。國內各大企業(yè)從認識到互聯(lián)網(wǎng)的重要性之后,一直堅持不斷的探索網(wǎng)上交易的可能。但是由于網(wǎng)絡生活具有很大的虛擬性,商家的信譽很難得到保證、有關網(wǎng)上交易的法規(guī)未出臺、物流的滯后以及其他的一些問題,都成為了網(wǎng)絡交易發(fā)展的絆腳石。但是,社會的進步是具有持續(xù)性的,21世紀以來,各個瓶頸問題包括網(wǎng)上支付、物流速遞等一一被攻破,網(wǎng)上交易的黃金時代也隨之來臨。 調查顯示,由于科技的進步極大地繁榮了物質生產生活,人們對于生活的便利性要求進一步提高,網(wǎng)上交易特別是以食品外賣為代表與大眾日常生活休戚相關的網(wǎng)絡交易量將在未來幾年達到高峰。 網(wǎng)上交易這一方式給人們的消費模式注入了一股新的活力,極大地沖擊了原有的傳統(tǒng)購物消費習慣。網(wǎng)上訂餐這一方式,在90后人群中擁有大量的支持者,促使他們做出選擇的,不僅僅是這一形式的便利性,還包括相關網(wǎng)站對于消費者的引導。 1.2 B/S結構的介紹 此次系統(tǒng)的設計過程主要運用到了我們在學校以及公司經常提及使用的B/S結構。所謂的B/S系統(tǒng)就是瀏覽器、服務器的系統(tǒng)結構。網(wǎng)上訂餐系統(tǒng)使用B/S結構,主要就是需要服務端的計算機安裝數(shù)據(jù)庫以及服務器。而在客戶端,一個瀏覽器就足夠。服務器在服務端運行,瀏覽器在客戶端運行, B/S結構作為目前最先進的軟件構造技術,在用戶使用的瀏覽器向服務器提交了一些請求之后,服務器端如果接收到了用戶在瀏覽器端發(fā)送的請求之后,服務器端對從瀏覽器接收而來的請求對其進行相應的業(yè)務邏輯處理,隨后將其完成處理后的結果返回給瀏覽器所在的客戶端。 B/S結構也是有很多種的,例如:針對OA系統(tǒng)的開發(fā),這些系統(tǒng)主要包括應用程序的研發(fā)(基于C/S結構的開發(fā)),以及使用傳統(tǒng)的C/S結構的跟網(wǎng)絡技術結合的混合應用,以及到目前為止是我們常常用到的網(wǎng)站制作的技術。但是不可否認的是,每中結構以及技術都有自己的優(yōu)點以及缺點:在此前的C/S結構中,更多的它是一種比較傳統(tǒng)的使用較為廣泛的軟件開發(fā)的模式,主要是通過客戶端以及數(shù)據(jù)庫兩層結構完成系統(tǒng)的實現(xiàn),在兩層之間還可以加入其他層次與結構,C/S作為先前傳統(tǒng)的軟件開發(fā)標準以及開發(fā)設計結構,在伴隨網(wǎng)絡和軟件的開發(fā)技術快速進步,在各種新興技術不斷出現(xiàn)下,被取代或彌補了其結構的很多缺陷,于是也被其衍生出來的新興結構技術在系統(tǒng)開發(fā)的過程中漸漸的將其取代。 1.3JSP技術的介紹 此次網(wǎng)上訂餐系統(tǒng)中頁面主要使用到的技術是java的JSP技術,JSP技術之所以被廣泛被使用到各種項目中去,主要也是因為其自身擁有的很多功能,這使得在項目中可以實現(xiàn)滿足開發(fā)人員,程序員對項目所需要的效果。 作為JSP技術的基礎,servlet技術在此前的開發(fā)中一直被開發(fā)人員所應用。JSP技術的優(yōu)點: (1)進過一次的開發(fā)和編寫,可以在多種平臺運行。因為JSP/Servlet都是基于Java變成語言的,因此具有其編程語言的一個主要優(yōu)點——平臺無關性,這個就是著名的的“一次編寫,隨處運行(WORA – Write Once, Run Anywhere)”。 (2)系統(tǒng)的多平臺支持性。在目前已知的所有平臺JSP技術可以進行任意的環(huán)境開發(fā),并且在平臺中將項目部署在任意的環(huán)境里,相比于其他技術,可以根據(jù)自己項目的需求任意的環(huán)境中拓展。這些優(yōu)勢相比ASP/PHP的局限性是顯而易見的。 (3)強大的可伸縮性。JSP可以運行小到從有一個jar文件,大到多臺服務器進行集群和負載均衡,多到多臺Application進行transaction,還有消息處理,從一臺服務器到無數(shù)臺服務器,Java程序編程語言顯示了其巨大的能量。 (4)功能得多態(tài)多樣以及獲得大多數(shù)開發(fā)工具的技術支持。這個優(yōu)勢和ASP有點類似,java擁有眾多的的開發(fā)工具并且極為優(yōu)秀好用。并且都是免費下載使用的,而且可以

成功

穩(wěn)定得在多個平臺上順利運行。 (5)JSP標簽可擴充性。JSP對Web網(wǎng)頁的動態(tài)構建主要是利用腳本技術和標簽,JSP技術站在開發(fā)者的角度考慮允許開發(fā)者拓展JSP標簽,定制專屬的標簽庫,xml標簽擁有很好的兼容性以及強大的功能,網(wǎng)頁制作者可以充分利用,減少對腳本語言的大量依賴,利用自己定制的標簽,使網(wǎng)頁制作程序員降低了制作網(wǎng)頁的難度以及復雜度。 1.4JavaScript語言介紹 此次畢業(yè)設計,在其中的前臺jsp頁面中大量的使用了前端腳本語言JavaScript。 JavaScript編程語言以其獨有特性,使得他在目前的大多數(shù)項目的前臺頁面設計以及編程都占有重要的一席之地。由于js設計來的產品會主要運行在用戶的瀏覽器客戶端,使得只要用戶點擊頁面的一些按鈕或者特殊位置,就可以觸發(fā)特定的事件進行操作,在頁面的JavaScript腳本就會將事件傳給客戶端(瀏覽器),在客戶端被設計好的事件就會執(zhí)行進行相應的事件處理完成一系列的操作。 網(wǎng)上訂餐管理系統(tǒng)在前臺頁面的編寫設計中就多次使用到了JavaScript這種流行的前端編程語言,眾多的優(yōu)勢,使得很多項目的前臺都是它和它發(fā)展衍生的眾多類庫編寫的,例如我們熟知的:jQuery,easyUI,Extjs等在眾多的豐富的前端js類庫。 網(wǎng)上訂餐管理系統(tǒng)在很多地方都用到了JavaScript腳本語言,例如:顧客以及管理員登錄頁面時候的,檢出數(shù)據(jù)是否有效,包括重復為空等場景。 1.5 MySQL數(shù)據(jù)庫介紹 首先要說的是MySQL是一個開源免費的數(shù)據(jù)庫。這也是為什么作為一個小型關系型數(shù)據(jù)庫管理系統(tǒng),卻獲得了大量的使用,當然這并不是它的最大優(yōu)點。MySQL數(shù)據(jù)庫擁有很多優(yōu)點,比如說:MySql的適應性很好,運行和反應速度快,使用的可靠性高。與此同時,結構化查詢語句是MySql數(shù)據(jù)庫系統(tǒng)主要使用的數(shù)據(jù)庫管理方式,結構化查詢語言也是目前在數(shù)據(jù)庫管理語言中最受人們歡迎的,也是最為常用的。因此在很多的項目系統(tǒng)開發(fā)中都會被開發(fā)人員,經常使用。由于數(shù)據(jù)庫開發(fā)者的允許,MySql作為開源的軟件,在官方網(wǎng)站和很多其他網(wǎng)站都可下載到各種版本的MySql數(shù)據(jù)庫。并且根據(jù)個人或者開發(fā)團隊的項目需要對下載的代碼做出合理的修改。由此我們可以看出,作為一個小型的關系型數(shù)據(jù)庫,在一些項目的管理上是一個很好的選擇,當然這也是在此項目沒有超出MySql的數(shù)據(jù)處理能力的范圍之外。 1.6 MyEclipse介紹 此次畢業(yè)設計主要是面向顧客用戶在前臺頁面訂餐,后臺管理人員對前臺頁面出來的數(shù)據(jù)請求進行數(shù)據(jù)處理,并對客戶端頁面進行及時調整,完善的管理系統(tǒng)。 MyEclipse開發(fā)軟件對系統(tǒng)項目的開發(fā)更加方便快捷,開發(fā)項目的管理更具有條理性。相比于被廣泛使用的Eclipse開發(fā)軟件,MyEclipse在Eclipse開發(fā)軟件的基礎上進行了詳細的優(yōu)化和功能的完善,并且對Eclipse的開發(fā)環(huán)境進行了優(yōu)化,最大的限度進行了拓展。使用Eclipse中很多時候我們自己要尋找安裝插件,但是MyEclipse基本會幫開發(fā)人員在使用之前就集成好了,這對于開發(fā)人員的開發(fā)是十分便利的,因此目前正在廣泛使用于企業(yè)級集成開發(fā)中去。而且,MyEclipse開發(fā)軟件在應用程序的整合方面也顯得十分成功,如果開發(fā)人員能十分熟悉Eclipse,那么對MyEclipse的使用也一定不會陌生,因為MyEclipse的快捷鍵與Eclipse基本保持一致。 1.7MVC模式介紹 此次畢業(yè)設計為了能夠在設計實現(xiàn)上達到最初的想法及要求。并且使完成的系統(tǒng)可以具有一個優(yōu)秀系統(tǒng)所擁有的一些優(yōu)點:安全性高,可移植性好,跨品臺性高,拓展性優(yōu)秀,還能具有分布式結構。因此在項目中用到了前文所介紹的B/S結構體系,我所設計實現(xiàn)的訂餐系統(tǒng)正式基于Java編程語言的B/S設計模式的。為了更加完善系統(tǒng),結合在大學時期學過的計算機軟件知識,我還用到了另一個結構模式,MVC三層結構,MVC三層結構主要是指基于模型model,視圖view以及控制controller的結構模型,而MVC正是這三者英文的首字母縮寫。 控制器,視圖,模型三層軟件設計模式是MVC軟件設計模式的根本。這三層模式對應到了實際項目系統(tǒng)中的web服務器。目前,在網(wǎng)上訂餐管理系統(tǒng)中主要使用的MVC模式,如下圖。

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

有利于開發(fā)者使用,極高的重用性

可以簡單方便的使用,快速的部署

具有比較好的可維護性,易于未來的維護

具有生命周期本身成本較低的優(yōu)勢

軟件過程化的管理方法更有利于開發(fā)的進行

2 系統(tǒng)需求分析 2.1 開發(fā)環(huán)境 此次畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)”的開發(fā)計算機環(huán)境主要是學校配發(fā)的戴爾品牌筆記本電腦,型號是惠普242G1,處理器為英特爾酷睿i5 3代系列,內存容量為 4GB,顯示屏 14英寸;顯卡芯片品牌NVIDIA,型號NVIDIA GeForce GT 730M+Intel GMA HD 4000;硬盤品牌希捷,容量500GB;使用的系統(tǒng)是Windows7旗艦版 SP1。 在我開發(fā)完成的訂餐項目系統(tǒng)中,主要使用的數(shù)據(jù)庫是當前非常受歡迎的開源免費的數(shù)據(jù)庫MySQL。進行項目系統(tǒng)開發(fā),發(fā)布管理的軟件也是MyEclipse工具。使用到的技術,主要是JSP技術,以及前端流行的腳本語言JavaScript,還有JAVA編程語言,HTML標簽 等。此次完成的系統(tǒng)項目,訂餐管理系統(tǒng)是不需要使用戶安裝客戶端程序就可以使用,用戶只需要使用瀏覽器就可以正常的,完整的使用訂餐管理系統(tǒng)的全部所有功能。 2.2 需求分析 參照軟件開發(fā)的標準規(guī)范,參考很多成功的軟件開發(fā)案例,軟件開發(fā)很重要的一環(huán)就是軟件需求分析。軟件需求分析當中很重要的一點就是通過這次分析,真正準確了解到用戶的真實需求,完整準確地項目設計以及編碼開發(fā),這樣才能在項目完成之后,交給用戶一個滿意的系統(tǒng)。不僅如此,同時還能在軟件開發(fā)之初,對軟件項目進行風險評估。最后完成一次完整的軟件開發(fā)設計。 軟件項目的需求分析這個在軟件開發(fā)過程中至關重要的一環(huán),無論在什么時候都占有著不可忽視的地位,不能被省略或者敷衍而過。這正是因為它在整個的項目開發(fā)當中有著舉足輕重的作用。因為軟件項目的需求分析,才能在項目的設計開發(fā)之前,充分理解用戶需要,準確的明確開發(fā)的方向。在開發(fā)的過程中知道。什么功能是必須實現(xiàn)的,什么工作是必須完成的。對系統(tǒng)進行全面的定義,準確,具體的需求,才能更好的實現(xiàn)在項目開發(fā)當中具有極其重要的功能。 一個完善優(yōu)秀的項目系統(tǒng)在開發(fā)之初,開發(fā)的初期就要準備充足的資料,進行項目的需求分析。只有在這個階段完成一個明細,詳盡的需求分析,我們才能在后期的設計,編碼中更好的實現(xiàn)系統(tǒng)功能,完成一個用戶滿意的系統(tǒng)。 2.3 可行性研究分析 在開發(fā)的前期,對一個項目系統(tǒng)進行可行性分析,這是軟件開發(fā)過程中不可或缺的工作。從多個角度,維度進行可行性分析,可以將項目分析的更加透徹具體,從項目的方方面面來深入理解項目系統(tǒng)。 技術可行性分析

在目前大多數(shù)的公司使用到的軟件開發(fā)工具是MyEclipse ,例如我目前實習的公司就是用的是MyEclipse2016,因此我在我此次的項目系統(tǒng),網(wǎng)上訂餐管理系統(tǒng)就是用到了MyEclipse 軟件開發(fā)工具。ava作為一當下最受歡迎的編程語言,歷久彌新,而且方便靈活使用,是此次開發(fā)系統(tǒng)的不二之選。 (2)經濟的可行性分析 此次畢業(yè)設計,在整個項目系統(tǒng)設計編碼完成之后,用戶不需要在自己所在的客戶端安裝任何的客戶端應用程序,只需要正常上網(wǎng)就可以完成對系統(tǒng)的訪問和使用,除此之外,只要保證項目系統(tǒng)被正確的部署在服務器上,并且已經正常運行。那么,用戶就可在任何連接互聯(lián)網(wǎng)的瀏覽器上對系統(tǒng)進行訪問。 (3)法律可行性分析 此次畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn)”,不僅可以提高餐廳對訂餐的管理效率,為顧客對訂餐需求上提供便利,提供更加貼心優(yōu)質的服務,良好的用戶使用體驗。而且在整個的開發(fā)過程中都符合具體的軟件開發(fā)流程及規(guī)范的。在項目的的開發(fā)過程中使用到的都是一些開源的免費的數(shù)據(jù)庫以及開發(fā)人員主要使用的開發(fā)工具,參考以及使用到的一些代碼,也都是在開源社區(qū)和論壇分享的主要開源代碼。因此,此次的網(wǎng)上訂餐管理系統(tǒng)是不存在任何問題,在法律上是可行的,滿足法律可行性的所有要求。 為了實現(xiàn)這些要求,我對界面頁面的開發(fā)做到最大化的簡單易懂,將功能實現(xiàn)盡可能的減少不必要的步驟,做到讓顧客在最短的事件內可以快速訂餐,突出餐廳餐品的特色。做到只要會使用電腦查看網(wǎng)頁,就能成功點餐。因此,在操作可行性上也十分可靠。 3 系統(tǒng)概要設計 3.1 系統(tǒng)設計概述 系統(tǒng)的設計階段作為在項目開的發(fā)整個過程中,最為復雜的一環(huán),其實也是在項目開發(fā)的整個過程中極為重要的的一環(huán),必須經過,必不可缺少。在進行系統(tǒng)項目的設計之前,說明系統(tǒng)項目已經完成了對其自身的分析與設計階段,這是一個具有發(fā)展性的過程,將從分析階段得出的有些抽象的用戶需求進行具體的實現(xiàn),編碼。在對系統(tǒng)項目的設計過程中需要考慮眾多因素,例如在系統(tǒng)實現(xiàn)過程中所面對的內在環(huán)境和外在因素,對項目進行良好的業(yè)務和功能完善以及應該具有的敬業(yè)態(tài)度。 作為主要的任務和目標,在系統(tǒng)設計階段就是為了滿足在系統(tǒng)分析階段提出的用戶要求.因此,要從用戶的要求出發(fā)在不僅可以滿足系統(tǒng)分析階段得出的對系統(tǒng)項目邏輯功能的同時,還要充分考慮到多方因素,包括技術,成本以及時間環(huán)境等相關方面。對于不論是在正在進行中的整體的設計結構還是局部的每一個部分,都有相關的技術和針對性的應對方案。在合理的要求和基礎上,對項目系統(tǒng)所必要的需求進行滿足,并且提出該系統(tǒng)具體到實處的實行方案,使其可以得到完整的實現(xiàn),完成最初的目標以及要求。 系統(tǒng)設計的主要方向以及相關要點: 在系統(tǒng)設計的階段,主要工作涉及到了絕大多數(shù)都是技術以及專業(yè)知識。

為了滿足用戶的需求,在系統(tǒng)項目的設計過程中,可以對之前已經得出的系統(tǒng)項目分析結論作出一些修改,當然,這是基于非原則性上的。

使整個項目系統(tǒng)最終可以獲得成功,不僅僅需要完善的分析,嚴謹?shù)脑O計,更需要系統(tǒng)項目的設計環(huán)境。這個環(huán)境不僅僅是技術環(huán)境與管理環(huán)境,更是兩者的有效結合。因此,這是急不可缺的重要一點。

有上述可知系統(tǒng)設計的要點,那么為了更好地設計系統(tǒng)項目就需要了解系統(tǒng)設計的原則: 易用性原則。對項目做系統(tǒng)設計是為了,開發(fā)出的系統(tǒng)項目,可以滿足用戶提出的需求,達到用戶的滿意。這種滿足需求表現(xiàn)在各個方面,例如:用戶的業(yè)務需求,用戶的邏輯需求,以及使用戶處理部分業(yè)務時候更加簡便,提高用戶的用戶體驗。

開發(fā)階段原則。開發(fā)項目系統(tǒng)軟件,在系統(tǒng)技術選擇階段主要是站在系統(tǒng)的數(shù)據(jù)結構的角度進行設計與開發(fā),而實現(xiàn)功能階段則有不同,這是需要站到用戶需求以及開發(fā)人員實現(xiàn)的角度考慮的。

業(yè)務完整原則。設計實現(xiàn)的項目系統(tǒng)軟件,要保證在完成業(yè)務的同時保證數(shù)據(jù)的完整性,減少數(shù)據(jù)的無處,例如數(shù)據(jù)庫中常常出現(xiàn)的臟讀,誤讀等數(shù)據(jù)誤差。

規(guī)范化的業(yè)務原則。在最初的設計階段中,系統(tǒng)主要是完成用戶需求要求的業(yè)務,但是在實際的操作總。對于系統(tǒng)項目的要求是更高的,它不僅要正確的完成用戶的業(yè)務要求,也要面對完善的業(yè)務流程,以及系統(tǒng)安全性。

3.2 系統(tǒng)功能分析 作為網(wǎng)上訂餐管理系統(tǒng)主要是為顧客提供便捷,全面的訂餐服務,重點要放在面對顧客的頁面功能上,其次是管理員對餐品以及餐廳的管理,系統(tǒng)主要模塊的設計: 1.前臺模塊: 食品展示模塊

食品查詢模塊

購物車模塊

收銀臺模塊

用戶維護模塊

訂單查詢模塊

公告模塊

后臺模塊:

(1)食品管理模塊 (2)用戶管理模塊 (3)管理員維護模塊 (4)訂單管理模塊 (5)公告管理模塊 (6)留言管理模塊 如圖3-1系統(tǒng)功能層次圖所示。 主要包括這幾個方面,其中顧客訂餐功能模塊是主要重點模塊,其次是管理員管理功能模塊。當訂餐系統(tǒng)管理員使用擁有管理權限的管理員用登錄管理員頁面的時候??梢钥吹侥壳坝啿拖到y(tǒng)中保存的用戶信息數(shù)據(jù),菜品的數(shù)據(jù),員工的數(shù)據(jù)以及狀態(tài),訂餐的具體信息,采購原材料的具體情況,以及對顧客頁面的管理,例如:留言板,以及營養(yǎng)小貼士等等。通過管理員對餐廳的管理,給予顧客最好的網(wǎng)上訂餐服務。 顧客訂餐功能的相對應的模塊:主要是顧客進入訂餐系統(tǒng)網(wǎng)站之后,可以看到整體的訂餐系統(tǒng)網(wǎng)站結構,進行系統(tǒng)的客戶端登錄,注冊,以及對現(xiàn)登陸用戶的信息修改,搜索菜品,點餐,訂餐,支付,留言的相關功能,通過眾多的訂餐系統(tǒng)功能。 管理員系統(tǒng)管理功能相關模塊:主要是餐廳管理員從后臺管理頁面登錄管理系統(tǒng)之后,對訂餐系統(tǒng)的一些具體業(yè)務的調整,可以注冊新管理員,以及對現(xiàn)有登錄管理員信息的修改,查看分析管理目前注冊的顧客的信息,查看修改調整現(xiàn)有菜品的具體情況,新增,刪除,完善菜品;對目前餐廳原材料的采購和統(tǒng)計;以及對餐廳員工的管理,新增刪除和調整狀態(tài);更重要的是可以對目前已知訂餐的及時管理,還有就是對顧客訂餐頁面的一些人性化管理,查看顧客留言,修改給顧客查看的營養(yǎng)小貼士。

通過這個兩個主要的模塊,可以完成訂餐系統(tǒng)的綜合管理,包括了顧客的主要功能,注冊,登錄,點餐等;以及管理員對餐廳多方面的管理,完成管理員對顧客的服務交互。 圖 3-1系統(tǒng)功能層次圖 3.3 系統(tǒng)用例圖 通過管理員用例圖,可以清晰的,直觀的看到管理員在網(wǎng)上訂餐管理系統(tǒng)中對用戶訂餐以及用戶本身的一些主要的操作: 管理員可以管理餐品信息。

(1.)管理員可以添加菜品信息。 (2.)管理員可以刪除菜品信息。 2、管理員可以管理訂單信息。 管理員可以管理訂餐系統(tǒng)中注冊的用戶信息。

(1.)管理員可以刪除用戶注冊信息 (2.)管理員可以修改用戶信息 管理員可以對留言進行管理。

管理員可以對用戶進行管理。

管理員用例圖圖,如圖3-2所示。

圖 3-2 管理員用例圖 通過用戶(顧客)用例圖,可以更加直觀的理解在網(wǎng)上訂餐管理系統(tǒng)中主要的客戶端服務,用戶主要使用的功能以及進行的操作,如下: 游客可以注冊會員信息

游客可以瀏覽菜品。

游客可以查看公告。

4、注冊會員的用戶可以通過注冊信息登錄 5、會員可以在訂餐頁面瀏覽菜品信息 6、會員可以修改會員信息 7、會員可以對正在進行的訂餐進行修改 8、會員可以對完成的訂餐進行查詢 9、會員可以進行留言 因此,為了可以更加準確,生動的理解上述所說的用戶主要使用的訂餐服務功能。繪制用例圖就很方便的展示了用戶使用主要使用的功能,用戶(顧客)用例圖,如圖3-3所示。

圖 3-3 用戶(顧客)用例圖 對于主要功能的業(yè)務處理,例如網(wǎng)上訂餐管理系統(tǒng)整個業(yè)務邏輯處理中最為主要的一部分就是訂單處理部分,為了更加直觀的理解整個業(yè)務邏輯,最對訂單的具體的操作如下: 1、可以通過用戶操作對訂單信息,菜品信息進行添加。 2、可以通過用戶操作對訂單信息,菜品信息進行處理。 3、可以通過用戶操作對訂單信息,菜品信息進行刪除。 3.4 系統(tǒng)流程圖 想對訂餐管理系統(tǒng)進行操作,管理員需要登錄訂餐管理系統(tǒng)的后臺管理系統(tǒng),才能進行一系列的對應管理操作。如果登錄時候出現(xiàn)異常,登錄失敗等狀況,系統(tǒng)會要求管理員核對身份密碼后重新登錄。登錄成功之后,就可以通過訂餐管理系統(tǒng)的后臺模塊對整個訂餐管理系統(tǒng)進行正確有效的管理。對訂單的處理,對菜品的修改,添加,刪除。對員工的添加,刪除,管理。對原材料的采購登記。訂餐管理系統(tǒng)目前的概況,都可以從訂餐管理系統(tǒng)的管理員模塊進行查看,分析,以及做出及時的相應調整。 如圖,是訂餐管理系統(tǒng)的后臺管理員模塊操作的基本流程圖,通過路程圖,可以更為直觀的看到管理員進行登錄操作時的系統(tǒng)業(yè)務流程,進行登錄,成功進行模塊的管理,失敗則重新登錄等操作,如圖3-4管理員流程圖所示。

圖 3-4 管理員流程圖 4 數(shù)據(jù)庫設計與實現(xiàn) 4.1 數(shù)據(jù)庫的結構設計 一個項目系統(tǒng)軟件的設計開發(fā),數(shù)據(jù)庫可以說是必不可少的,沒有數(shù)據(jù)庫,用戶的數(shù)據(jù)無法保存,系統(tǒng)的使用人員無法處理數(shù)據(jù),那么整個系統(tǒng)可以說是沒有意義,以及沒有任何使用價值的。在系統(tǒng)項目中,數(shù)據(jù)庫就是用來給用戶,管理員等各種使用系統(tǒng)的角色進行數(shù)據(jù)存儲以及取出等交互動作的。不僅如此,根據(jù)數(shù)據(jù)的數(shù)據(jù)結構的不同,數(shù)據(jù)庫還會對應有不同的存儲方式。 網(wǎng)上訂餐管理系統(tǒng),主要是使用流行的關系數(shù)據(jù)庫MySQL,MySQL是一個開源的免費的關系型數(shù)據(jù)庫,在開發(fā)者中極為流行,極為受歡迎。他的眾多優(yōu)點,例如:開源,免費使用,對服務器占用更小,速度更快,是系統(tǒng)更加流暢。這些都使得,系統(tǒng)軟件開發(fā)的陳本較低,用戶體驗更佳。 此次,我們畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn)”中主要使用到了MySQL數(shù)據(jù)庫,以下,就對主要的數(shù)據(jù)表結構進行描述與說明。 4.1.1概念結構設計 本數(shù)據(jù)庫為滿足網(wǎng)上訂餐系統(tǒng)的要求,保證使用者信息準確充分的同時,系統(tǒng)的安全性也同樣重要。所以,至少要擁有以下功能: (1)建立數(shù)據(jù)表保存使用者注冊、登錄、驗證等功能所需要的數(shù)據(jù); (2)建立兩張表,分別保存食品分類信息和食品的詳細信息所需要的數(shù)據(jù),對食品分類信息分類管理; (3)使用者確認下單后出現(xiàn)的訂單應當記錄,包括訂單號、地址等詳細信息; (4)訂單自動生成滯后,需要記錄訂單的狀態(tài); (5)除系統(tǒng)管理員外,其他人不能進行系統(tǒng)維護,所以要建立一張表保存管理員的信息; (6)使用者會對餐品提出意見,那么應該有留言表,留言表內含標題、日期和留言詳情。 根據(jù)以上信息,網(wǎng)上訂餐系統(tǒng)的E-R圖如圖4-1所示。

圖3-2 系統(tǒng)設計E-R圖 4.1.2 表概要說明 網(wǎng)上訂餐管理系統(tǒng)主要包括了9張數(shù)據(jù)表,分別是餐品菜品信息數(shù)據(jù)表c_book,用戶顧客注冊數(shù)據(jù)表表member,管理員數(shù)據(jù)表admin,餐品菜品類別數(shù)據(jù)表c_booktype,用戶評論數(shù)據(jù)表comment,訂餐車數(shù)據(jù)表gouwuche,營養(yǎng)小貼士數(shù)據(jù)表news,訂單數(shù)據(jù)表num,訂單詳情信息數(shù)據(jù)表orderbook。其中最為重要的5張數(shù)據(jù)表,將會在詳細描述其表結構。 4.1.3 數(shù)據(jù)表的結構 (1)餐品菜品信息表c_book 餐品菜品信息數(shù)據(jù)表主要是用來保存菜品的基本信息,價格,菜名,描述等,該表的結構如表4-1所示。 表4-1 c_book的結構 字段名數(shù)據(jù)類型長度主鍵否描述idint4是IDnamevarchar50否菜名authorvarchar50否廚師pricevarchar50否價錢numbervarchar50否編號typevarchar50否類別Sumvarchar50否數(shù)量Remarkvarchar50否描述tatevarchar50否原材料imgpathvarchar150否菜品圖片 管理員信息數(shù)據(jù)表admin

管理員信息數(shù)據(jù)表,主要是適用于保存管理員的基本信息。表結構如表4-2所示。

表4-2admin的結構

字段名數(shù)據(jù)類型長度主鍵否描述idint4是IDnamevarchar50否用戶名quanxianvarchar10否權限pwdvarchar50否密碼 菜品類型數(shù)據(jù)表 c_booktype

菜品類型數(shù)據(jù)表,主要保存了當前訂餐系統(tǒng)的菜品類型,類型可以根據(jù)餐廳的需求,管理員對其進行增加,刪除,以及修改等操作管理,如表4-3所示。 表4-3c_booktype的結構 字段名數(shù)據(jù)類型長度主鍵否描述Idint4是idnamevarchar50否菜品類型名 (4)用戶(顧客)注冊信息數(shù)據(jù)表member 用戶注冊信息數(shù)據(jù)表主要保存了,使用訂餐管理系統(tǒng)的用戶注冊的信息,這張數(shù)據(jù)表極為重要,表結構如表4-4所示。 表4-4member的結構 字段名數(shù)據(jù)類型長度主鍵否描述Idint4是idnamevarchar50否用戶名pwdvarchar50否密碼sexvarchar50否性別realnamevarchar50否真實姓名agevarchar50否年齡cardvarchar50否身份證號addressvarchar150否地址phonevarchar50否電話(手機)emailvarchar50否電子郵件codevarchar50否郵政編碼typevarchar50否會員 (5)訂單詳情信息數(shù)據(jù)表orderbook 訂餐詳細信息數(shù)據(jù)表,主要記錄了顧客訂餐之后,完成的訂餐,訂餐中主要記錄了此時用戶完成的訂單的詳細信息。數(shù)據(jù)表的結構如表4-5所示。 表4-5 orderbook的結構 字段名數(shù)據(jù)類型長度主鍵否描述idint4是iduseridvarchar50否用戶id編號bookidvarchar50否菜品id標號booksumvarchar50否菜品數(shù)量timesvarchar50否訂餐時間 5 系統(tǒng)的實現(xiàn) 5.1 前臺模塊首頁 作為網(wǎng)上訂餐管理系統(tǒng),展現(xiàn)給用戶的客戶端前臺頁面是整個項目中最為重要的一環(huán),而首頁也是使用戶的留下主要印象,重要的得分點之一。一個好的首頁能為系統(tǒng)做良好的推廣效應,展現(xiàn)系統(tǒng)的主要功能,使得用戶可以通過簡單快捷的熟悉上手,掌握使用方法,實現(xiàn)自己當前的需求。前臺客戶端頁面首頁,運行效果如圖5-1。

圖5-1 前臺客戶端頁面首頁設計效果圖 如圖5-1,我們可以看到,用戶使用的首頁展示了系統(tǒng)客戶端的主要功能,包括,用戶的登錄,一些管理員希望用戶看到的信息,以及目前餐廳主要的菜品,還有就是重要的模塊功能導航欄,通過導航欄的點擊,用戶可以進入相應的功能模塊,實現(xiàn)自己目前的需求,包括:詳細的點餐,會員中心,訂餐車,留言,找回密碼等主要用戶使用功能。 首頁的部分JSP頁面代碼:

<% 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++) { %> <% for (int i = n * 3 – 3; i < alNewly.size(); i++) { ArrayList alNewlyRow = (ArrayList) alNewly.get(i); %>
<tfoot id="ccccc"><noscript id="ccccc"></noscript></tfoot>
  • <sup id="ccccc"></sup>
      <% for (int j = 0; j < alType.size(); j++) { ArrayList alTypeRow = (ArrayList) alType.get(j); if (alTypeRow.get(0).equals(alNewlyRow.get(8))) { %> ”> <%=alTypeRow.get(1)%> <% break;}} %> 5.2用戶注冊登錄管理 用戶在使用訂餐管理系統(tǒng)客戶端頁面進行訂餐。首先需要登錄系統(tǒng),登錄之后才能享受訂餐系統(tǒng)帶來的便捷快速的訂餐服務,如果當前還沒有可以登錄的賬號,首頁提供有注冊用戶的入口。針對已經登錄的用戶,若果想對自己當前所使用的用戶信息進行一些調整,系統(tǒng)也提供了會員中心管理頁面,來滿足此類用戶的需求。如圖5-2為用戶登錄功能的頁面:

      圖5-2用戶登錄頁面效果圖 用戶進行登錄之后就可以進行點餐,搜索等相應功能的操作了,圖5-3為用戶注冊頁面效果圖。 圖5-3用戶注冊頁面效果圖 用戶登錄的程序流程圖如圖5-3所示。

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

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

      圖5-5 首頁點餐效果圖 如圖5-6為搜索點餐頁面效果圖。

      圖5-6索點餐頁面效果圖 搜索點餐頁面,通過針對性的搜索可以使用戶快速的找到自己需要的菜品,進而完成自己的點餐過程。 進行菜品搜索的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+”%'”; //構建對菜品名稱查詢的SQL語句 } if(types != null && !types.equals(“”)){ sql += “where type='”+types+”‘”; //構建對菜品類別查詢的SQL語句 } SelectBean sb = new SelectBean(); ArrayList al = sb.select(sql, args); request.setAttribute(“search”, al); RequestDispatcher rd=request.getRequestDispatcher(“/qiantai/search.jsp”); //跳轉到前臺菜品搜索頁面 rd.forward(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } 當用戶找到自己心儀的菜品之后,進行點餐操作,所選菜品點餐成功之后,將跳轉到訂餐車頁面,訂餐車頁面將展示目前為止,用戶所選的菜品,如圖5-7為訂餐車頁面效果圖。

      圖5-7購物車頁面效果圖 在購物車頁面中,用戶可以清晰的看到目前所點的菜品信息,也可以根據(jù)目前自己的需求對已經點的菜品進行操作,例如修改數(shù)量,或者刪除目前選中的菜品,甚至清空,如果認為還有所需要的菜品,可以點擊繼續(xù)點餐,進入點餐頁面,繼續(xù)點餐操作。當用戶認為菜品足夠,可以點擊收銀臺,進行訂單的提交。 購物車流程圖如圖5-7所示: 圖5-8購物車程序流程圖 進行提交之后,將進入收銀臺頁面,點擊在線支付,將提供支付寶鏈接,這樣就可以支持網(wǎng)上在線支付,使得用戶可以付款進而完成當前的訂單。如圖5-9為收銀臺頁面效果圖。

      圖5-9收銀臺頁面效果圖 5.4用戶其他功能操作頁面 網(wǎng)上訂餐管理系統(tǒng),不僅能讓用戶進行注冊,登錄,修改信息的操作,更重要的是讓用戶得到良好的訂餐功能體驗。因此,用戶除了可以操作上述的訂餐頁面之外,也可由有其他更加人性化的功能,例如在此次畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)”中出現(xiàn)的營養(yǎng)小貼士,以及在線留言功能。 營養(yǎng)小貼士可以用過管理員在后臺進行編寫,讓點餐的用戶看到,提供更加貼心的服務,而在線留言功能可以讓用戶對當前訂餐管理系統(tǒng)中存在的問題,以及改進意見進行表達,達到更好的交互體驗。如圖5-10為用戶在線留言頁面效果圖。

      圖5-10 在線留言頁面效果圖 5.5后臺管理員登錄,注冊功能 作為一個訂餐管理系統(tǒng),僅僅有用戶功能的頁面是遠遠不夠的,要提供更加全面的服務,為餐廳管理員提供功能管理頁面就顯得十分重要。通過系統(tǒng)的后臺管理管理頁面,對餐廳做出實時的管理,了解用戶點餐情況以及目前員工的管理,這樣才能更好運作系統(tǒng),使得用戶擁有更好的用戶訂餐體驗。 如圖5-11為后臺管理員登錄頁面效果圖,5-11為注冊管理員,以及修改管理員頁面效果圖。

      圖5-11后臺管理員登錄頁面效果圖 通過登錄,管理員可以進入后臺管理頁面對訂餐系統(tǒng)進行管理,可以對當前登錄管理員進行修改以及添加新管理員。

      圖5-12 管理員注冊及修改頁面效果圖 5.6后臺管理員菜品管理 管理員通過添加新菜品,以及修改原有菜品,對訂餐系統(tǒng)中的菜品進行調整,通過添加菜品的類別可以對菜品進行更加完善的管理。添加菜品時候,通過添加菜名,原材料,價格,圖片,以及添加目前擁有的菜品類別等信息,來給用戶展示一道菜的方方面面,這樣使用戶通過網(wǎng)絡放心的進行訂餐。如圖5-13為添加菜品頁面效果圖。

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

      圖5-14 員工管理頁面效果圖 5.8后臺材料采購管理 作為一個訂餐管理系統(tǒng),要將每一天做菜使用的原材料進行統(tǒng)計管理,這樣才是一個完善的訂餐管理系統(tǒng)。對于原材料采購的記錄管理,這樣更能方便餐廳管理員,對整個餐廳進行全面的管理,做到對每一天的食材的把控,部分食材采購量的調整,對餐廳運營的成本的管理把控。如圖5-15為原材料采購管理頁面效果圖。

      圖5-15 原材料采購管理頁面效果圖 通過對原材料的統(tǒng)計把控,以及對一段時間的采購單種類及數(shù)量的分析,可以知道什么時候需要采購什么材料,采購的數(shù)量的參考量,采購的具體方向。對近期,原材料價格走向進行統(tǒng)計分析,得出對餐廳最為合適的采購方案,避免不必要的采購,或采購的數(shù)量不準確,導致的餐廳管理成本的提高,這都是需要注意以及及時避免的。 5.9銷售訂餐及統(tǒng)計管理 作為網(wǎng)上訂餐管理系統(tǒng),對于當前訂餐訂單的管理是不可或缺的,因為只有對近期訂單進行分析才能知道,用戶喜歡的菜品,進而進行針對化的應對,挺高服務質量,對銷量高的菜品背后的工作者–廚師,進行獎勵管理,提高工作效率,菜品的質量保證。對近期采購單的統(tǒng)計,有效的看出采購方向,和采購數(shù)量,為今后采購提供了有力的數(shù)據(jù)參考保障,避免采購人員出現(xiàn)不必要的事物,餐廳承擔不必要的損失。如圖5-16為銷售訂單管理頁面效果圖。

      圖5-16銷售訂餐管理頁面效果圖 如圖可以看到,管理頁面提供了多樣的搜索條件用來搜索符合條件的訂餐,例如:用戶id,菜品名稱,訂購數(shù)量,這些搜索條件可以快速定位符合條件的訂單,然后反饋給管理員來進行訂單的管理。 除此之外,還有統(tǒng)計管理功能,如圖5-17為統(tǒng)計管理功能頁面效果圖:

      圖5-17 統(tǒng)計管理頁面效果圖 如圖,統(tǒng)計管理頁面可以清晰,完整的看到當日的訂餐銷售量,銷售信息,以及當日對原材料的采購量信息,這方便了管理員對餐廳的管理,也為用戶提供快速,優(yōu)質的使用體驗實現(xiàn)了堅實的保障。 使管理員對當前餐廳的實時狀況有了深刻的認識,哪些菜品銷量高,需要提前準備,原材料需要大量采購;哪些菜品銷量過低,需要減少原材料的采購,甚至下架。近期的用戶更喜歡,哪些類別的菜品,是否與天氣季節(jié)相關,需要對員工廚師進行具體化的調整,提供了有力的數(shù)據(jù)佐證,與數(shù)據(jù)分析的資料。這都對今后餐廳的發(fā)展十分重要,也是網(wǎng)上訂餐管理系統(tǒng)可以被餐廳使用的重要原因之一。 6 系統(tǒng)測試 在大學四年的專業(yè)知識學習中,可以得知。作為完整的規(guī)范的軟件開發(fā)流程,在完成系統(tǒng)設計,編碼開發(fā)之后,進行軟件測試是非常重要的一環(huán)。是對完成開發(fā),即將投入使用的系統(tǒng)的一次性能以及質量的綜合鑒定。在項目正式上線使用之前,進行的必要工作。也是對項目最初的需求分析,系統(tǒng)的總體設計,編碼開發(fā)的檢驗,多方面工作的綜合最終審核。 6.1 測試方法 在項目進行完整的整合與交互中,對項目系統(tǒng)進行全面的測試,對項目的整體進行問題的查找,在這個過程中耗時相對而言較多。但是也正是因為系統(tǒng)測試的存在,使得系統(tǒng)有了綜合質量的保證。 為了確保網(wǎng)上訂餐系統(tǒng)的穩(wěn)定運行,本節(jié)對主要功能模塊進行測試。 6.2 測試流程 寫好測試的數(shù)據(jù)以及案例,并對測試數(shù)據(jù)進行設計邏輯的處理,得出期望結果。 6.2.1前臺首頁測試

      (1)查詢模塊的測試 首先點擊主頁正中間的查詢欄,在查詢欄里中輸入要查找的菜品關鍵字,如果彈出所查找菜品的信息,則說明該模塊可行。對該模塊進行大量數(shù)據(jù)的測試,驗證其成功無錯誤。 (2)菜品分類瀏覽模塊的測試 單擊頁面左邊的菜品分類信息,選定某一種類后,系統(tǒng)會彈出屬于該類別的所有菜品信息。對給模塊進行大量數(shù)據(jù)的測試,驗證其成功無錯誤, 該模塊能夠完整地實現(xiàn)功能。 6.2.2購物車模塊測試

      在本模塊中首先對修改數(shù)量單元進行了測試,如果填寫的數(shù)量為可行的有效數(shù)字如1、2、3,則系統(tǒng)提示修改成功,如果輸入的制服非法,系統(tǒng)默認修改數(shù)量為1。通過隨機數(shù)據(jù)的測試,驗證其成功無錯誤。假如使用者訂購了同一個商品,系統(tǒng)就會對該商品的購買數(shù)量進行累加。 然后對購物車是否能滿足使用者的購買數(shù)量進行測試,向購物車中添加大量的食品,查看購物車是否會發(fā)生崩潰現(xiàn)象。經過測試,購物車完全滿足設計要求,達到了預期目標。 6.2.3菜品管理模塊測試

      (1)添加功能的測試 在菜品添加的功能下,對于已經選定的菜品名、菜品信息、菜品的圖片、價格、特價、菜品種類進行添加。通過下拉的選擇列表選擇菜品的類別,對于菜品圖片的添加,需要選擇本地的菜品圖片,然后上傳,當所有必須的食品信息都已經填寫完畢的時候,即可上傳添加。完成添加以后,隨機使用幾組不完整的數(shù)據(jù)對本功能進行測試,均顯示失敗。 (2)刪除功能的測試 以上述添加的這一條記錄為例,點擊刪除按鈕,會跳出是否刪除的提示信息,點擊確定按鈕之后,系統(tǒng)返回刪除成功的信息。對于菜品分類信息的刪除,則需要在本分類之下已經沒有菜品信息,否則將不能刪除。 6.2.4會員注冊模塊測試

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

      (1)979332、979332、王藝博、太原市萬柏林區(qū)、男、123456@qq.com、123456

      (2)岑志云、12345、1234岑志云、太原市萬柏林區(qū)、男、bzhi@123.com、6434634 點擊注冊按鈕,輸入第一組數(shù)據(jù),單擊注冊按鈕網(wǎng)站會提示表單信息不能為空,因為表單信息要全部填寫,而昵稱沒有填寫。接著測試第二組數(shù)據(jù),兩次所輸入的密碼并不一樣,系統(tǒng)會彈出提示。 6.3 系統(tǒng)測試結果 當本次畢業(yè)設計完成完整的項目開發(fā)之后,對本次的“基于JSP的網(wǎng)上訂餐管理系統(tǒng)設計與實現(xiàn)”,進行了相應的測試,主要的情況如下: 在項目開發(fā)的過程中,每一個進程的每一步都需要被全面的考慮到,從而確保系統(tǒng)在個個時期具備可控性和穩(wěn)定性。本章注重對前臺首頁、購物車模塊、使用者注冊模塊和商品管理模塊進行了詳細的測試說明。對這些模塊進行大量數(shù)據(jù)的測試,驗證其成功無錯誤。 總 結 此次畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn)”,整個的設計與開發(fā)的過程中,遇到了很多的疑問與困難,但是通過基地的指導來時的指導以及幫助,與對實習公司的前輩的詢問,網(wǎng)上的相關資料的查閱,逐步解決了在設計開發(fā)過程中出現(xiàn)的問題,雖然有一些波折,最終完成本次的畢業(yè)設計。網(wǎng)上訂餐管理系統(tǒng)的主要功能都可以正常的運行,符合最初的用戶需求分析,以及功能設計。通過這一次的畢業(yè)設計,使我從電腦開發(fā)環(huán)境的搭建,開發(fā)軟件的選取,項目需求的分析,系統(tǒng)功能的設計與實現(xiàn),系統(tǒng)的測試等整個流程有了新的認識,和完整的實踐。從這一次的畢業(yè)設計,系統(tǒng)開發(fā)的過程中,學到了很多知識,不僅僅是從理論方面的,更是從具體的動手實踐都有了巨大的提升。例如,對項目使用的數(shù)據(jù)表結構的設計,對項目功能的具體分析設計,這都十分考驗開發(fā)人員的邏輯處理能力和開發(fā)經驗。 雖然在完成畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn)”的項目過程中,是一個人獨立完成的,但是在這個過程中還是非常明白了團隊的重要性,因為在整個的過程中,并不是一個人能單獨完成好的。所以要向公司的前輩,基地的指導老師進行請教,在通過問詢的過程中解決問題,通過交流解決了一個又一個難題。 通過這一次的開發(fā),我充分明白了在未來的工作中,通過良好的溝通交流,這在項目的開發(fā)過程中是多么的重要,只有通過團隊的討論與交流才能對項目開發(fā)過程遇到的問題,得出最優(yōu)秀的解決方案。保證在整個項目中當前的決策時最為合理,為項目系統(tǒng)的成功奠定良好的基礎。 在完成此次的畢業(yè)之后,進行畢業(yè)論文的編寫過程中,我越來越發(fā)現(xiàn),理論對于實踐的重要性,只有系統(tǒng)的學習整套的理論知識,才能更好的進行軟件開發(fā)的實踐。也讓我明白理論與實踐的結合,才是正確的學習方式。同時,提升了自己查閱資料,解決問題,交流的能力,在整個過程中收益匪淺。 通過這一次的獨立網(wǎng)上訂餐管理的設計與實現(xiàn),在整個的系統(tǒng)設計實現(xiàn)過程中,我也發(fā)現(xiàn)了自身存在的問題,與提升的方法以及方向。通過更多的開發(fā)實踐以及閱讀理論書籍,我相信我還可以有更大的提升。在這個過程中也受到了老師,前輩,朋友的幫助,這都使我前進與進步。這一次的畢業(yè)設計,對于我未來的工作學習,有著十分巨大的意義以及作用,是非常大的幫助。 參考文獻 [1] 康牧,JSP動態(tài)網(wǎng)站開發(fā)實用教程,清華大學出版社,2009. [2] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010. [3] 楊學瑜,高立軍,軟件開發(fā)過程與項目管理,電子工業(yè)出版社,2008. [4].唐友國 湛洪波著.JSP網(wǎng)站開發(fā)詳解.電子工業(yè)出版社2008年10月. [5]衛(wèi)紅春等著.信息系統(tǒng)分析與設計[M].北京.清華大學出版社.2009. [6] 張文靜 林琪著.JSP程序設計.人民郵電出版社.2005. [7] 張孝祥、徐明華, JAVA基礎與案例開發(fā)詳解, 清華大學出版社, 2009. [8] 張潔才,Java web應用開發(fā)教程,科學出版社,2005. [9] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010. [10]James D. McCaffrey等著.NET軟件測試自動化之道[M]. 北京.電子工業(yè)出版社.2007. [11] 黎連業(yè)、王華、李淑春,軟件測試與測試技術,清華大學出版社,2009. [12].張大方 李瑋等著.軟件測試技術與管理[M].湖南.湖南大學出版社,2007. [13](美)Elliotte Rusty Harold著.Java Network Programming.東南大學出版社 .2005. [14](美)H.M.Deitel,P.Jdeitel著.Java程序設計教程(第五版). 清華大學出版社.2004. [15](美)David flanagan著.Java技術手冊(第五版).東南大學出版社.2006. [16](美)John J.Patrick著.SQL基礎(第二版).清華大學出版社.2004. 致謝 在本次的畢業(yè)設計“基于JSP的網(wǎng)上訂餐管理系統(tǒng)的設計與實現(xiàn)”的設計與開發(fā)的過程中,遇到了很多的問題與困惑,在基地的指導老師與學院的指導老師的解惑中,在實習公司的前輩的幫助下順利完成。 感謝學院指導老師,基地指導老師在完成畢業(yè)設計的過程中給予的幫助。 感謝實習公司的前輩對我關心和幫助。 附錄:英文翻譯 英文原文

      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. 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.

      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.

      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).

      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.

      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 tag tag must be added and within it the 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

      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:Get parameters from the request.

      Create appropriate backing bean object accordingly to the

      view that will be used further.

      Store the backing bean object in the current session.

      Set changed JSF context as current.

      Create view and store it in the JSF context.

      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);

      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技術的酒店預訂系統(tǒng) 本文介紹了基于網(wǎng)絡的酒店預訂系統(tǒng)如何利用JavaServer Faces技術和Spring框架訪問系統(tǒng)通過Web瀏覽器為用戶預定酒店客房。 一.引言 酒店預訂系統(tǒng)是一個支持特定類型功能的軟件,往往通過Web瀏覽器作為承載手段。其主要特點為尋找并發(fā)送一個在登記過程中給定的地址的電子郵件來預訂酒店相應的房間。 為了支持各酒店的組件定義的過程。酒店的組成部分是:房間,促銷,包裝,折扣,完成的通知等有關的事實,客人來到酒店,并收到鑰匙,以及房間預訂系統(tǒng)預訂的過程。 二.JavaServer Faces 圖形用戶界面是每一個計算機程序的關鍵部分,其承載與用戶的交互的責任。這應該是靈活的應用程序的一部分,這意味著容易因用戶需求產生更改,但是無疑的可以增加用戶友的好性。令人遺憾的是,發(fā)展中的主要過程需要好的用戶界面,通常造成的是開發(fā)人員的工作和時間泛濫,并且使整個開發(fā)過程涉及JavaServer Faces(JSF)這一領域的技術。這種整體的,基于構件的,軟件開發(fā)人員所面臨的長期問題的解決有一個具體的目標:使網(wǎng)站發(fā)展速度和復雜性掩蓋了很多種類的技術。JSF技術更容易隱藏的是一個服務器的端用戶對基于Java技術的Web應用程序界面框架。 JSF的技術的主要組成部分如下: 以UI組件為代表的并且管理他們,處理事件,執(zhí)行服務器交互和數(shù)據(jù)轉換,定義頁面導航,支持國際和普及,并為所有這些功能提供擴可展性的技術支持。 兩個JavaServer Pages定制標記庫在JSP頁面表示UI組件和布線組件的服務器端的用戶界面與JSF技術在服務器上運行,并返回客戶端(在這種情況下瀏覽器)由于基于Web的應用程序。如桌面瀏覽器,手機和PDA(多個客戶端),JSF的已經以不同的方式展示了強大的組件體系結構。至于瀏覽器,因為它主要用于JSF,默認的渲染技術是HTML 4.0,盡管像其他的WML或SVG也有可能。JSF技術的最大優(yōu)勢之一是,它提供了一個干凈的分離行為層和表示層和表示層的架構。 三.Spring框架 Spring是一個輕量級,控制反轉容器,它的創(chuàng)建解決了企業(yè)應用發(fā)展.Spring的復雜性使得可以使用普通的JavaBeans實現(xiàn)的東西,以前只可能與EJB的相關聯(lián)。任何Java應用程序能夠受益于Spring,簡單來說,測試能力和松散的耦合。 當作為一個整體,這些模塊提供的一切需要發(fā)展的企業(yè)來進行應用,雖然不一定要有充分的構建Spring框架的應用程序。人們可以從中挑選適合的模塊,只有那些最好的應用,而忽略其他方面。這一戰(zhàn)略是為酒店預訂系統(tǒng)選擇了自構框架的核心價值主張之一,并且是社會的選擇方向,沒有強迫任何一個適用于特定的架構,技術或方法,Spring還提供了與第三個數(shù)字一體化的便利機制 – 框架(也與JSF和iBatis)。 四.iBATIS DataMapper的APACHE iBatis的JDBC在apache – 數(shù)據(jù)庫和Java基于數(shù)據(jù)映射器提供了簡單和靈活的運輸方式之間的關系,.Net或Ruby應用程序的數(shù)據(jù)。與流行的Hibernate庫,iBatis的并沒有直接配合,以表或列或字段,而是,它的存儲過程或使用簡單的XML描述符開始的開發(fā),以達到對所需數(shù)據(jù)的應用。產生只有SQL語句的結果對象。 iBatis的框架幾乎任何數(shù)據(jù)庫可以映射到任何對象模型,是非常傳統(tǒng)的設計,甚至壞designs.Simplicity寬容,是與其他框架相比iBatis的主要優(yōu)點。 酒店預訂系統(tǒng),主要是建立基于JSF技術的同時輔助庫,Spring與iBATIS的用戶界面。應用程序體系結構,該系統(tǒng)的組成模塊。每一層和適當?shù)姆指襞c界面層。這種解決方案不僅能降低更多的錯誤發(fā)生可能性,也能產生更靈活的變化。表示層組成的圖形用戶在JSF支持bean對象技術編寫的界面。它傳達的是在那里,對用戶輸入數(shù)據(jù)的基礎上,適當?shù)臎Q定是系統(tǒng)的核心業(yè)務的一部分,通過服務層。這也意味著為數(shù)據(jù)訪問層明確了解的形式,而溝通需要通過數(shù)據(jù)訪問接口是指數(shù)據(jù)訪問層與數(shù)據(jù)輸入數(shù)據(jù)映射層進行合作,并與數(shù)據(jù)庫上進行數(shù)據(jù)交換的數(shù)據(jù)映射層負責通過JDBC數(shù)據(jù)庫談判要求所需的數(shù)據(jù)。這是一個在iBatis的數(shù)據(jù)映射層起著主要作用。 五.JSF的Spring集成 概括地說,JSF的spring的整合使Spring管理類在JSF變量可見,就像spring為JSF管理beans到JavaServer Faces,任何Web框架綜合集成一體化的具體步驟,必須配置forth.All需要做的事,是標準的J2EE servlet的ContextLoaderListener的web.xml部署文件。這個監(jiān)聽器初始化Spring的WebApplicationContext的,它包含所有在應用程序的業(yè)務類。在spring和JSF之間的整合只是第二個步驟是具體為JSF。課堂上使用的關鍵在這個過程中。要配置這個變量在faces – context.xml文件必須被。開幕后標簽<應用程式必須加上標簽,并在它的指向Spring的DelegatingVariable分解必須付諸表決。這個例子的faces – config.xml文件。代表們的值查找到相關的JSF實現(xiàn)的默認解析器,然后到Spring的業(yè)務范圍內的WebApplicationContext。這使得很容易注入一的JSF管理的bean依賴關系。 示例的faces-config.xml文件從酒店冗余接點JSF只建議應用的一個利用表格獲取輸入數(shù)據(jù)到應用服務器的方法是POST方法,雖然有時也有一種強烈的需要使用GET方法,但卻不常用。在關于酒店系統(tǒng)使用GET方法是在有關用戶帳戶帶來共同的方式來實施登記過程中使用GET方法是創(chuàng)建一個特殊的過濾器,可以操縱頭或內容(或兩者)的請求或付諸實施的GET方法在JavaServer Faces的,下面的算法的情況下,必須在過濾器下應用: 1.從請求參數(shù)。 2.建立適當?shù)闹С謆ean的相應的對象認為將繼續(xù)使用。 3.存儲在本屆會議上支持bean的對象。 4.設置更改為當前JSF上下文。 5.創(chuàng)建視圖和存儲它在JSF上下文。 6.支持bean的方法執(zhí)行。 六.JSF和具體配置文件 酒店預訂系統(tǒng)也基于Spring庫,因此一些原始算法變化后成為了在適當過濾情況下的最適當方法。在doFilter方法的GET由于從上圖可以看到過濾器的執(zhí)行情況。額外的函數(shù)執(zhí)行該算法被用于保持源代碼的清晰和易于創(chuàng)造適當類從酒店預訂系統(tǒng)的所有支持的類都應該至少有一個spring的財產托管bean。由于這個原因,有必要支持的bean對象后,設置創(chuàng)建此屬性。 支持創(chuàng)建對象和設置spring托管bean的對象需要在Spring的WebApplicationContext的對象,它是在啟動up.Set改為current.支持存儲在會話Bean對象JSFes整個服務

      基于JSP的實驗管理系統(tǒng)的設計與實現(xiàn)(包調試成功)的評論 (共 條)

      分享到微博請遵守國家法律
      屯昌县| 武安市| 广宗县| 高州市| 开封市| 普兰店市| 梁河县| 汪清县| 同心县| 武清区| 蒙阴县| 兴化市| 延津县| 酒泉市| 阳朔县| 苍溪县| 临高县| 南召县| 翁源县| 丹凤县| 财经| 克东县| 大港区| 建德市| 彭泽县| 南开区| 建宁县| 米泉市| 西青区| 沂源县| 甘孜县| 祁门县| 洛扎县| 多伦县| 廉江市| 临桂县| 宜兰市| 渑池县| 泰宁县| 钟祥市| 临泽县|