電子點(diǎn)餐系統(tǒng)——服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)</b></p><p>  題 目:電子點(diǎn)餐系統(tǒng)——</p><p>  服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  院 (部):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院</p><p>  專(zhuān) 業(yè): 軟件工程</p><p>  班 級(jí): 軟件123

2、</p><p>  姓 名: 俞延峰</p><p>  學(xué) 號(hào): 20121112125</p><p><b>  指導(dǎo)教師: 伊靜</b></p><p>  完成日期: 2016年6月30日</p><p>  目 錄(目錄頁(yè)碼格式不對(duì),尤其是頁(yè)碼)</p>

3、<p><b>  摘 要Ⅵ</b></p><p>  ABSTRACTⅦ</p><p>  1前 言- 1 -</p><p>  1.1 選題背景- 1 -</p><p>  1.2 系統(tǒng)簡(jiǎn)要說(shuō)明- 1 -</p><p>  1.3 開(kāi)發(fā)技術(shù)介紹- 1 -<

4、/p><p>  1.3.1 MVC設(shè)計(jì)模式介紹- 2 -</p><p>  1.3.2 Struts框架簡(jiǎn)介- 3 -</p><p>  1.3.3 Hibernate對(duì)象關(guān)系映射框架簡(jiǎn)介- 3 -</p><p>  1.3.4 Spring框架簡(jiǎn)介- 3 -</p><p>  2 需求分析- 4 -&

5、lt;/p><p>  2.1 系統(tǒng)設(shè)計(jì)目標(biāo)- 4 -</p><p>  2.2 可行性分析- 4 -</p><p>  2.3 系統(tǒng)特點(diǎn)- 4 -</p><p>  2.4 系統(tǒng)功能- 5 -</p><p>  2.5 系統(tǒng)環(huán)境- 5 -</p><p>  2.5.1

6、系統(tǒng)運(yùn)行環(huán)境- 5 -</p><p>  2.5.1 系統(tǒng)開(kāi)發(fā)環(huán)境- 5 -</p><p>  3 概要設(shè)計(jì)- 6 -</p><p>  3.1 系統(tǒng)功能結(jié)構(gòu)- 7 -</p><p>  3.2 系統(tǒng)功能描述- 7 -</p><p>  3.2.1 消費(fèi)者模塊- 7 -</p>&l

7、t;p>  3.2.1 點(diǎn)菜員模塊- 7 -</p><p>  3.3 數(shù)據(jù)設(shè)計(jì)- 8 -</p><p>  3.3.1數(shù)據(jù)庫(kù)需求分析- 8 -</p><p>  3.3.2 E-R圖- 8 -</p><p>  3.3.3 數(shù)據(jù)庫(kù)物理設(shè)計(jì)- 9 -</p><p>  4 詳細(xì)設(shè)計(jì)與系統(tǒng)的實(shí)現(xiàn)

8、- 11 -</p><p>  4.1 系統(tǒng)類(lèi)和包的組織介紹- 12 -</p><p>  4.2 架構(gòu)的實(shí)現(xiàn)- 12 -</p><p>  4.2.1 表示層的實(shí)現(xiàn)- 12 -</p><p>  4.2.2 業(yè)務(wù)邏輯層的實(shí)現(xiàn)- 17 -</p><p>  4.2.3 數(shù)據(jù)持久層的實(shí)現(xiàn)- 18 -

9、</p><p>  4.3 功能模塊的實(shí)現(xiàn)- 18 -</p><p>  4.3.1消費(fèi)者模塊的實(shí)現(xiàn)- 18 -</p><p>  4.3.2點(diǎn)菜員模塊的實(shí)現(xiàn)- 22 -</p><p>  4.3.3后廚模塊的實(shí)現(xiàn)- 24 -</p><p>  4.3.4經(jīng)理模塊的實(shí)現(xiàn)- 27 -</p>

10、;<p>  5系統(tǒng)測(cè)試- 32 -</p><p>  5.1測(cè)試主要功能點(diǎn)- 34 -</p><p>  5.2測(cè)試準(zhǔn)備工作- 34 -</p><p>  5.3測(cè)試結(jié)果- 35 -</p><p>  5.4驗(yàn)收測(cè)試- 35 -</p><p>  6 結(jié)論- 36 -</p&

11、gt;<p>  謝 辭- 37 -</p><p>  參考文獻(xiàn)- 38 -</p><p><b>  摘 要</b></p><p> ?。t色為增加的文字)</p><p>  “電子點(diǎn)餐系統(tǒng)—服務(wù)器端功能的設(shè)計(jì)與實(shí)現(xiàn)”的設(shè)計(jì)目的是為了實(shí)現(xiàn)餐館點(diǎn)菜工作信息化,高效為顧客服務(wù)的重要工作之一。系統(tǒng)結(jié)

12、合點(diǎn)菜工作的特點(diǎn),利用網(wǎng)絡(luò)的有效傳播性,提高點(diǎn)菜工作效率、節(jié)省點(diǎn)菜時(shí)間,盡快生成點(diǎn)菜單,為各位前來(lái)消費(fèi)的顧客提供及時(shí)而豐富的菜譜信息,幫助顧客選擇美味并且豐盛的佳肴。</p><p>  本文關(guān)于“電子點(diǎn)餐系統(tǒng)”進(jìn)行了說(shuō)明,系統(tǒng)基于MVC開(kāi)發(fā)模式,總共分為三層:業(yè)務(wù)層、數(shù)據(jù)層、表現(xiàn)層。業(yè)務(wù)層負(fù)責(zé)業(yè)務(wù)邏輯的處理,數(shù)據(jù)層負(fù)責(zé)與數(shù)據(jù)庫(kù)后臺(tái)交互,表現(xiàn)層負(fù)責(zé)前臺(tái)界面的展示。運(yùn)用了struts+spring+hibernat

13、e的集成框架,其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,Spring做管理,管理struts和hibernate。第二段需要重新寫(xiě),系統(tǒng)實(shí)現(xiàn)了什么功能,用什么技術(shù)實(shí)現(xiàn)的,達(dá)到了什么效果。</p><p>  關(guān)鍵詞:電子點(diǎn)餐系統(tǒng);MVC;Struts;Spring;Hibernate</p>

14、<p>  Electronic ordering system - Design and implementation of server</p><p><b>  ABSTRACT</b></p><p>  "Electronic ordering system" is designed to work in order to a

15、chieve a la carte restaurant information, one of the important work and efficient customer service. Combining the characteristics of a la carte system work, the use of effective dissemination of the network, a la carte i

16、mprove efficiency and save time ordering, generating carte menu as soon as possible for you to come and spend customers to provide timely information and rich recipes, to help customers choose delicious and hearty cuis&l

17、t;/p><p>  Key Words: Electronic ordering system;MVC;struts+spring+hibernate</p><p><b>  1前 言</b></p><p><b>  1.1 選題背景</b></p><p>  在這個(gè)科技高速發(fā)展的時(shí)代,科技

18、改變了很多傳統(tǒng)行業(yè)的運(yùn)營(yíng)模式。當(dāng)然,餐飲業(yè)也不例外,通常情況下,餐廳點(diǎn)餐、送單、結(jié)賬都采用人工傳遞,這種工作流程效率低下,而且在就餐高峰期,服務(wù)員在快速手寫(xiě)菜單、人工送單中可能還會(huì)增加誤操作,造成客人投訴,影響到服務(wù)質(zhì)量,甚至有損餐廳的聲譽(yù)。在這個(gè)“民以食為天”的社會(huì)中,遠(yuǎn)遠(yuǎn)不能滿(mǎn)足廣大消費(fèi)者的飲食需求?;谝陨蠁?wèn)題,本人開(kāi)發(fā)了一個(gè)“電子點(diǎn)餐系統(tǒng)”,該系統(tǒng)能夠縮短點(diǎn)餐、下單的時(shí)間,提高餐廳的用餐效率;最大限度的降低了點(diǎn)才下單過(guò)程中的出錯(cuò)

19、率;增加消費(fèi)者的滿(mǎn)意程度;美觀簡(jiǎn)潔的界面方便消費(fèi)者的使用,強(qiáng)大的功能滿(mǎn)足了商家的基本需求。它可以取代傳統(tǒng)的手工方式,工作效率得到了顯著提高。 </p><p>  1.2 系統(tǒng)簡(jiǎn)要說(shuō)明</p><p>  “電子點(diǎn)餐系統(tǒng)”的設(shè)計(jì)目的是為了實(shí)現(xiàn)餐館點(diǎn)菜工作信息化,高效為顧客服務(wù)的重要工作之一。系統(tǒng)結(jié)合點(diǎn)菜工作的特點(diǎn),利用網(wǎng)絡(luò)的有效傳播性,提高點(diǎn)菜工作效

20、率、節(jié)省點(diǎn)菜時(shí)間,盡快生成點(diǎn)菜單,為各位前來(lái)消費(fèi)的顧客提供及時(shí)而豐富的菜譜信息,幫助顧客選擇美味并且豐盛的佳肴。消費(fèi)者是該系統(tǒng)的重要組成部分,該業(yè)務(wù)模塊的主要功能包括:</p><p><b>  消費(fèi)者點(diǎn)餐</b></p><p><b>  消費(fèi)者下單</b></p><p><b>  消費(fèi)者評(píng)價(jià)</

21、b></p><p>  修改個(gè)人信息以及刪除訂單</p><p>  1.3 開(kāi)發(fā)技術(shù)介紹</p><p>  “電子點(diǎn)餐系統(tǒng)”,通過(guò)消費(fèi)者以及點(diǎn)菜員的智能點(diǎn)餐,提高了效率,采用基于MVC開(kāi)發(fā)模式,采用SSH架構(gòu)編寫(xiě)的一套點(diǎn)餐系統(tǒng)。</p><p>  1.3.1 MVC設(shè)計(jì)模式介紹(與大家重合率太高)</p><

22、p>  MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě),一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面 顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶(hù)交互的同時(shí),不需要重新編寫(xiě)業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶(hù)界面的結(jié)構(gòu)中。</p><p&

23、gt;  模型-視圖-控制器(MVC)是Xerox PARC在二十世紀(jì)八十年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,已被廣泛使用。后來(lái)被推薦為Oracle旗下Sun公司Java EE平臺(tái)的設(shè)計(jì)模式,并且受到越來(lái)越多的使用ColdFusion和PHP的開(kāi)發(fā)者的歡迎。</p><p>  MVC是一個(gè)框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。使MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視

24、圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP + servlet + javabean的模式。</p><p>  總結(jié)一下MVC處理過(guò)程,首先控制器用來(lái)接收用戶(hù)的請(qǐng)求,來(lái)決定調(diào)用那個(gè)模型來(lái)處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶(hù)的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回?cái)?shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶(hù)。</p><p>  mvc中的模型、視圖和控制器如圖1-1所示。&

25、lt;/p><p>  圖1-1 mvc模型</p><p>  1.3.2 Struts框架簡(jiǎn)介</p><p>  Struts是最早的java開(kāi)源框架之一,它是MVC設(shè)計(jì)模式的一個(gè)優(yōu)秀實(shí)現(xiàn)。 Struts定義了通用的Controller(控制器),通過(guò)配置文件(通常是 Struts -config.xml)隔離Model(模型)和View(視圖),以Action的

26、概念以對(duì)用戶(hù)請(qǐng)求進(jìn)行了封裝,使代碼更加清晰易讀。 Struts還提供了自動(dòng)將請(qǐng)求的數(shù)據(jù)填充到對(duì)象中以及頁(yè)面標(biāo)簽等簡(jiǎn)化編碼的工具。 Struts能夠開(kāi)發(fā)大型Java Web項(xiàng)目。</p><p>  1.3.3 Hibernate對(duì)象關(guān)系映射框架簡(jiǎn)介</p><p>  Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所

27、欲的使用對(duì)象編程思維來(lái) 操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命 意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p>  1.3.4 Spring框架簡(jiǎn)介</p><p>  Spring是一個(gè)開(kāi)源框架,Sprin

28、g是于2003 年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來(lái)。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事

29、情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring的核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)分層的JavaSE/EEfull-stack(一站式) 輕量級(jí)開(kāi)源框架。</p><p><b>  2 需求分析</b></p><p>  2.

30、1 系統(tǒng)設(shè)計(jì)目標(biāo)</p><p>  根據(jù)該系統(tǒng)的實(shí)際情況和特點(diǎn),采用了jsp作為開(kāi)發(fā)方式,采用了mysql數(shù)據(jù)庫(kù),采用mvc模式,SSH框架的電子點(diǎn)餐系統(tǒng)才得以設(shè)計(jì)與實(shí)現(xiàn)。最終實(shí)現(xiàn)了包含消費(fèi)者點(diǎn)餐,點(diǎn)菜員幫助點(diǎn)餐,廚師操作菜品等功能。</p><p>  2.2 可行性分析</p><p>  可行性分析是通過(guò)對(duì)項(xiàng)目的主要內(nèi)容和配套條件,如市場(chǎng)需求、資源供應(yīng)、建

31、設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)、經(jīng)濟(jì)、工 程等方面進(jìn)行調(diào)查研究和分析比較,并對(duì)項(xiàng)目建成以后可能取得的財(cái)務(wù)、經(jīng)濟(jì)效益及社會(huì)環(huán)境影響進(jìn)行預(yù)測(cè),從而提出該項(xiàng)目是否值得投資和如何進(jìn)行建設(shè)的咨詢(xún)意 見(jiàn),為項(xiàng)目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行苑治鰬?yīng)具有預(yù)見(jiàn)性、公正性、可靠性、科學(xué)性的特點(diǎn)</p><p>  軟件可行性分析最根本的是:如果問(wèn)題不值得解,分析員應(yīng)該建議,以避免時(shí)

32、間、資源、人力和金錢(qián)的浪費(fèi);如果問(wèn)題值得解,分析員應(yīng)該一個(gè),并且為工程制定一個(gè)初步的計(jì)劃。軟件可行性分析包括以下八個(gè)步驟</p><p>  1. 復(fù)查系統(tǒng)規(guī)模和目標(biāo)</p><p>  2. 研究目前正在使用的系統(tǒng)</p><p>  3. 導(dǎo)出新系統(tǒng)的高層邏輯模型</p><p><b>  4. 重新定義問(wèn)題</b>

33、;</p><p>  5. 導(dǎo)出和評(píng)價(jià)供選擇的解法</p><p><b>  6. 推薦行動(dòng)方針</b></p><p><b>  7. 草擬開(kāi)發(fā)計(jì)劃</b></p><p>  8. 書(shū)寫(xiě)文檔提交審查</p><p><b>  2.3 系統(tǒng)特點(diǎn)</

34、b></p><p>  電子點(diǎn)菜系統(tǒng)主要實(shí)現(xiàn)對(duì)消費(fèi)者點(diǎn)餐下單的管理,最終實(shí)現(xiàn)集點(diǎn)餐下單、確認(rèn)訂單、制作訂單、完成訂單等一列功能于一體的簡(jiǎn)潔的營(yíng)銷(xiāo)模式。</p><p>  根據(jù)以上所提及的功能,系統(tǒng)應(yīng)該具有以下幾項(xiàng)重要特點(diǎn):</p><p>  美觀的界面,給消費(fèi)者提供視覺(jué)的吸引。</p><p>  合理易懂的功能劃分,方便消費(fèi)者了

35、解和使用本系統(tǒng),提高效率。</p><p>  方便的數(shù)據(jù)查詢(xún)功能,可以實(shí)時(shí)對(duì)菜品菜單的更新作出調(diào)整</p><p>  保證系統(tǒng)數(shù)據(jù)的可靠性和運(yùn)行的穩(wěn)定性</p><p><b>  2.4 系統(tǒng)功能</b></p><p>  提供經(jīng)理管理功能,方便對(duì)菜品、點(diǎn)菜員以及后廚進(jìn)行增刪改查等操作。</p>

36、<p>  支持點(diǎn)菜功能,跟蹤消費(fèi)者下單情況,做實(shí)時(shí)地調(diào)整</p><p><b>  2.5 系統(tǒng)環(huán)境</b></p><p>  2.5.1 系統(tǒng)運(yùn)行環(huán)境</p><p>  電子點(diǎn)餐系統(tǒng)運(yùn)用SSH框架,基于MVC模式設(shè)計(jì)開(kāi)發(fā)。整個(gè)系統(tǒng)具備可重用、跨平臺(tái)、易于維護(hù)等特點(diǎn)。</p><p><b>

37、;  服務(wù)器端</b></p><p>  處理器:Intel酷睿i5 3210MCPU 或更高</p><p>  內(nèi)存:DDR3 4GB或以上</p><p>  操作系統(tǒng):Windows系列PC機(jī)</p><p>  應(yīng)用服務(wù)器:Apache tomcat</p><p>  Java運(yùn)行環(huán)境:JDK

38、1.6</p><p><b>  數(shù)據(jù)庫(kù):MySql</b></p><p><b> ?。?)客戶(hù)端</b></p><p>  處理器:Inter Pentium 4 1.6 GHz或更高</p><p>  內(nèi)存:256MB或以上</p><p>  瀏覽器:各種瀏覽

39、器均可,建議分辨率為1024×768像素</p><p>  2.5.1 系統(tǒng)開(kāi)發(fā)環(huán)境</p><p>  由于開(kāi)發(fā)工具M(jìn)yEclipse對(duì)內(nèi)存要求較高,未保證其能正常運(yùn)行及調(diào)試,內(nèi)存應(yīng)在512M以上。</p><p>  PC機(jī):Intel酷睿i5 3210MCPU + DDR3</p><p>  操作系統(tǒng):Windows系列P

40、C機(jī)</p><p>  開(kāi)發(fā)語(yǔ)言:java,jsp,ajax</p><p>  所用框架: Struts2 + Hibernate + Spring</p><p>  開(kāi)發(fā)工具:Apache Tomcat 6.0 JDK 1.6.0</p><p>  IDE:Myeclipse8.5</p><p><b

41、>  3 概要設(shè)計(jì)</b></p><p>  3.1 系統(tǒng)功能結(jié)構(gòu)</p><p>  根據(jù)需求分析,電子點(diǎn)餐系統(tǒng)的功能結(jié)構(gòu)圖如圖3-1所示。主要包括消費(fèi)者點(diǎn)餐、下單、評(píng)價(jià),點(diǎn)菜員點(diǎn)餐、下單、確認(rèn)訂單,后廚修改菜品、確認(rèn)訂單以及經(jīng)理管理用戶(hù)和菜單、根據(jù)銷(xiāo)量調(diào)整菜品價(jià)格。</p><p>  圖 3-1 系統(tǒng)功能結(jié)構(gòu)圖</p><

42、;p>  3.2 系統(tǒng)功能描述</p><p>  根據(jù)需求,電子點(diǎn)餐系統(tǒng)設(shè)計(jì)了如圖3-1中所示的幾大功能,下面簡(jiǎn)單介紹消費(fèi)者和點(diǎn)菜員這兩大功能模塊:</p><p>  3.2.1 消費(fèi)者模塊</p><p>  此模塊可以進(jìn)行消費(fèi)者點(diǎn)餐、下單、撤單、評(píng)價(jià)等功能,并且可以查看以及修改個(gè)人信息。如圖3-2所示。</p><p>  圖3

43、-2 消費(fèi)者模塊</p><p>  3.2.1 點(diǎn)菜員模塊</p><p>  此模塊可以進(jìn)行點(diǎn)菜員代替消費(fèi)者點(diǎn)餐、下單、撤單、修改訂單狀態(tài)等功能,并且可以查看以及修改個(gè)人信息。如圖3-3所示。</p><p>  圖3-3 點(diǎn)菜員模塊功能圖</p><p><b>  3.3 數(shù)據(jù)設(shè)計(jì)</b></p>

44、<p>  3.3.1數(shù)據(jù)庫(kù)需求分析</p><p>  數(shù)據(jù)庫(kù)需求分析是了解和分析用戶(hù)的需求,是系統(tǒng)設(shè)計(jì)的基礎(chǔ),也是最困難,耗時(shí)最長(zhǎng)的一部分。</p><p>  以實(shí)現(xiàn)基本功能為出發(fā)點(diǎn),結(jié)合系統(tǒng)的功能進(jìn)行需求分析,主要包括如下:</p><p>  用戶(hù)表,用來(lái)存放用戶(hù)基本信息</p><p>  訂單表,用來(lái)存放用戶(hù)的訂單的信

45、息</p><p>  菜單表,用來(lái)存放菜單的信息</p><p>  評(píng)價(jià)表,用來(lái)存放用戶(hù)評(píng)價(jià)的信息</p><p>  3.3.2 E-R圖(本部分,所有的圖的下面圖示,都要居中)</p><p>  主要表的主要屬性所對(duì)應(yīng)的E-R圖,如下圖所示:</p><p><b>  圖3-4 用戶(hù)表</b

46、></p><p><b>  圖3-5 訂單表</b></p><p><b>  圖3-6 菜單表</b></p><p><b>  圖3-7 評(píng)價(jià)表</b></p><p>  3.3.3 數(shù)據(jù)庫(kù)物理設(shè)計(jì)(本部分,所有的表都缺少表頭)</p><

47、;p>  根據(jù)概念設(shè)計(jì),電子點(diǎn)餐系統(tǒng)的數(shù)據(jù)庫(kù)物理設(shè)計(jì)主要有以下幾個(gè)數(shù)據(jù)表:</p><p> ?。?)用戶(hù)表cfy_users,包含用戶(hù)名,密碼,姓名,性別,年齡,郵箱,用戶(hù)類(lèi)型</p><p>  (2)訂單表cfy_orders,包括訂單id,用戶(hù)名,訂單,金額,訂單狀態(tài)</p><p> ?。?)菜單表cfy_menu,包括菜單ID,菜單名,價(jià)格,類(lèi)型&

48、lt;/p><p>  (4)用戶(hù)評(píng)價(jià)表cfy_assess,包括評(píng)價(jià)ID,用戶(hù)名,評(píng)價(jià)內(nèi)容</p><p>  4 詳細(xì)設(shè)計(jì)與系統(tǒng)的實(shí)現(xiàn) </p><p>  4.1 系統(tǒng)類(lèi)和包的組織介紹</p><p>  整個(gè)系統(tǒng)劃分為5個(gè)包,dao主要是后臺(tái)數(shù)據(jù)的增刪改查,domain是bean類(lèi)以及其對(duì)應(yīng)的數(shù)據(jù)庫(kù)映射,service中間層處理web

49、層與dao層交互,web層負(fù)責(zé)與前臺(tái)頁(yè)面交互,page存放前臺(tái)jsp界面。</p><p>  4.2 架構(gòu)的實(shí)現(xiàn)(本部分的代碼需要重新排版,不要將所有的代碼都羅列,有重點(diǎn)的)</p><p>  4.2.1 表示層的實(shí)現(xiàn)</p><p>  表示層主由struts控制,Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn)

50、。web.xml以及struts配置文件如下所示:</p><p><b>  web.xml</b></p><p>  <?xml version="1.0" encoding="UTF-8"?></p><p>  <web-app version="2.5"

51、</p><p>  xmlns="http://java.sun.com/xml/ns/javaee" </p><p>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </p><p>  xsi:schemaLocation="http://jav

52、a.sun.com/xml/ns/javaee </p><p>  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"></p><p><b>  <filter></b></p><p>  <filter-name>struts2</filt

53、er-name></p><p>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></p><p><b>  </filter></b></p><p&g

54、t;  <filter-mapping></p><p>  <filter-name>struts2</filter-name></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><

55、;p>  <listener></p><p>  <listener-class>org.springframework.web.context.ContextLoaderListener</p><p>  </listener-class></p><p>  </listener></p>

56、<p>  <context-param></p><p>  <param-name>contextConfigLocation</param-name></p><p>  <param-value>classpath:beans.xml</param-value></p><p>  <

57、;/context-param></p><p>  <welcome-file-list></p><p>  <welcome-file>index.jsp</welcome-file></p><p>  </welcome-file-list></p><p>  </web

58、-app></p><p>  Struts.xml</p><p>  <?xml version="1.0" encoding="UTF-8"?></p><p>  <!DOCTYPE struts PUBLIC</p><p>  "-//Apache Soft

59、ware Foundation//DTD Struts Configuration 2.1.7//EN"</p><p>  "http://struts.apache.org/dtds/struts-2.1.7.dtd"></p><p><b>  <struts></b></p><p> 

60、 <!-- 配置action的訪問(wèn)路徑為.do的形式 --></p><p>  <constant name="struts.action.extension" value="do"></constant></p><p>  <!-- 配置struts的開(kāi)發(fā)模式 --></p><

61、;p>  <constant name="struts.devMode" value="true"></constant></p><p>  <!-- 配置struts的簡(jiǎn)單模式 --></p><p>  <constant name="struts.ui.theme" valu

62、e="simple"></constant></p><p>  <package name="" namespace="/" extends="struts-default,json-default"></p><p>  <result-types></p&

63、gt;<p>  <result-type name="json" class="org.apache.struts2.json.JSONResult"/></p><p>  </result-types></p><p>  <interceptors></p><p> 

64、 <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/></p><p>  </interceptors></p><p>  <action name="cfyLoginAction_*" class=&

65、quot;cn.cfy.web.action.CfyLoginAction" method="{1}" ></p><p>  <!-- 首頁(yè)登錄 --></p><p>  <result name="orderPage"></p><p>  /WEB-INF/page/menu/o

66、rderOnline.jsp</p><p><b>  </result></b></p><p>  <result name="dcyLogin"></p><p>  /WEB-INF/page/seller/dcyMain.jsp</p><p><b> 

67、 </result></b></p><p>  <result name="hcLogin"></p><p>  /WEB-INF/page/seller/hcMain.jsp</p><p><b>  </result></b></p><p>

68、  <result name="jlLogin"></p><p>  /WEB-INF/page/seller/jlMain.jsp</p><p><b>  </result></b></p><p>  <result name="userLogin"><

69、/p><p>  /WEB-INF/page/menu/userMain.jsp</p><p><b>  </result></b></p><p>  <result name="register"></p><p>  /WEB-INF/page/menu/register

70、.jsp</p><p><b>  </result></b></p><p>  <result name="home"></p><p>  /WEB-INF/page/menu/home.jsp</p><p><b>  </result><

71、;/b></p><p>  <result name="loginMain"></p><p>  /WEB-INF/page/menu/loginMain.jsp</p><p><b>  </result></b></p><p>  <result nam

72、e="experienceYaduo"></p><p>  /WEB-INF/page/menu/experienceYaduo.jsp</p><p><b>  </result></b></p><p>  <result name="myInfo"></p&g

73、t;<p>  /WEB-INF/page/menu/myInfo.jsp</p><p>  </result></p><p>  <result name="AssessUs"></p><p>  /WEB-INF/page/menu/AssessUs.jsp</p><p>

74、;  </result></p><p>  <result name="getAllPerson"></p><p>  /WEB-INF/page/seller/jlAllStaff.jsp</p><p><b>  </result></b></p><p&g

75、t;  <result name="addPerson"></p><p>  /WEB-INF/page/seller/addPerson.jsp</p><p>  </result></p><p>  <result name="jlUpdatePerson"></p>

76、<p>  /WEB-INF/page/seller/jlUpdatePerson.jsp</p><p><b>  </result></b></p><p>  <result name="userAssess"></p><p>  /WEB-INF/page/seller/us

77、erAssess.jsp</p><p><b>  </result></b></p><p>  <result name="getPerson" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --><

78、;/p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p>  <result name="getUserAssess" type="json">

79、 <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p><

80、b>  </action></b></p><p>  <action name="cfyRegisterAction_*" class="cn.cfy.web.action.CfyRegisterAction" method="{1}"></p><p>  <result nam

81、e="registerSuccess"></p><p>  /WEB-INF/page/menu/index.jsp</p><p><b>  </result></b></p><p>  <result name="loginMain"></p><

82、;p>  /WEB-INF/page/menu/loginMain.jsp</p><p><b>  </result></b></p><p>  </action></p><p>  <action name="cfyMenuAction_*" class="cn.cf

83、y.web.action.CfyMenuAction" method="{1}"></p><p>  <result name="meat"></p><p>  /WEB-INF/page/menu/meat.jsp</p><p><b>  </result></

84、b></p><p>  <result name="greens"></p><p>  /WEB-INF/page/menu/greens.jsp</p><p><b>  </result></b></p><p>  <result name="

85、seafood"></p><p>  /WEB-INF/page/menu/seafood.jsp</p><p><b>  </result></b></p><p>  <result name="discount"></p><p>  /WEB-IN

86、F/page/menu/discount.jsp</p><p><b>  </result></b></p><p>  <result name="feature"></p><p>  /WEB-INF/page/menu/feature.jsp</p><p><

87、;b>  </result></b></p><p>  <result name="childMenu"></p><p>  /WEB-INF/page/menu/childMenu.jsp</p><p>  </result></p><p>  <re

88、sult name="myMenu"></p><p>  /WEB-INF/page/menu/myMenu.jsp</p><p><b>  </result></b></p><p>  <result name="allOrders"></p><

89、;p>  /WEB-INF/page/seller/allOrders.jsp</p><p><b>  </result></b></p><p>  <result name="hcAllOrders"></p><p>  /WEB-INF/page/seller/hcAllOrders

90、.jsp</p><p><b>  </result></b></p><p>  <result name="getAllMenu"></p><p>  /WEB-INF/page/seller/allMenu.jsp</p><p><b>  </re

91、sult></b></p><p>  <result name="addMenu"></p><p>  /WEB-INF/page/seller/addMenu.jsp</p><p><b>  </result></b></p><p>  <r

92、esult name="hcUpdateMenu"></p><p>  /WEB-INF/page/seller/hcUpdateMenu.jsp</p><p><b>  </result></b></p><p>  <result name="hcSureOrders"&

93、gt;</p><p>  /WEB-INF/page/seller/hcSureOrders.jsp</p><p><b>  </result></b></p><p>  <result name="hcMakingOrders"></p><p>  /WEB-INF

94、/page/seller/hcMakingOrders.jsp</p><p><b>  </result></b></p><p>  <result name="ordersNum"></p><p>  /WEB-INF/page/seller/ordersNum.jsp</p>

95、<p><b>  </result></b></p><p>  <result name="getMeat" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <p

96、aram name="root">list</param></p><p><b>  </result></b></p><p>  <result name="getGreens" type="json"> <!-- 這里指定將被Struts2序列化的屬性

97、,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p>  <result name="getSeafoo

98、d" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result>&l

99、t;/b></p><p>  <result name="getDiscount" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list

100、</param></p><p><b>  </result></b></p><p>  <result name="getFeature" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 -->

101、</p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p>  <result name="getChildMenu" type="json"&g

102、t; <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p>  

103、<result name="getMyMenu" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p&g

104、t;<b>  </result></b></p><p>  <result name="getOrders" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param n

105、ame="root">list</param></p><p><b>  </result></b></p><p>  <result name="getMenu" type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在act

106、ion中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result></b></p><p>  <result name="getSureOrders&quo

107、t; type="json"> <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name="root">list</param></p><p><b>  </result></b&

108、gt;</p><p>  <result name="getMakingOrders" type="json"></p><p>  <!-- 這里指定將被Struts2序列化的屬性,該屬性在action中必須有對(duì)應(yīng)的getter方法 --></p><p>  <param name=&quo

109、t;root">list</param></p><p><b>  </result></b></p><p>  </action></p><p>  </package></p><p><b>  </struts><

110、/b></p><p>  4.2.2 業(yè)務(wù)邏輯層的實(shí)現(xiàn)</p><p>  業(yè)務(wù)邏輯層主要是由Spring控制,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用

111、邏輯的開(kāi)發(fā)留給了你。Spring配置文件如下:</p><p>  <?xml version="1.0" encoding="UTF-8"?></p><p>  <beans xmlns="http://www.springframework.org/schema/beans"</p><

112、;p>  xmlns:context="http://www.springframework.org/schema/context"</p><p>  xmlns:aop="http://www.springframework.org/schema/aop"</p><p>  xmlns:tx="http://www.spring

113、framework.org/schema/tx"</p><p>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p><p>  xsi:schemaLocation="http://www.springframework.org/schema/beans

114、 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context

115、-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/sc</p><p

116、>  <!-- 1.配置注解的自動(dòng)掃描范圍 --></p><p>  <context:component-scan base-package="cn.cfy"></context:component-scan></p><p>  <!-- 2.配置數(shù)據(jù)源 --></p><p>  &l

117、t;!-- 3.創(chuàng)建sessionFactory,這是spring整合hibernate的入口 --></p><p>  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></p><p>  &

118、lt;property name="configLocation"></p><p>  <value>classpath:hibernate.cfg.xml</value></p><p>  </property></p><p><b>  </bean></b>

119、</p><p>  <!-- 4.創(chuàng)建事務(wù)管理器 --></p><p>  <bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager"></p><p>  <proper

120、ty name="sessionFactory" ref="sessionFactory"></property></p><p><b>  </bean></b></p><p>  <!-- 5.以注解的形式管理事務(wù) --></p><p>  <t

121、x:annotation-driven transaction-manager="txManage"/></p><p><b>  </beans></b></p><p>  4.2.3 數(shù)據(jù)持久層的實(shí)現(xiàn)</p><p>  數(shù)據(jù)持久層由hibernate控制。通過(guò)hibernate調(diào)用數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的

122、增刪改查,供Service層調(diào)用。hibernate配置文件如下:</p><p>  <?xml version="1.0" encoding="UTF-8"?></p><p>  <!DOCTYPE hibernate-configuration PUBLIC</p><p>  "-//Hi

123、bernate/Hibernate Configuration DTD 3.0//EN"</p><p>  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"></p><p>  <hibernate-configuration></p>&l

124、t;p>  <session-factory></p><p>  <property name="hibernate.connection.username">root</property></p><p>  <property name="hibernate.connection.password"

125、;></property></p><p>  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property></p><p>  <property name="hibernate.connection.ur

126、l"></p><p>  jdbc:mysql://localhost:3306/CFY?useUnicode=true&amp;</p><p>  characterEncoding=UTF-8</p><p>  </property></p><p>  <property name=&qu

127、ot;hibernate.connection.autocommit">true</property></p><p>  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property></p><p>  <pr

128、operty name="hibernate.hbm2ddl.auto">update</property></p><p>  <property name="hibernate.show_sql">true</property></p><p>  <mapping resource="c

129、n/cfy/domain/CfyUsers.hbm.xml"/></p><p>  <mapping resource="cn/cfy/domain/CfyMenu.hbm.xml"/></p><p>  <mapping resource="cn/cfy/domain/CfyOrders.hbm.xml"/&g

130、t;</p><p>  <mapping resource="cn/cfy/domain/CfyAssess.hbm.xml"/></p><p>  </session-factory></p><p>  </hibernate-configuration></p><p>  4

131、.3 功能模塊的實(shí)現(xiàn)</p><p>  4.3.1消費(fèi)者模塊的實(shí)現(xiàn)</p><p>  消費(fèi)者可以實(shí)現(xiàn)點(diǎn)餐、下單、撤單、評(píng)價(jià)等功能,業(yè)務(wù)流程,如圖4-1所示:</p><p>  功能實(shí)現(xiàn),操作界面如下所示:這行文字出現(xiàn)的奇怪???</p><p>  4.3.1.1系統(tǒng)登錄</p><p>  進(jìn)入登錄界面,輸入賬

132、號(hào)密碼,驗(yàn)證之后登錄系統(tǒng):</p><p><b>  圖4-2 系統(tǒng)登錄</b></p><p>  4.3.1.2消費(fèi)者模塊功能</p><p>  功能說(shuō)明:點(diǎn)菜、下單、撤單、評(píng)價(jià)。關(guān)鍵代碼如下:</p><p>  顯示菜單關(guān)鍵代碼:(只需要主要代碼列出)</p><p>  CfyMen

133、uAction.java</p><p>  public String getAllMenu(){</p><p>  return "getAllMenu";</p><p><b>  }</b></p><p>  public String getMenu(){</p><

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論