jsp10基于web的餐廳外賣系統(tǒng)(jsp+servlet+mysql)_第1頁
jsp10基于web的餐廳外賣系統(tǒng)(jsp+servlet+mysql)_第2頁
jsp10基于web的餐廳外賣系統(tǒng)(jsp+servlet+mysql)_第3頁
jsp10基于web的餐廳外賣系統(tǒng)(jsp+servlet+mysql)_第4頁
jsp10基于web的餐廳外賣系統(tǒng)(jsp+servlet+mysql)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

目錄29431緒論 緒論1.1課題背景及意義1.1.1課題背景通過網(wǎng)絡的便利改變了我國各行各業(yè)的管理模式,從上世紀九零年代開始,利用網(wǎng)絡來替代傳統(tǒng)的信息管理模式已經(jīng)逐漸實施。在實施的初期,由于網(wǎng)絡普及率比較低,互聯(lián)網(wǎng)的相關法律法規(guī)也是不完善和部分開發(fā)技術并不成熟,所以導致互聯(lián)網(wǎng)的發(fā)展受到了阻礙,當互聯(lián)網(wǎng)進入到二十一世紀之后,通過經(jīng)濟的快速發(fā)展,使得我國的互聯(lián)網(wǎng)遇到的問題逐一解決,最終進入到了互聯(lián)網(wǎng)時代,國內(nèi)各大機構都加入到了電子信息化的管理模式中來。以往的餐廳外賣相關信息管理,都是工作人員手工統(tǒng)計。這種方式不但時效性低,而且需要查找和變更的時候很不方便。隨著科學的進步,技術的成熟,由于計算機技術的發(fā)展逐漸成熟,成為了人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?,因為計算機的功能強大,所以在我國各行各業(yè)都在通過計算機技術和網(wǎng)絡的便利來改變管理模式。與傳統(tǒng)的餐廳外賣管理方式相比較,該系統(tǒng)的網(wǎng)絡溝通、信息儲存方面都是傳統(tǒng)方式無法媲美的。例如計算機存儲量非常大、計算檢索速度快、安全性高、成本低等特性。并且能夠幫助人們提高工作效率,延伸至服務水平也會有好的收獲,有了網(wǎng)絡,餐廳外賣的各方面的管理更加科學和系統(tǒng),更加規(guī)范和簡便。1.1.2課題意義隨著計算機技術的飛速發(fā)展,計算機在餐廳外賣管理中應用的普及,利用計算機實現(xiàn)外賣管理勢在必行。餐廳外賣系統(tǒng)可以使外賣與管理工作變得規(guī)范化、系統(tǒng)化和程序化,避免了工作的隨意性,提高了外賣管理的速度和準確性,可以及時準確地查詢和修改訂單與外賣情況。其次,強大的供應鏈系統(tǒng),可以允許餐廳進行大量管理外賣信息,大大降低了采購成本。由于其經(jīng)營成本低,資金流動周期短,信息更新快,使運餐廳可以在競爭激烈的市場上靈活地應對自如。餐廳外賣系統(tǒng)的實施從各個方面來講,都促進了社會的福利,所以是有意義的,值得去嘗試的。

1.2國內(nèi)外研究現(xiàn)狀1.2.1國內(nèi)研究現(xiàn)狀由于智能化設備和無線網(wǎng)絡的快速發(fā)展,智能設備已經(jīng)成為了人們生活中必不可少的一部分,在很多領域都有涉及。由于只能信息管理技術的快速發(fā)展以及其它技術的相結合,使得很多信息技術的開發(fā)帶來了極大的便利?;谥悄茉O備的信息管理系統(tǒng)與系統(tǒng),已經(jīng)非常受歡迎,并且在計算平臺中占有越來越大的份額。經(jīng)過近幾年的不斷發(fā)展,全國各地的餐廳外賣已經(jīng)逐漸推出網(wǎng)絡、電話等類型的外賣信息管理,在國家大力支持,加上用戶消費方式的不斷改變,在相關部門的指引下,已經(jīng)出現(xiàn)了各式各樣的餐廳外賣信息管理,這些系統(tǒng)都為用戶提供了便利的服務。但是在經(jīng)濟利益的驅(qū)使下,很多公司加入了改革之路,建立了餐廳外賣管理系統(tǒng),但是這些系統(tǒng)大多都是收費使用,主動服務于用戶,給用戶提供便利服務的系統(tǒng)少之又少。以Web基礎的操作平臺,由于其開發(fā)與操作的便利性,受到了眾多人的青睞。因為人們生活快節(jié)奏到的生活,人們壓力不斷加大,人們更想要一個可以盡快完成餐廳外賣信息管理的平臺,可以減少用戶管理時無效的信息處理,同時也可以讓城市便捷高效的完成餐廳外賣信息管理工作,緩解資源緊張的問題。因此,以Web為基礎,開發(fā)的餐廳外賣系統(tǒng),在滿足多樣化操作需求的前提下,讓計算機服務被越來越多人接受。1.2.1國外研究現(xiàn)狀該系統(tǒng)的開發(fā)屬于一個典型的外賣系統(tǒng),在開發(fā)設計中主要涉及到的包括:數(shù)據(jù)庫的設計、分析、連接、功能的實現(xiàn)、系統(tǒng)的維護以及用戶的正確操作方式。并且通過對用戶的需求分析來開發(fā)一個典型的餐廳外賣系統(tǒng)。還在一定程度上保證了系統(tǒng)的安全性和穩(wěn)定性。該系統(tǒng)的設計易操作、易使用主要是為用戶所設計的。逐步對用戶需求進行滿足。由于網(wǎng)絡技術的迅速發(fā)展,人們對網(wǎng)絡技術意識也是不斷提高,通過網(wǎng)絡的便利滿足人們的需求,人們早已認可,根據(jù)該餐廳外賣系統(tǒng)可以得知,整個系統(tǒng)的后期要求越來越嚴格,并且采用的軟件軟件環(huán)境也是不斷提高,所以說該餐廳外賣系統(tǒng)已經(jīng)實現(xiàn)了現(xiàn)代化的信息化以及高效化的管理。通過網(wǎng)絡的便利來開發(fā)該餐廳外賣系統(tǒng)系統(tǒng)是具有一定價值和意義的。2系統(tǒng)開發(fā)工具和開發(fā)平臺2.1關鍵性知識及技術簡介2.1.1JAVA概述Java語言是在二十世紀末由Sun公司發(fā)布的,而且公開源代碼,這一優(yōu)點吸引了許多世界各地優(yōu)秀的編程愛好者,也使得他們開發(fā)出當時一款又一款經(jīng)典好玩的小游戲。Java語言是純面向?qū)ο笳Z言之一,從發(fā)布初期到現(xiàn)今,可以說有將近20多年的歷史,已發(fā)展成為人類計算機編程語言發(fā)展史上的一個深遠影響。Java語言具有非常多種的特性:(1)跨平臺的無關性;(2)面向?qū)ο螅唬?)安全性得以保障;(4)支持多個任務;(5)多種編寫方式,代碼編寫簡單。對比其他的低級語言、高級語言,Java語言具有明顯的顯著優(yōu)勢以及未來開闊的前景,可以廣泛的應用在個人筆記本電腦、大數(shù)據(jù)、大型游戲等等。首先,Java語言具有面向?qū)ο蟮奶匦?,并且易于理解。關于對象,其實可以理解成每一種事物都是一種對象,包括我們?nèi)祟愖陨矶际且环N對象。在軟件開發(fā)過程中,其中的問題通過面向?qū)ο笳Z言的基本特征來進行解決。也為軟件開發(fā)提供了重要的貢獻。其次,Java語言具有很好的跨平臺無關性。所編寫出來的應用程序是Java語言編寫的,那么就無需再使用編譯器來修改程序代碼,可以直接在任何計算機系統(tǒng)中運行,通過一次編譯,可以在Windows系統(tǒng)中運行,也可以在Linux系統(tǒng)中運行,所以Java語言具有卓越的可移植性,可以很好的跨平臺實現(xiàn)。2.2.2B/S介紹B/S結構的特點也非常多,例如在很多瀏覽器中都可以做出信號請求。并且可以適當?shù)臏p輕用戶的工作量,通過對客戶端安裝或者是配置少量的運行軟件就能夠逐步減少用戶的工作量,這些功能的操作主要是由服務器來進行控制的,由于該軟件的技術不斷成熟,最主要的特點就是與瀏覽器相互配合為軟件開發(fā)帶來了極大的便利,不僅能夠減少開發(fā)成本,還能夠不斷加強系統(tǒng)的軟件功能,層層相互獨立和展現(xiàn)層是該B/S結構完成相互連接的主要特性。用戶的請求通過數(shù)據(jù)庫服務器進行處理。與傳統(tǒng)的方式相比較,不論是在數(shù)據(jù)上面的維護還是經(jīng)濟方面的要求都是更加簡便快捷的,從而使得管理具有層次化。在該頁面中,管理員也可以對服務器硬件進行維護和數(shù)據(jù)庫的更新。2.2mysql數(shù)據(jù)庫平臺數(shù)據(jù)庫的種類有很多種,MySQL就是其中的一個,它是一個數(shù)據(jù)服務器,能夠同時讓多用戶進行訪問,能夠多線程的處理事務,是一個強大的、高效的、屬于一個安全且穩(wěn)定的關系型數(shù)據(jù)庫系統(tǒng)。并且免費和開源是該Mysql數(shù)據(jù)庫的兩大優(yōu)點。由于它的開源性,世界上所有的程序員都可以對其進行二次開發(fā),這樣MySQL數(shù)據(jù)庫就變的更多元化、通用化、簡單化、方便化。每個數(shù)據(jù)庫都有其相應的接口,MySQL的數(shù)據(jù)接口可以和現(xiàn)在市面上流行的很多語言進行匹配。實現(xiàn)真正的多用戶多線程。而且,據(jù)世界軟件組織IIEDS調(diào)查,MySQL數(shù)據(jù)庫是現(xiàn)在中小程序開發(fā)中使用的最多的數(shù)據(jù)庫,由于它的開源和操作簡單,Myspl數(shù)據(jù)庫的是每個開發(fā)者的首選技術,多用戶、多線程的一個服務器,該系統(tǒng)主要采用的就是SQL的數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng)是基于SQL的客戶以及服務器模式的關系。該系統(tǒng)的主要功能如下:功能強大、操作簡易、跨平臺性強、安全性高以及穩(wěn)定性強等特點。對于Web站點和其它軟件很適合。通過對數(shù)據(jù)庫后端的開發(fā),會員可以編寫和訪問Myspl數(shù)據(jù)庫程序,Myspl數(shù)據(jù)庫是開放源代碼的,所以大部分的開發(fā)者都是首選Mysql作為系統(tǒng)數(shù)據(jù)庫,由于該數(shù)據(jù)庫使用的數(shù)量多,所以被廣泛的推廣。并且受到人們的歡迎和認可。mysql數(shù)據(jù)庫它有很多的優(yōu)點,例如它在操作上能夠讓人通俗易懂、功能強大、信息儲存量高等優(yōu)點。所以被人們廣泛應用,對于mysql數(shù)據(jù)庫來說它一般主要是對數(shù)據(jù)進行編碼和查詢,而且在很多的設計當中都應用到了該數(shù)據(jù)庫,在此過程當中我們可以對常規(guī)的數(shù)據(jù)進行查詢和組合,所以我們在進行使用mysql數(shù)據(jù)庫的時候只要對編寫一小段的數(shù)據(jù)就能實現(xiàn)相應的功能。數(shù)據(jù)庫,就是數(shù)據(jù)存儲的儲藏室,只不過數(shù)據(jù)是存儲在計算機上的,而不是現(xiàn)實中的儲藏室,數(shù)據(jù)的存放是按固定格式,而不是無序的,則定義就是:長期有固定格式,將共享數(shù)據(jù)可以通過數(shù)據(jù)庫進行儲存,一個數(shù)據(jù)庫的整體包括數(shù)據(jù)表的建立、數(shù)據(jù)存儲、數(shù)據(jù)修改以及數(shù)據(jù)添加等方面。通過以上幾方面的完善。才能保證數(shù)據(jù)庫能夠正常運行。數(shù)據(jù)表的建立,可以對數(shù)據(jù)表中的數(shù)據(jù)進行調(diào)整,數(shù)據(jù)的重新組合及重新構造,保證數(shù)據(jù)的安全性。2.3系統(tǒng)開發(fā)環(huán)境及工具操作系統(tǒng):MicrosoftWindows10開發(fā)語言:JAVA技術開發(fā)工具:myeclipse開發(fā)環(huán)境:jdk1.8數(shù)據(jù)庫:mysql3系統(tǒng)總體分析3.1系統(tǒng)可行性分析(1)技術可行性:基于web的餐廳外賣系統(tǒng)的設計與實現(xiàn)中Java是主要開發(fā)技術,該系統(tǒng)的前端和后端主要是由B/S結構和Mysql數(shù)據(jù)庫來進行完成,在開發(fā)本系統(tǒng)時,必須要保證該系統(tǒng)具有一定的完整性和簡便性等功能。數(shù)據(jù)庫方面必須要保證數(shù)據(jù)庫具有一定的安全性和穩(wěn)定性。在學校簡單的對Java技術和通過對Mysql數(shù)據(jù)庫和各個語言進行簡單學習之后,然后進行了軟件測試,根據(jù)簡單的學習基本可以對課程的學習做出簡單的系統(tǒng)開發(fā)、檢測和辨別。(2)經(jīng)濟可行性:在該系統(tǒng)中所有的開發(fā)軟件都是開源的,大大的減少時間和節(jié)約成本,并且還可以提高開發(fā)效率,使用本系統(tǒng)并不需要多么高的電腦配置,只需要能夠登錄網(wǎng)站的低配置都可以,所以說開發(fā)本系統(tǒng)在經(jīng)濟上是具有可行性的。(3)操作可行性:基于web的餐廳外賣系統(tǒng)的一大特點是注冊登錄界面簡單且易操作,都是采用常見的窗口來進行登錄,只需要通過電腦就可以進行操作登錄,只要會使用電腦,就可以隨時隨地的進行登錄訪問。該系統(tǒng)主要采用的是Java技術進行開發(fā),并且基于B/S結構,這些開發(fā)工具使該系統(tǒng)更加完善和規(guī)范,從而使得系統(tǒng)更具有人性化。根據(jù)以上功能看出,本系統(tǒng)的主要特點就是易操作、易管理。所以開發(fā)一個基于web的餐廳外賣系統(tǒng)刻不容緩。經(jīng)過以上的敘述,所以開發(fā)此系統(tǒng)在經(jīng)濟上、技術上是滿足開發(fā)條件的。3.2系統(tǒng)功能需求分析客戶需求分析:顧客需要注冊,并且可以修改用戶名和密碼,并且可以查看查看菜品信息,進行網(wǎng)上餐廳外賣系統(tǒng),也可以在線留言,會員可以訂購多個菜品信息,還可以對自己已經(jīng)訂購的菜品進行查看,前臺菜品訂購功能簡介明了,操作簡單快捷。管理員需求分析:管理員有自己的賬戶,登陸后能進行密碼修改還可以進行管理員分配,最主要的就是產(chǎn)品的維護菜品信息管理,菜品分類管理,菜品錄入操作,還可以管理公告留言,并可以查看此客戶所申請的產(chǎn)品訂單和訂單管理。3.3系統(tǒng)用例分析此次開發(fā)的基于web的餐廳外賣系統(tǒng)中,主要是圍繞用戶和管理員的需求進行滿足。用戶間靜結構如圖3-1所示:圖3-1用戶間靜態(tài)結構圖(1)用戶功能需求用戶進入系統(tǒng)可以查看我的信息、網(wǎng)站論壇,我的購物車、我的訂單管理等,用戶用例圖如圖3-2所示。圖3-2用戶用例圖(2)管理員功能需求管理員登陸后,主要功能模塊包括密碼修改、用戶管理、類別管理、添加類別、菜品管理、添加菜品、訂單管理、網(wǎng)站論壇等功能。管理員用例圖如圖3-3所示。圖3-3管理員用例圖3.4系統(tǒng)性能需求分析無論是哪個系統(tǒng)都有著自己的設計規(guī)則。以下是該系統(tǒng)的設計標準:簡單:如果系統(tǒng)能夠正常運轉,并且功能強大,在這樣的前提下,在將系統(tǒng)設計的更容易理解,就使系統(tǒng)更加完善了。針對性:開發(fā)基于web的餐廳外賣系統(tǒng)設計及后臺管理的設計是本次的主要設計,最終使系統(tǒng)功能突出和針對性強的特點。適用范圍:針對基于web的餐廳外賣系統(tǒng)設計的基本信息進行管理,使得系統(tǒng)具有良好的可用性。4系統(tǒng)總體設計4.1系統(tǒng)實現(xiàn)功能簡介4.1.1系統(tǒng)總體功能簡介如下圖4.1所示,整個餐廳訂餐系統(tǒng)主要實現(xiàn)管理員和用戶,用戶進入系統(tǒng)可以查看菜品信息并在線下單訂餐,管理員后臺管理信息包括對菜品、類別的添加、刪除、修改以及查看等。圖4.1系統(tǒng)總功能圖4.1.2會員界面設計當用戶進入系統(tǒng)后需要登錄時,首先要輸入自己的用戶名和密碼,然后數(shù)據(jù)庫會自動進行查找相關數(shù)據(jù),如果輸入賬號或密碼錯誤,系統(tǒng)會提示重新登錄。反之,進入系統(tǒng),就可以根據(jù)選擇對系統(tǒng)進行各種管理操作。是否登錄是否登錄注冊餐廳外賣系統(tǒng)留言否我的信息會員開始提交訂單我的訂單查看瀏覽公告瀏覽菜品選擇餐廳外賣系統(tǒng)修改個人信息修改登錄密碼圖4.2登錄界面流程圖

4.1.3管理員界面功能設計是否登錄是否登錄登錄菜品管理查看訂單信息否信息維護管理員開始添加菜品進行留言管理公告管理刪除某個菜品修改菜品信息分配權限修改登錄密碼圖4.3管理員界面功能設計圖4.2數(shù)據(jù)庫結構分析4.2.1數(shù)據(jù)庫表設計一個計算機信息系統(tǒng)的基礎就是數(shù)據(jù)庫的建立,也是一個電腦系統(tǒng)的關鍵與核心。通過數(shù)據(jù)庫的好壞直接決定了整個系統(tǒng)的存活問題。概念模式它主要是建立在數(shù)據(jù)需求分析的基礎上,它通常是用概念數(shù)據(jù)模型來表示各個數(shù)據(jù)之間的聯(lián)系,并且對系統(tǒng)用戶進行信息的處理和管理,同時建立起E-R圖來表示具體的實體、屬性和聯(lián)系的關系。數(shù)據(jù)模型中的實體(Entity),也稱為實例,對應現(xiàn)實世界中可區(qū)別于其他對象的“事件”或“事物”。例如,公司中的每個員工,家里中的每個家具。本次使用的數(shù)據(jù)庫都是通過代碼進行設計,沒有使用具體的可視化軟件。根據(jù)各個模塊之間的邏輯關系設計了7個數(shù)據(jù)表,具體如下:用戶信息表,用來保存系統(tǒng)用戶的資料,包括用戶的角色,性別,等等個人信息;菜品信息表的主鍵是序號,此序號除了標識菜品信息的內(nèi)容,還區(qū)分了顯示內(nèi)容的順序,留言表的主鍵同樣是序號,因為它是針對某個菜品的,所以他的外鍵是菜品的序號。表4.1用戶列表序號字段名類型長度字段描述1IDint用戶標識2logonamenvarchar24用戶名,登錄時所用3loginpwnvarchar32用用戶的登錄密碼4namenvarchar8用戶的姓名5sexvarchar32性別6agebit年齡7addressvarchar64地址8telvarchar32用戶的聯(lián)系電話9emailvarchar32用戶的郵箱10qqvarchaQQ表4.2菜品列表序號字段名數(shù)據(jù)類型長度字段描述1IDint菜品品的唯一標識2Catalog_idint菜品類別3Namenvarchar32姓名4jieshaonvarchar32介紹5jiagenvarchar256價格6fujiannvarchar32圖片7fujianyuanshiminnvarchar256圖片8Shijiandatetime菜品提交的時間表4.3留言列表序號字段名數(shù)據(jù)類型長度字段描述1IDint唯一標識2titlenvarchar50標題3contentnvarchar50內(nèi)容5shijiannvarchar50時間6User_idint50用戶ID表4.4管理員列表序號字段名數(shù)據(jù)類型長度字段描述1IDint唯一標識2userIDnvarchar50標題3userPWnvarchar50內(nèi)容表4.5類別列表序號字段名數(shù)據(jù)類型長度字段描述1IDint唯一標識2namenvarchar50名稱3jieshaonvarchar50介紹4delnvarchar50備注表4.6公告列表序號字段名數(shù)據(jù)類型長度字段描述1IDint唯一標識2titlenvarchar50標題3contentnvarchar5000內(nèi)容4shijiannvarchar50備注表4.7訂單列表序號字段名數(shù)據(jù)類型長度字段描述1IDint唯一標識2shuliangnvarchar50標題3songhuodizhinvarchar5000內(nèi)容4fukuanfangshinvarchar50備注5Goods_IDint10商品編號6User_IDnvarchar10用戶7zhuangtainvarchar10狀態(tài)8delnvarchar10操作4.2.2數(shù)據(jù)庫設計E-R圖本系統(tǒng)數(shù)據(jù)庫E-R圖如圖4.4所示。圖4.4數(shù)據(jù)庫E-R圖5系統(tǒng)實現(xiàn)5.1首頁界面用戶進入系統(tǒng)首頁可以查看我的信息、我的論壇以及查看菜品信息、在線下單訂餐等操作。首頁界面如下圖所示;圖5.1首頁界面界面5.1.1用戶注冊模塊如圖5.2,員工通過添加個人信息進行注冊成為會員后登錄系統(tǒng)開始下單訂餐。用戶注冊界面如下圖所示:圖5.2用戶注冊界面實現(xiàn)主要代碼:publicclassTUserDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TUserDAO.class); protectedvoidinitDao() { //donothing } publicvoidsave(TUsertransientInstance) { log.debug("savingTUserinstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TUserpersistentInstance) { log.debug("deletingTUserinstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } }

5.2.2菜品信息模塊 菜品信息模塊,如圖5.3。用戶進入系統(tǒng)可以查看網(wǎng)站菜品信息并在線購買各類菜品。用戶可以通過菜品類別查找自己想要購買的菜品。菜品信息如圖5-11所示:圖5.3菜品信息界面相關代碼:publicclassTGoodsDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TGoodsDAO.class); //propertyconstants publicstaticfinalStringGOODS_NAME="goodsName"; publicstaticfinalStringGOODS_MIAOSHU="goodsMiaoshu"; publicstaticfinalStringGOODS_PIC="goodsPic"; publicstaticfinalStringGOODS_YANSE="goodsYanse"; publicstaticfinalStringGOODS_SHICHANGJIA="goodsShichangjia"; publicstaticfinalStringGOODS_TEJIA="goodsTejia"; publicstaticfinalStringGOODS_ISNOTTEJIA="goodsIsnottejia"; publicstaticfinalStringGOODS_ISNOTTUIJIAN="goodsIsnottuijian"; publicstaticfinalStringGOODS_CATELOG_ID="goodsCatelogId"; protectedvoidinitDao() { //donothing } publicvoidsave(TGoodstransientInstance) { log.debug("savingTGoodsinstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TGoodspersistentInstance) { log.debug("deletingTGoodsinstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } } publicTGoodsfindById(java.lang.Integerid) { log.debug("gettingTGoodsinstancewithid:"+id); try { TGoodsinstance=(TGoods)getHibernateTemplate().get( "com.model.TGoods",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicListfindAllLiuYan(intgid) { log.debug("findingallTLiuyaninstances"); try { StringqueryString="fromTPlasmodelwheremodel.gId="+gid; returngetHibernateTemplate().find(queryString); }catch(RuntimeExceptionre) { log.error("findallfailed",re); throwre; } } publicListfindByExample(TGoodsinstance) { log.debug("findingTGoodsinstancebyexample"); try { Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre) { log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue) { log.debug("findingTGoodsinstancewithproperty:"+propertyName +",value:"+value); try { StringqueryString="fromTGoodsasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre) { log.error("findbypropertynamefailed",re); throwre; } }

5.2.3我的購物車模塊 我的購物車模塊,如圖5.4。用戶將想要購買的菜品加入購物車,對購物車進行清空、繼續(xù)下單等操作。圖5.4我的購物車界面相關代碼: privatestaticfinalLoglog=LogFactory.getLog(TOrderItemDAO.class); //propertyconstants publicstaticfinalStringORDER_ID="orderId"; publicstaticfinalStringGOODS_ID="goodsId"; publicstaticfinalStringGOODS_QUANTITY="goodsQuantity"; protectedvoidinitDao() { //donothing } publicvoidsave(TOrderItemtransientInstance) { log.debug("savingTOrderIteminstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } }5.2.4網(wǎng)站論壇模塊 網(wǎng)站論壇模塊,如圖5.5所示。用戶添加論壇標題和內(nèi)容點擊提交留言可以進行在線留言以及查看管理員回復內(nèi)容等操作。圖5.5網(wǎng)站論壇界面相關代碼:publicclassTLiuyanDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TLiuyanDAO.class); //propertyconstants publicstaticfinalStringLIUYAN_TITLE="liuyanTitle"; publicstaticfinalStringLIUYAN_CONTENT="liuyanContent"; protectedvoidinitDao() { //donothing } publicvoidsave(TLiuyantransientInstance) { log.debug("savingTLiuyaninstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoidsave(TPltransientInstance) { log.debug("savingTLiuyaninstance"); try { getHibernateTemplate().save(transientInstance); log.debug("savesuccessful"); }catch(RuntimeExceptionre) { log.error("savefailed",re); throwre; } } publicvoiddelete(TLiuyanpersistentInstance) { log.debug("deletingTLiuyaninstance"); try { getHibernateTemplate().delete(persistentInstance); log.debug("deletesuccessful"); }catch(RuntimeExceptionre) { log.error("deletefailed",re); throwre; } } publicTLiuyanfindById(java.lang.Integerid) { log.debug("gettingTLiuyaninstancewithid:"+id); try { TLiuyaninstance=(TLiuyan)getHibernateTemplate().get( "com.model.TLiuyan",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicTGoodsfindTGoodsById(java.lang.Integerid) { log.debug("gettingTLiuyaninstancewithid:"+id); try { TGoodsinstance=(TGoods)getHibernateTemplate().get( "com.model.TGoods",id); returninstance; }catch(RuntimeExceptionre) { log.error("getfailed",re); throwre; } } publicListfindByExample(TLiuyaninstance) { log.debug("findingTLiuyaninstancebyexample"); try { Listresults=getHibernateTemplate().findByExample(instance); log.debug("findbyexamplesuccessful,resultsize:" +results.size()); returnresults; }catch(RuntimeExceptionre) { log.error("findbyexamplefailed",re); throwre; } } publicListfindByProperty(StringpropertyName,Objectvalue) { log.debug("findingTLiuyaninstancewithproperty:"+propertyName +",value:"+value); try { StringqueryString="fromTLiuyanasmodelwheremodel." +propertyName+"=?"; returngetHibernateTemplate().find(queryString,value); }catch(RuntimeExceptionre) { log.error("findbypropertynamefailed",re); throwre; } }});

5.3管理員模塊管理員登錄之后顯示的界面主要有6個模塊,如圖5.6所示,包括密碼修改、用戶管理、類別管理、添加類別、菜品管理、添加菜品、訂單管理、網(wǎng)站論壇等。界面以簡明清晰為主,減少管理員的操作量。圖5.6管理員登錄界面5.3.1密碼修改管理員通過輸入正確的登錄名和原密碼進行修改登錄密碼。修改登錄密碼重新登錄需要輸入新密碼才可以登錄系統(tǒng)。如圖5.7所示。圖5.7密碼修改界面相關代碼:packagecom.dao;importjava.util.List;importmons.logging.Log;importmons.logging.LogFactory;importorg.hibernate.LockMode;importorg.springframework.context.ApplicationContext;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importcom.model.TAdmin;/***Dataaccessobject(DAO)fordomainmodelclassTAdmin.**@seecom.model.TAdmin*@authorMyEclipsePersistenceTools*/publicclassTAdminDAOextendsHibernateDaoSupport{ privatestaticfinalLoglog=LogFactory.getLog(TAdminDAO.class); //propertyconstants publicstaticfinalStringUSER_NAME="userName"; publicstaticfinalStringUSER_PW="userPw"; protectedvoidinitDao(){ //donothing }5.3.2用戶管理模塊用戶管理模塊主要用于已經(jīng)注冊成為會員的用戶、管理員對其進行查看以及刪除等操作。如圖5.8所示。圖5.8用戶管理界面相關代碼:publicStringuserReg() { Mapsession=ServletActionContext.getContext().getSession(); Stringoldcode=session.get("certCode").toString(); if(oldcode.equals(code)){ TUseruser=newTUser(); user.setUserName(userName); user.setUserPw(userPw); user.setUserAddress(userAddress); user.setUserTel(userTel); user.setUserRealname(userRealname); user.setUserEmail(userEmail); user.setUserSex(userSex); user.setUserQq(userQq); user.setUserDel("no"); userDAO.save(user); session.put("user",user); return"successAdd"; }else{ return"failAdd";5.3.3類別管理模塊類別管理模塊主要用于管理員對類別信息進行添加、刪除、修改以及查看操作。如圖5.9所示:圖5.9類別管理界面相關代碼:packagecom.action;importjava.util.List;importjava.util.Map;importorg.apache.struts2.ServletActionContext;importcom.dao.TCatelogDAO;importcom.dao.TGoodsDAO;importcom.model.TCatelog;importcom.opensymphony.xwork2.ActionSupport;publicclasscatelogActionextendsActionSupport{ privateintcatelogId; privateStringcatelogName; privateStringcatelogMiaoshu; privateStringmessage; privateStringpath; privateTCatelogDAOcatelogDAO; privateTGoodsDAOgoodsDAO; publicStringcatelogMana() { Stringsql="fromTCatelogwherecatelogDel='no'"; ListcateLogList=catelogDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("cateLogList",cateLogList); returnActionSupport.SUCCESS; } 5.3.4菜品管理模塊菜品管理模塊主要實現(xiàn)管理員對菜品ID、菜品名稱、介紹、類別、圖片、價格等屬性進行添加、刪除、修改以及查看等操作。如圖5.10。圖5.10菜品管理列表相關代碼:packagecom.action;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Date;importjava.util.List;importjava.util.Map;importorg.apache.struts2.ServletActionContext;importcom.dao.TCatelogDAO;importcom.dao.TGoodsDAO;importcom.model.TCatelog;importcom.model.TGoods;importcom.opensymphony.xwork2.ActionSupport;publicclassgoodsActionextendsActionSupport{ privateintgoodsId; privateintgoodsCatelogId; privateStringgoodsName; privateStringgoodsMiaoshu; privateStringfujian; privateStringgoodsYanse; privateintgoodsShichangjia; privateintgoodsTejia; privateStringgoodsCj; privateintcatelogId; privateintgoodsKucun; privateStringmessage; privateStringpath; privateTGoodsDAOgoodsDAO; privateTCatelogDAOcatelogDAO; privateintrukushuliang; publicStringgoodsNoTejiaAdd() { TGoodsgoods=newTGoods(); goods.setGoodsCatelogId(goodsCatelogId); goods.setGoodsName(goodsName); goods.setGoodsYanse(goodsYanse); goods.setGoodsMiaoshu(goodsMiaoshu); goods.setGoodsPic(fujian); goods.setGoodsCj(goodsCj); goods.setGoodsShichangjia(goodsShichangjia); if(goodsTejia==0)//特格為0表示沒有特價 { goods.setGoodsTejia(goodsShichangjia);//如果不是特價。把這個的特價設置為市場價格 goods.setGoodsIsnottejia("no"); } else { goods.setGoodsTejia(goodsTejia); goods.setGoodsIsnottejia("yes"); } goods.setGoodsKucun(goodsKucun); goods.setGoodsDel("no"); goodsDAO.save(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsM() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsCatelogId(goodsCatelogId); goods.setGoodsName(goodsName); goods.setGoodsYanse(goodsYanse); goods.setGoodsMiaoshu(goodsMiaoshu); goods.setGoodsPic(fujian); goods.setGoodsCj(goodsCj); goods.setGoodsShichangjia(goodsShichangjia); if(goodsTejia==0)//特格為0表示沒有特價 { goods.setGoodsTejia(goodsShichangjia);//如果不是特價。把這個的特價設置為市場價格 goods.setGoodsIsnottejia("no"); } else { goods.setGoodsTejia(goodsTejia); goods.setGoodsIsnottejia("yes"); } goods.setGoodsKucun(goodsKucun); goods.setGoodsDel("no"); goodsDAO.merge(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsNoTejiaDel() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsDel("yes"); goodsDAO.attachDirty(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsManaNoTejia() { Stringsql="fromTGoodswheregoodsDel='no'orderbygoodsIsnottejia"; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); for(inti=0;i<goodsList.size();i++) { TGoodsgoods=(TGoods)goodsList.get(i); System.out.println(goods.getGoodsCatelogId()); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); } Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; } publicStringgoodsmb() { TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("bean",goods); returnActionSupport.SUCCESS; } 5.3.5訂單管理模塊管理員對用戶訂單信息查看明細、受理訂單以及刪除訂單等操作。如圖5.11所示:圖5.11訂單管理實現(xiàn)主要代碼:publicStringorderMana() { Stringsql="fromTOrderorderbyorderUserId"; ListorderList=orderDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS; } publicStringorderDel()//用戶自己刪除訂單 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Mapsession=ServletActionContext.getContext().getSession(); TUseruser=(TUser)session.get("user"); this.setMessage("刪除成功"); this.setPath("myOrder.action?userId="+user.getUserId()); return"succeed"; } publicStringorderDelByAd()//管理員刪除訂單 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Stringsql="deletefromTOrderItemwhereorderId="+orderId; orderItemDAO.getHibernateTemplate().bulkUpdate(sql); this.setMessage("刪除成功"); this.setPath("orderMana.action"); return"succeed"; } publicStringorderShouli() { TOrderorder=orderDAO.findById(orderId); order.setOrderZhuangtai("yes");//已經(jīng)受理訂單 orderDAO.attachDirty(order); this.setMessage("受理訂單成功"); this.setPath("orderMana.action"); return"succeed"; } 5.3.6網(wǎng)站論壇模塊管理員對用戶留言信息進行查看以及刪除權限。如圖5.12所示:圖5.12網(wǎng)站論壇實現(xiàn)主要代碼;publicStringliuyanAdd2() { TPlliuyan=newTPl(); liuyan.setLiuyanContent(liuyanContent); liuyan.setLiuyanDate(newDate().toLocaleString()); Mapsession=ActionContext.getContext().getSession(); if(session.get("user")!=null) { TUseruser=(TUser)session.get("user"); liuyan.setLiuyanUser(user.getUserName()); } TGoodsgoods=liuyanDAO.findTGoodsById(liuyanId); liuyan.setgId(goods.getGoodsId()); liuyanDAO.save(liuyan); this.setMessage("評論成功"); return"succeed"; } publicStringliuyanDel() { TLiuyanl

溫馨提示

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

評論

0/150

提交評論