




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE本科畢業(yè)論文(設(shè)計(jì))題目在線訂餐系統(tǒng)設(shè)計(jì)學(xué)生指導(dǎo)教師年級(jí)2011級(jí)專業(yè)電子信息工程二級(jí)學(xué)院信息工程學(xué)院信息工程學(xué)院2015年5月鄭重聲明本人的畢業(yè)論文(設(shè)計(jì))是在指導(dǎo)教師的指導(dǎo)下獨(dú)立撰寫完成的。如有剽竊、抄襲、造假等違反學(xué)術(shù)道德、學(xué)術(shù)規(guī)范和侵權(quán)的行為,本人愿意承擔(dān)由此產(chǎn)生的各種后果,直至法律責(zé)任,并愿意通過網(wǎng)絡(luò)接受公眾的監(jiān)督。特此鄭重聲明。畢業(yè)論文(設(shè)計(jì))作者(簽名):年月日PAGEII在線訂餐系統(tǒng)的設(shè)計(jì)摘要當(dāng)今社會(huì),生活節(jié)奏的加快,使的人們對(duì)就餐時(shí)間和方式有了更高的要求,21世紀(jì)來,互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,結(jié)合了餐飲業(yè)和計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)上訂餐因運(yùn)而生。不僅解決了人們對(duì)快捷要求的需求,也是電子商務(wù)的一種全新的體現(xiàn)。本控制系統(tǒng)采用Java代碼來編寫,分為前臺(tái)和后臺(tái)兩個(gè)大的模塊,前臺(tái)是用戶的訂餐頁面,包括登錄、注冊(cè)、選購、下單、和對(duì)訂單的跟蹤。后臺(tái)為管理員和系統(tǒng)管理員兩部分組成,系統(tǒng)管理員可以增加管理員的人數(shù),管理員可以對(duì)后臺(tái)物資進(jìn)行,添加、刪除、修改的操作,對(duì)訂單物資進(jìn)行倒表進(jìn)行查看,對(duì)用戶留言反饋處理。本系統(tǒng)功能齊全,頁面清楚簡單,用戶可以方便的對(duì)相應(yīng)的模塊進(jìn)行查看和下單,使的購餐方便快捷。關(guān)鍵詞:訂餐系統(tǒng)JavaWebSSH
TheDesignOfTheOnlineReservationSystemHuZhifangDirectedbythelecturerZhangZhilaiABSTRACTIntoday'ssociety,theacceleratingrhythmoflife,makepeoplehaveahigherrequestfordinnertimeandway,tothe21stcentury,therapiddevelopmentofInternettechnology,combinedwithcateringandcomputernetworkonlineorderforshipment.Notonlysolvedthepeopledemandforquickrequest,alsoisakindofnewelectroniccommerce.ThiscontrolsystemUSESJavacodetowrite,isdividedintoforegroundandbackgroundtwomodules,frontdeskistheuser'sorderpage,includinglogin,register,thechooseandbuy,order,andtrackingontheorder.Backgroundfortheadministratorandsystemadministratorsintwoparts,thesystemadministratorcanincreasethenumberofadministrator,theadministratorcanonthebackgroundmaterial,add,delete,modifyoperations,ordermaterialfortableview,ontheuserfeedbackmessageprocessing.Thesystemfullyfunctional,simplepageisclear,theusercanconvenienttoviewandorderofthecorrespondingmodule,maketheorderofconvenientandquick.KEYWORDS:ReservationSystemJavaWebSSHPAGEPAGE2目錄32125前言 1282651背景介紹 2226031.1在線訂餐系統(tǒng)的背景 2272351.2研究的目的及其意義 2296482需求分析 3193602.1可行性分析 336752.1.1經(jīng)濟(jì)可行性 3133982.1.2技術(shù)可行性 3209422.2需求分析 4320972.2.1功能性需求 461812.2.2功能劃分 4130732.2.3非功能性需求 455233系統(tǒng)設(shè)計(jì) 5136733.1設(shè)計(jì)思路 572343.1.1系統(tǒng)的設(shè)計(jì)思路 5326003.1.2系統(tǒng)的設(shè)計(jì)步驟 638813.2訂餐用例圖設(shè)計(jì) 6298703.3數(shù)據(jù)庫設(shè)計(jì) 711873.3.1概念模型設(shè)計(jì) 7217333.3.2數(shù)據(jù)庫的邏輯設(shè)計(jì) 7242333.3.3數(shù)據(jù)表設(shè)計(jì) 784323.4Struts2框架 935424系統(tǒng)實(shí)現(xiàn) 10298624.1系統(tǒng)首頁 1075874.2注冊(cè)用戶 1162894.3登錄 11234284.4管理員用戶操作 12305014.4.1添加物資類別 12142724.4.2顯示物資類別 13145024.4.3增加物資 14138874.4.4顯示物資 1590324.5會(huì)員和普通用戶操作 15139904.5.1瀏覽商品 16221384.5.2查看物資明細(xì) 1674824.5.3購物車 1713085系統(tǒng)測試和分析 1710915.1測試環(huán)境 17247935.2測試過程 184255.3系統(tǒng)分析 18280155.4數(shù)據(jù)庫分析 18106706結(jié)論 1930636參考文獻(xiàn) 2016690致謝 2122292附錄 22PAGEPAGE29前言二十一世紀(jì)是信息化、知識(shí)化的世紀(jì),隨著社會(huì)的進(jìn)步、計(jì)算機(jī)應(yīng)用迅猛的發(fā)展和網(wǎng)絡(luò)應(yīng)用的不斷擴(kuò)大,使的傳統(tǒng)訂餐的形式有了極大的擴(kuò)充,人們訂餐變得更加的便捷。基于Web的網(wǎng)上訂餐系統(tǒng),就是一種基于計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)上訂餐形式,它的出現(xiàn),大大地?cái)U(kuò)展了現(xiàn)行訂餐的方式,使餐飲擺脫了空間和時(shí)間上的束縛,任何人,只要會(huì)上網(wǎng),都可以坐在電腦前面,方便地進(jìn)行上網(wǎng)訂餐,這可以說是對(duì)餐飲業(yè)的一次革命。相比傳統(tǒng)的訂餐方式,網(wǎng)上訂餐系統(tǒng)使用起來非常方便,只要是能夠上網(wǎng)的地方,人們都能夠輕松使用系統(tǒng)的所有功能。而今網(wǎng)絡(luò)技術(shù)的突飛猛進(jìn),發(fā)展迅速,新技術(shù)產(chǎn)生速度是以前的數(shù)十倍。網(wǎng)上訂餐可以用聲音、文字、圖像等加以直觀的展示出來,給顧客留下非常深刻的視覺印象,有利于增加潛在的訂餐顧客。所以可以肯定的說,網(wǎng)上訂餐的前景是非常廣闊地,可擴(kuò)展性非常的好。因此,開發(fā)一個(gè)在線訂餐系統(tǒng)是十分必要的,通過前臺(tái)餐飲商品信息的展示,添加購物車,結(jié)算下單的模式形成餐飲企業(yè)的電子商務(wù)平臺(tái),通過后臺(tái)的庫存系統(tǒng),整合餐飲企業(yè)的供應(yīng)鏈,提高其在信息化環(huán)境下的管理水平,對(duì)現(xiàn)在激烈競爭的餐飲行業(yè)中求發(fā)展的餐飲企業(yè)來說,無疑是福音。我們對(duì)餐飲企業(yè)菜品和材料標(biāo)準(zhǔn)化地處理,大大減小了企業(yè)的庫存成本,提高餐飲企業(yè)的經(jīng)濟(jì)效益。為人類飲食文明和對(duì)社會(huì)的發(fā)展起到一定的推動(dòng)作用,也對(duì)以后自己工作帶來有益的影響。背景介紹本部分主要介紹在線訂餐系統(tǒng)的背景和研究的目的和意義。在線訂餐系統(tǒng)的背景21世紀(jì),全球網(wǎng)絡(luò)化,科技在突飛猛進(jìn)。我們的生活同網(wǎng)絡(luò)通信息息相關(guān)。計(jì)算機(jī)已經(jīng)普及到我們社會(huì)和經(jīng)濟(jì)生活中的各個(gè)領(lǐng)域中。人們進(jìn)行信息交流的深度與廣度不斷在增加著,這使得我們的服務(wù),管理也應(yīng)該跟上時(shí)代步伐去前行。電子商務(wù)在此得到極大地普及與發(fā)展。餐飲業(yè)在電子商務(wù)中還處于形成初期;傳統(tǒng)飲食業(yè)中,大都是以實(shí)際門面的形式來進(jìn)行宣傳與交流的。作為網(wǎng)絡(luò)普遍化的社會(huì),這還缺少了一些更為現(xiàn)代化的元素。餐飲業(yè)是一種個(gè)性化、多樣化的服務(wù)產(chǎn)業(yè),而電子商務(wù)是最能體現(xiàn)個(gè)性化、多樣化服務(wù)的商務(wù)方式。而且現(xiàn)在大部分電子商務(wù)都體現(xiàn)的像大企業(yè)服務(wù),結(jié)合餐飲這個(gè)特殊行業(yè),終將還發(fā)展為向小區(qū)域小店鋪服務(wù)的模式。以最貼切的方式,最靈便的服務(wù)進(jìn)入各個(gè)網(wǎng)絡(luò)社區(qū),進(jìn)入人們的生活。漸漸更多地人接受了電子商務(wù)這種簡便、快速的網(wǎng)上交易形式,網(wǎng)上訂餐系統(tǒng)的順勢(shì)而出很快受到了大家的歡迎。互聯(lián)網(wǎng)的應(yīng)用已經(jīng)漸漸普及到千家萬戶,這為網(wǎng)上訂餐提供了良好的發(fā)展空間。同時(shí),網(wǎng)上訂餐系統(tǒng)服務(wù)的直觀、有效、便捷等優(yōu)點(diǎn)是傳統(tǒng)電話訂餐業(yè)務(wù)無法比擬地。通過調(diào)查數(shù)據(jù)顯示,北京白領(lǐng)更樂于去選擇網(wǎng)上訂餐服務(wù),網(wǎng)上訂餐將是白領(lǐng)一族捕獲餐店信息、進(jìn)行訂餐的發(fā)展趨勢(shì)。網(wǎng)絡(luò)在線訂餐系統(tǒng)隨著互聯(lián)網(wǎng)的成長會(huì)逐漸被人們所喜愛,正如幾年前手機(jī)移動(dòng)短信一樣,為企業(yè)帶來幾百個(gè)億的業(yè)務(wù)收入。在互聯(lián)網(wǎng)世界里面,誰早一步在應(yīng)用上創(chuàng)新,誰就掌握了未來的方向,品牌更是一炮打紅,網(wǎng)上訂餐,看到的希望是希望,看到的泡沫是泡沫。研究的目的及其意義網(wǎng)絡(luò)訂餐可充通過色彩、圖片、說明、設(shè)置動(dòng)畫加強(qiáng)產(chǎn)品的宣傳,達(dá)到了餐飲業(yè)的“色型”要求。而該系統(tǒng)實(shí)現(xiàn)商品管理方便,不用因?yàn)楦牟松匦掠∷ⅰV灰诤笈_(tái)鼠標(biāo)輕輕一點(diǎn),全線馬上就會(huì)更新。采用B/S模式,訂餐者無須去安裝第三方軟件,只要上網(wǎng)就能訂餐,甚至可以利用手機(jī)上網(wǎng)訂餐,使操作更加簡便,訂餐信息更加準(zhǔn)確。避免口頭傳遞信息的錯(cuò)誤,優(yōu)化服務(wù)。網(wǎng)絡(luò)不會(huì)跟電話一樣占線,在高峰期對(duì)訂餐的處理更是游刃有余,只看著屏幕點(diǎn)打印即可,就可下廚房配菜配送。地址永遠(yuǎn)不會(huì)丟失,是一個(gè)永遠(yuǎn)存在的電子菜單,甚至還可以通過網(wǎng)上的推廣而讓更多的客人認(rèn)識(shí),不用派人去發(fā)宣傳單,可以省去一筆宣傳和人工費(fèi)用。訂餐途徑有了更好的改善,網(wǎng)絡(luò)訂餐成為電話訂餐又一有力補(bǔ)充,擴(kuò)大客流,從而整體提高業(yè)務(wù)量。倡導(dǎo)了一種時(shí)尚,餐店的定位更是網(wǎng)絡(luò)化,時(shí)尚化,具備更為勃勃的生機(jī)。緩解了食堂的擁擠的困境,為食堂提供更為輕松的環(huán)境。有時(shí)間的提前性,方便統(tǒng)籌安排,集中處理。采用會(huì)員制度,設(shè)立積分換贈(zèng)送,營銷手段更是利用得淋漓盡致。可以設(shè)立團(tuán)體會(huì)員制,利用贈(zèng)品或優(yōu)惠,擴(kuò)大市場份額。利用網(wǎng)頁技術(shù),展示本公司的精品,增強(qiáng)吸引力。詳細(xì)介紹每一個(gè)產(chǎn)品,展現(xiàn)公司周到、細(xì)微的服務(wù)。容易形成品牌和連鎖經(jīng)營,即使沒有合適的店面,主要配送隊(duì)伍健全,一個(gè)店面,就可以做全市生意。訂餐者省電話費(fèi),實(shí)現(xiàn)雙盈。提供了交流的平臺(tái),實(shí)現(xiàn)消費(fèi)者可貴信息的反饋和交流。方便統(tǒng)計(jì)和查詢,分析經(jīng)營來得更直接,企業(yè)創(chuàng)新,跟得上市場的需要。需求分析本部分從經(jīng)濟(jì)可行性和技術(shù)可行性分析得出系統(tǒng)開發(fā)的可行性,從功能性需求和功能劃分了解系統(tǒng)的實(shí)現(xiàn)功能,非功能性需求來介紹開發(fā)的工具。可行性分析經(jīng)濟(jì)可行性本項(xiàng)目的特殊性,使其無需投入額外設(shè)備費(fèi)用和人員培訓(xùn)的費(fèi)用,所以在經(jīng)濟(jì)上本項(xiàng)目的開發(fā)是完全可行的。此外本項(xiàng)目對(duì)開發(fā)的需求以及軟硬件要求都不是很高,所以在軟硬件的支出上十分有限。因此,本系統(tǒng)在任何一臺(tái)連接Internet地機(jī)器上都可以運(yùn)行操作,有很高的經(jīng)濟(jì)可行性。按照上述兩方面進(jìn)行可行性分析、研究后,我認(rèn)為本項(xiàng)目在技術(shù)上是可行的,在經(jīng)濟(jì)上也是沒問題的,所以完全可以進(jìn)行開發(fā)。技術(shù)可行性本系統(tǒng)選擇JSP作為頁面開發(fā)語言,選擇Oracle作為后臺(tái)數(shù)據(jù)庫,采用B/S結(jié)構(gòu),使用JDBC連接池來連接數(shù)據(jù)庫。而JSP可以創(chuàng)建和運(yùn)用動(dòng)態(tài)、交互的WEB服務(wù)器應(yīng)用程序。同時(shí),JSP也具有向跨平臺(tái)跨服務(wù)器的優(yōu)點(diǎn)。Oracle11g是一個(gè)杰出成功的數(shù)據(jù)庫平臺(tái),具有功能強(qiáng)大,安全可靠等特點(diǎn),可用于大型聯(lián)機(jī)的事務(wù)處理、數(shù)據(jù)倉庫及電子商務(wù)等。所以在技術(shù)理論方面上是可行的需求分析功能性需求該系統(tǒng)在性能功能應(yīng)達(dá)到如下要求。(1)操作簡單,界面美觀:空間式的頁面布局,使得菜品、咨詢等信息錄入工作變得更簡單;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時(shí)了解自己的操作情況。對(duì)常見類似的網(wǎng)站管理的各個(gè)方面:基本信息的錄入、瀏覽、刪除、修改、搜索等方面都大體實(shí)現(xiàn),用戶對(duì)餐品的預(yù)定以及支付方式。(2)即使可見:對(duì)客戶預(yù)定餐飲信息處理(包括錄入、刪除)將立即在首頁對(duì)應(yīng)的欄目顯示出來,達(dá)到“即時(shí)發(fā)布,即時(shí)見效”的功能。(3)系統(tǒng)運(yùn)行應(yīng)該快速、穩(wěn)定、高效、可靠。(4)在結(jié)構(gòu)上應(yīng)該具有很好的可擴(kuò)展性,便于將來功能擴(kuò)展和維護(hù)。功能劃分本系統(tǒng)的主要功能是以用戶以及管理員擴(kuò)展開來的,下面簡單介紹下本系統(tǒng)的一些主要功能。(1)對(duì)于普通用戶,具有下列功能:注冊(cè):可以注冊(cè)成為會(huì)員,管理自己信息,對(duì)餐品進(jìn)行下單。瀏覽菜單:可以查看所有的餐品但是不能放入購物車和下單。(2)對(duì)于會(huì)員用戶,具有下列功能:登錄:用系統(tǒng)號(hào)登錄,顯示會(huì)員用戶頁面。個(gè)人信息管理:可以查看、修改個(gè)人信息,修改密碼。留言反饋:可以對(duì)餐品提出個(gè)人看法,并且提交。下單:會(huì)員可以購買餐品,進(jìn)行下單。(3)對(duì)于管理員,具有以下功能:會(huì)員管理:對(duì)會(huì)員用戶進(jìn)行查看和查封操作。物資管理:對(duì)餐品物資進(jìn)行添加、刪除、修改的操作。訂單管理:對(duì)會(huì)員訂單進(jìn)行導(dǎo)出報(bào)表查看。留言管理:可以查看、審核用戶的留言。頁面維護(hù):對(duì)頁面的顯示商品進(jìn)行選擇。非功能性需求選擇微軟IE平臺(tái)作為主導(dǎo),是考慮到當(dāng)前大多數(shù)的企業(yè)在設(shè)計(jì)內(nèi)部網(wǎng)絡(luò)時(shí),將微軟IE平臺(tái)作為首選方案;并且微軟IE平臺(tái)上的應(yīng)用在開發(fā)和軟件的配置上都非常容易,具體如下。(1)開發(fā)工具:MyEclipse10。(2)輔助開發(fā)工具:DreamweaverCS3,notepad++,PLSQLDeveloper。(3)數(shù)據(jù)庫:Oracle10g。(4)服務(wù)器:ApacheTomcat6.0。(5)運(yùn)行環(huán)境:安裝JDK1.6支持Java運(yùn)行。(6)技術(shù):前臺(tái)頁面的設(shè)計(jì)應(yīng)用JSP技術(shù)開發(fā)制作。采用Struts2框架響應(yīng)用戶業(yè)務(wù)邏輯的請(qǐng)求,并對(duì)用戶的請(qǐng)求在Action中處理理后將相應(yīng)JSP頁面發(fā)送給客戶,相應(yīng)的數(shù)據(jù)庫操作則是由Hibernate來進(jìn)行操作的。系統(tǒng)設(shè)計(jì)設(shè)計(jì)思路該系統(tǒng)用戶分為游客、會(huì)員和管理員,不同的用戶會(huì)有不同的操作,然后由用戶及其角色的功能操作來了解系統(tǒng)的運(yùn)行過程,然后建立需求用例,設(shè)計(jì)數(shù)據(jù)表,整合框架,最后編寫和調(diào)試代碼。系統(tǒng)的設(shè)計(jì)思路俗話說的好,巧婦難為無米之炊,一個(gè)系統(tǒng)也是一樣要想設(shè)計(jì)一個(gè)完整的系統(tǒng),首先要構(gòu)想出來這個(gè)系統(tǒng)的大體流程和功能模塊,然后才能在此基礎(chǔ)上建立需求,設(shè)計(jì)數(shù)據(jù)表等后續(xù)工作,下圖便是在想訂餐系統(tǒng)的系統(tǒng)設(shè)計(jì)構(gòu)想運(yùn)行圖。圖3-1系統(tǒng)設(shè)計(jì)構(gòu)想運(yùn)行圖系統(tǒng)的設(shè)計(jì)步驟(1)建立需求用例圖先想好系統(tǒng)的大體框架,編寫需求文檔,在UML軟件中按照需求分析繪制出各個(gè)功能的用例圖。(2)設(shè)計(jì)數(shù)據(jù)表按照用例圖功能,建立對(duì)應(yīng)的數(shù)據(jù)表,每個(gè)數(shù)據(jù)表設(shè)置一個(gè)狀態(tài)字段,刪除字段時(shí)只需改變狀態(tài)就行,可以保留歷史記錄,每個(gè)表留著幾個(gè)預(yù)留字段,防止以后需求變更造成數(shù)據(jù)表大幅度變化。數(shù)據(jù)表關(guān)聯(lián)字段不用外鍵,數(shù)據(jù)表一多,或是刪除一些數(shù)據(jù)表的字段時(shí)會(huì)造成大量的關(guān)聯(lián)數(shù)據(jù)錯(cuò)誤。(3)整合SSH框架建立Database數(shù)據(jù)連接,整合SSH框架,然后將數(shù)據(jù)表反向生成Java代碼導(dǎo)入MyEclipse,將代碼層次化,建立DAO,BIZ,Action,Utils,VO,Serviceiface,Serviceimple包來存放相應(yīng)的代碼,代碼采用注釋,使的代碼明了化。運(yùn)行Tomcat看是否系統(tǒng)運(yùn)行異常,有異常處理異常,使的系統(tǒng)運(yùn)行正常。(4)編寫代碼按照用例圖來編寫功能模塊的代碼,模塊采用MVC模式,調(diào)用數(shù)據(jù)庫采用Service接口,數(shù)據(jù)庫開放接口,BIZ使用接口來實(shí)現(xiàn)功能。編寫代碼統(tǒng)一采用方法調(diào)用,變量采用方法注入,這樣可以在需求變更,變量改變時(shí)只需變更少量代碼便可實(shí)現(xiàn)。(5)調(diào)試,實(shí)現(xiàn)功能要求調(diào)試系統(tǒng)功能,修復(fù)DEBUG,然后運(yùn)行系統(tǒng),在運(yùn)行中有什么問題及時(shí)修改。訂餐用例圖設(shè)計(jì)用例圖是反應(yīng)各個(gè)角色和系統(tǒng)功能的動(dòng)態(tài)視圖。本系統(tǒng)中用例圖采用UML來進(jìn)行繪畫,而通過用例圖的顯示我們可以更方便、簡單的獲取需求,在后續(xù)的系統(tǒng)設(shè)計(jì)中起到很好的指導(dǎo)作用。下面就介紹游客和會(huì)員用戶的用例圖。圖3-2游客時(shí)序圖游客:可以瀏覽訂餐網(wǎng)站的所有商品,但是不能下單和加入購物車,執(zhí)行非游客操作只能新注冊(cè)用戶,登錄訂餐網(wǎng)站。圖3-3會(huì)員和普通用戶時(shí)序圖會(huì)員和普通用戶:可以執(zhí)行游客的所有操作,除此之外,可以對(duì)商品進(jìn)行購買和下單,對(duì)自己信息進(jìn)行修改維護(hù),密碼丟失的情況可以聯(lián)系管理員進(jìn)行修改密碼,對(duì)網(wǎng)站或是商品也可以提出自己意見對(duì)管理員進(jìn)行留言。數(shù)據(jù)庫設(shè)計(jì)概念模型設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)是將分析得到的用戶需求抽象為信息結(jié)構(gòu)(即概念模型)的過程,它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。數(shù)據(jù)庫的邏輯設(shè)計(jì)數(shù)據(jù)庫的邏輯設(shè)計(jì)分為三個(gè)階段,分別是:用戶要求、建立E-R模型和數(shù)據(jù)庫模式設(shè)計(jì)。數(shù)據(jù)庫邏輯設(shè)計(jì)中的第一階段收集和分析用戶的需求是按以下四步進(jìn)行的:分析用戶活動(dòng),確定系統(tǒng)范圍,分析用戶活動(dòng)所涉及的數(shù)據(jù)和分析系統(tǒng)數(shù)據(jù)。邏輯設(shè)計(jì)第二階段建立E-R模型分兩步,首先應(yīng)進(jìn)行局部E-R模型設(shè)計(jì),然后進(jìn)行總體E-R模型的設(shè)計(jì)。邏輯設(shè)計(jì)第三階段在數(shù)據(jù)庫模式設(shè)計(jì)階段分兩步進(jìn)行,第一步初步設(shè)計(jì),把E-R圖轉(zhuǎn)換為關(guān)系模型,第二步優(yōu)化設(shè)計(jì),對(duì)模式進(jìn)行調(diào)整和改善。數(shù)據(jù)表設(shè)計(jì)根據(jù)用例圖來建立數(shù)據(jù)表,數(shù)據(jù)表是用于存放系統(tǒng)運(yùn)行數(shù)據(jù)和篩選符合用戶需求的數(shù)據(jù),數(shù)據(jù)表的建立可以使得系統(tǒng)有不必?fù)?dān)心數(shù)據(jù)的丟失,也可以根據(jù)數(shù)據(jù)的存儲(chǔ)時(shí)間對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)的跟蹤和維護(hù),所以數(shù)據(jù)表建立的完善程度直接影響了系統(tǒng)的完善程度,也對(duì)后期系統(tǒng)的維護(hù)的難易造成了影響。下面介紹三個(gè)相關(guān)聯(lián)的數(shù)據(jù)表的結(jié)構(gòu)。(1)Ep_user(用戶表)用戶表中存放的是游客注冊(cè)用戶的信息,用戶登錄的時(shí)候會(huì)從用戶表中對(duì)用戶的ID和密碼進(jìn)行檢測,匹配正確后才能登錄首頁。其中的狀態(tài)字段是撤銷用戶或是刪除用戶的字段,0代表刪除,1代表有效,這樣可以更好的保留歷史記錄,其中表中的五個(gè)預(yù)留字段防止以后表3-1ep_user表的結(jié)構(gòu)字段類型是否主鍵是否為空描述Syus_idNumber(10)主鍵否用戶主鍵Syus_user_nameVarchar2(20)否否用戶名Syus_user_passwordVarchar2(20)否否用戶密碼Syus_role_idNumber(5)外鍵否用戶角色I(xiàn)DSyus_mailVarchar2(20)否否用戶郵箱Syus_phoneNumber(11)否否用戶電話Syus_statusNumber(4)否否用戶狀態(tài)Syus_user_addressVarchar2(50)否否用戶地址Syus_create_timedate否是創(chuàng)建時(shí)間Syus_creatorVarchar2(20)否是創(chuàng)建人Syus_oneVarchar2(20)否是預(yù)留字段1Syus_twoVarchar2(20)否是預(yù)留字段2Syus_threeVarchar2(20)否是預(yù)留字段3Syus_fourVarchar2(20)否是預(yù)留字段4Syus_fiveVarchar2(20)否是預(yù)留字段5(2)Ep_order(訂單表)訂單表中存放的是會(huì)員和普通用戶下單成功后存放的訂單信息,用戶可以在訂單瀏覽中查看訂單,管理員可以在后臺(tái)對(duì)用戶下的所有單子進(jìn)行查看,按照訂單的地址進(jìn)行送貨。訂單表中的狀態(tài)字段也是采取0為無效訂單,1為有效訂單的處理方式來保留歷史數(shù)據(jù),表中也有五個(gè)預(yù)留字段來防止以后表結(jié)構(gòu)的變更造成系統(tǒng)大幅度調(diào)整。表3-2ep_order表的結(jié)構(gòu)字段類型是否主鍵是否為空描述Epor_epor_idNumber(10)主鍵否訂單主鍵Epor_epor_noVarchar2(20)否否訂單號(hào)Epor_epor_adressVarchar2(50)否否訂單地址Epor_dscpVarchar2(50)否否申請(qǐng)備注Epor_total_priceNumber(11,2)否否申請(qǐng)總價(jià)Epor_creatorVarchar2(20)否是申請(qǐng)人Epor_create_timedate否是創(chuàng)建時(shí)間Epor_mobileNumber(11)否是申請(qǐng)人手機(jī)Epor_statusNumber(4)否是狀態(tài)Epor_oneVarchar2(20)否是預(yù)留字段1Epor_twoVarchar2(20)否是預(yù)留字段2Epor_threeVarchar2(20)否是預(yù)留字段3Epor_fourVarchar2(20)否是預(yù)留字段4Epor_fiveVarchar2(20)否是預(yù)留字段5Struts2框架Struts2框架是過濾器,攔截器,Struts標(biāo)簽庫等多個(gè)功能集一體的框架,不僅提供了servlet的解耦合方法來獲得jsp頁面的內(nèi)置對(duì)象,還提供了Struts2的標(biāo)簽庫,運(yùn)用Struts2框架可以更好的用于數(shù)據(jù)的交互和頁面的設(shè)計(jì)。而且其也是SSH三大框架整合的基礎(chǔ)框架。本系統(tǒng)中用戶提交請(qǐng)求經(jīng)過Struts2的攔截器,過濾器最后請(qǐng)求到Action中,Action對(duì)其中的要求進(jìn)行篩選,然后調(diào)用BIZ控制層,BIZ控制層調(diào)用Service相應(yīng)的接口,Service接口調(diào)用數(shù)據(jù)庫進(jìn)行相應(yīng)的操作并且封裝,提供BIZ調(diào)用的接口,BIZ調(diào)用接口返回相應(yīng)的結(jié)果,BIZ將相應(yīng)的結(jié)果進(jìn)行處理后回傳到Action中,Action對(duì)返回的數(shù)據(jù)進(jìn)行Request和Session的封裝最后通過Result定位到相應(yīng)的頁面。Struts2框架,如圖3-4所示:圖3-4Struts框架圖系統(tǒng)實(shí)現(xiàn)本系統(tǒng)分為前臺(tái)和后臺(tái)兩部分,管理員和會(huì)員用戶登錄頁面相同,登錄成功后會(huì)根據(jù)不同的角色進(jìn)入相應(yīng)的頁面,管理員進(jìn)入后臺(tái)頁面,對(duì)商品進(jìn)行添加、刪除、查看的操作。會(huì)員進(jìn)去首頁對(duì)商品進(jìn)行查看,購買下單。系統(tǒng)首頁商城首頁采用分欄式布局,最上面一欄是用戶的一些快捷功能,比如登錄、注冊(cè)查詢訂單,中間是搜索餐品的輸入框,采用Ajax輸入及時(shí)匹對(duì),下面是熱賣商品的輪展效果,可以在后臺(tái)管理員進(jìn)行維護(hù)操作。圖4-1商城首頁圖注冊(cè)用戶用戶沒有用戶ID和用戶名時(shí)進(jìn)行注冊(cè)操作,系統(tǒng)號(hào)是系統(tǒng)自動(dòng)匹配的,用戶填寫別的基本信息,只有按照信息填寫完整后才能提交,如圖4-2所示。圖4-2注冊(cè)用戶部分代碼如下:intuser_result=this.userBIZ.addUser(epuser); Map<String,String>map=newHashMap<String,String>(); if(user_result>0){ map.put("msg","添加成功"); map.put("flag","1"); }else{ map.put("msg","添加失敗"); map.put("flag","0");} result=JSONObject.fromObject(map).toString();以上代碼表示,epuser是存放用戶的注冊(cè)信息,user_result是添加的結(jié)果,大于0代表添加成功,會(huì)將結(jié)果封裝到JSON字符串中,返回到注冊(cè)頁面提醒用戶注冊(cè)成功或是失敗。登錄用戶的登錄采用彈出窗遮罩的效果來實(shí)現(xiàn),如圖4-3,用戶在彈出框輸入用戶名、密碼和驗(yàn)證碼來進(jìn)行登錄,用戶ID和密碼會(huì)在輸入驗(yàn)證碼的時(shí)候通過Ajax及時(shí)后臺(tái)數(shù)據(jù)驗(yàn)證并返回結(jié)果用紅字顯示錯(cuò)誤信息。如果是會(huì)員用戶登錄后會(huì)進(jìn)入商城首頁,并顯示登錄人的信息,如果是管理員登錄則會(huì)直接跳轉(zhuǎn)到后臺(tái)頁面。圖4-3登錄圖部分實(shí)現(xiàn)代碼如下:List<com.vo.User>list=this.userBIZ.userLogin(Integer.parseInt(user_id),password); if(list.size()>0){ com.vo.Useruser=list.get(0); this.getRequest().getSession().setAttribute("user",user); return"home";以上代碼表示,從數(shù)據(jù)庫中對(duì)用戶輸入的系統(tǒng)ID和密碼進(jìn)行檢測,如果存在該用戶并且ID和密碼相符,則將用戶的信息用Request頁面內(nèi)置對(duì)象將User進(jìn)行封裝,然后返回首頁。用戶登錄成功后會(huì)在右上角會(huì)顯示該用戶的用戶名,用戶可以點(diǎn)擊旁邊的退出進(jìn)行注銷操作。管理員用戶操作添加物資類別管理員進(jìn)入后臺(tái)可以對(duì)物資進(jìn)行維護(hù),添加物資類別實(shí)行Ajax異步及時(shí)刷新的技術(shù),如圖4-4,用戶商品大類不選直接添加商品種類則是添加物資大類,添加完后會(huì)直接在商品大類的下拉框顯示出來,如果選擇商品大類,則輸入商品種類則是添加商品大類的子類,添加完后會(huì)在頁面及時(shí)顯示出來。商品種類的添加可以支持添加五種,但考慮到首頁的顯示問題和數(shù)據(jù)的維護(hù)問題,本系統(tǒng)只讓添加兩種類別。圖4-4增加物資類別信息部分代碼如下:$.ajax({ url:"/footing/goods_cates_json/getGoodsCatesLists_json.action", type:"post", dataType:"json", data:{"value":val}, success:function(data){varjsonobj=eval("("+data+")");}});以上代碼表示,用戶點(diǎn)擊商品大類的時(shí)候,會(huì)調(diào)用Ajax事件,type類型post代表異步請(qǐng)求,不會(huì)讓程序一直處于等待回傳的狀態(tài),dataType是數(shù)據(jù)傳送的類型,采用JSON可以對(duì)數(shù)據(jù)進(jìn)行很好的封裝,data是數(shù)據(jù)傳送的參數(shù),此程序選用的是物資大類的物資ID對(duì)該商品大類的物資進(jìn)行檢測后臺(tái)getGoodsCatesLists_json.action對(duì)數(shù)據(jù)進(jìn)行處理,然后將結(jié)果用JSON封裝,頁面采用eval("("+data+")");來對(duì)JSON字符串進(jìn)行解析。解析完結(jié)果后將結(jié)果字符串拼接到商品類別里面。顯示物資類別管理員進(jìn)入顯示物資類別的窗口會(huì)顯示添加的物資類別信息,如圖4-8,該頁面會(huì)顯示商城的大類,劃過物資大類名稱時(shí)會(huì)顯示出來該下的子類個(gè)數(shù),可以點(diǎn)擊進(jìn)去查看子類的信息,如圖4-9所示,用戶可以刪除物資的大類和子類的信息,刪除子類不會(huì)有提示,刪除大類時(shí),如果有子類會(huì)提示是否刪除大類,一經(jīng)刪除子類信息也將刪除的提示。圖4-5物資大類信息增加物資進(jìn)入物資添加的頁面如圖4-6,填寫物資信息時(shí)會(huì)有綠色的提示,如果數(shù)據(jù)信息為空會(huì)有紅色的信息提示,數(shù)據(jù)信息符合要求填寫時(shí)才會(huì)有紅色對(duì)勾出現(xiàn),選擇物資類別時(shí)點(diǎn)擊大類別會(huì)及時(shí)出現(xiàn)物資子類,管理員選擇相應(yīng)的子類,每個(gè)物資必須要選擇一個(gè)小類,還有上傳物資圖片,所有信息填寫完整后提交后會(huì)有提示是否查看添加的商品,如果要查看新添加的商品信息會(huì)進(jìn)入查看頁面,頁面會(huì)顯示出添加的商品詳細(xì)信息,并且鼠標(biāo)滑過圖片時(shí),圖片會(huì)變大,為了能方便管理員清楚的查看圖片。圖4-6物資添加信息部分代碼如下:privateFileuploadImage;privateStringuploadImageFileName;privateStringuploadImageContentType;intgoodID=this.goodsBIZ.addGoods(epGoods); intadd_goods_flag=0; if(goodID>0){ this.imagesPath(uploadImage,path,uploadImageFileName); this.load_ImagesPath(uploadImage,uploadImageFileName); add_goods_flag=this.goodsBIZ.addGoodsImages(goodID,modityName,uploadImageFileName);}以上代碼uploadImage是取的物資圖片路徑,uploadImageFileName是物資圖片的名稱,uploadImageFileName是物資圖片的類型,epGoods里面存放的是新添加商品的信息,goodID是添加物資返回的結(jié)果,結(jié)果大于0則代表添加成功,結(jié)果等于0代表添加失敗,當(dāng)物資添加成功后將物資圖片存放到服務(wù)器上并拷貝到本地文件一份。最后將物資ID,物資圖片路徑,物資圖片名稱存放到數(shù)據(jù)庫中。顯示物資進(jìn)入顯示物資的頁面,如圖4-7,按照物資編號(hào)從大到小排序的,顯示物資類別編號(hào),商品添加時(shí)圖片存到服務(wù)器上,顯示的圖片是從服務(wù)上取出的,并且也有滑過圖片也會(huì)變大,使的圖片可以清楚點(diǎn)。商品會(huì)分頁顯示,每頁顯示10個(gè)物資,后期會(huì)添加一個(gè)搜索物資的功能用于搜索物資的信息。圖4-7顯示物資會(huì)員和普通用戶操作會(huì)員和普通用戶可以查看商品,添加購物車,購買下單。瀏覽商品用戶點(diǎn)擊餐品瀏覽可以瀏覽餐飲商品的物資,左邊一欄顯示的是物資的類別,右邊是商品,左邊商品為大類,右拉框中的為小類,選擇大類和小類可以對(duì)商品進(jìn)行及時(shí)的刷新。商品顯示價(jià)格和物資名稱,當(dāng)鼠標(biāo)放在物資名稱上時(shí)會(huì)顯示物資的描述。圖4-8瀏覽商品部分實(shí)現(xiàn)代碼如下:List<ShowGoods>list=this.goodsBIZ.showGoods(); List<BigGoodsCates>list_biggoods=this.goodsCatesBIZ.getBigGoodsCatesList(); if(list!=null&&list.size()>0){ this.getRequest().setAttribute("list",list); this.getRequest().setAttribute("list_biggoods",list_biggoods); return"show_goods";} return"error";以上代碼list存放的是所有商品信息,list_biggoods存放的物資類別信息,然后將結(jié)果用Request封裝返回到JSP頁面,如果數(shù)據(jù)異?;蚴菦]有物資,這跳入物資異常頁面。查看物資明細(xì)用戶點(diǎn)擊商品物資后會(huì)進(jìn)入物資明細(xì)頁面如圖4-9所示,會(huì)有相應(yīng)的物資名稱,描述和價(jià)格,用戶可以選擇立即購買和剛?cè)肷暾?qǐng)車,購買和放入申請(qǐng)車用戶必須登錄否則會(huì)有請(qǐng)先登錄的提示信息提醒。物資的圖片采用鼠標(biāo)滑過圖片放大的處理模式。圖4-9查看物資明細(xì)購物車用戶選擇商品后進(jìn)入購物車如圖4-16,購物車可以修改數(shù)量,也可以進(jìn)行刪除操作,確定沒問題后,點(diǎn)擊結(jié)算進(jìn)行下單。圖4-16購物車系統(tǒng)測試和分析在開發(fā)系統(tǒng)軟件過程中,即使使用了許多保證軟件質(zhì)量的分析、設(shè)計(jì),可還是會(huì)難免在工作中犯錯(cuò)誤。所以,認(rèn)真的進(jìn)行軟件測試是必須的。系統(tǒng)測試是軟件系統(tǒng)與硬件等其他因素結(jié)合在一起,在其中找出開發(fā)系統(tǒng)與用戶需求不符或矛盾的地方,進(jìn)行信息系統(tǒng)的各種組裝測試、確認(rèn)測試。下面介紹此系統(tǒng)的測試環(huán)境、過程及測試結(jié)果的分析。測試環(huán)境系統(tǒng)測試的軟件環(huán)境:操作系統(tǒng)為Windows7,開發(fā)工具為MyEclipse10,數(shù)據(jù)庫Oracle10g,Tomcat6.0,JSP等開發(fā)的在線訂餐系統(tǒng)。系統(tǒng)測試的硬件環(huán)境:普通個(gè)人計(jì)算機(jī),CPU主頻2.3GHZ,內(nèi)存4G。數(shù)據(jù)庫測試環(huán)境:操作系統(tǒng)為Windows7,數(shù)據(jù)庫為Oracle10g,鏈接數(shù)據(jù)庫的工具室navicat。數(shù)據(jù)庫測試的硬件環(huán)境:普通的個(gè)人計(jì)算機(jī),CPU主頻2.3GHZ,內(nèi)存2G。測試過程(1)系統(tǒng)測試過程:運(yùn)行程序,進(jìn)入商城首頁,輸入用戶名及密碼返回首頁或進(jìn)入后臺(tái)。管理員進(jìn)入后臺(tái)頁面后,對(duì)商品模塊,用戶模塊測試。測試通過后,用會(huì)員用戶返回首頁可以對(duì)頁面查看商品,添加購物車,下單等進(jìn)行測試。測試各模塊時(shí),功能均實(shí)現(xiàn)了。但是當(dāng)會(huì)員查看商品物資明細(xì)時(shí)會(huì)有物資圖片加載失敗的情況出現(xiàn),調(diào)試找到的問題是由于服務(wù)器關(guān)閉后造成的圖片丟失的情況,后來我在存圖片是會(huì)備份一個(gè)到本地磁盤當(dāng)中,這樣當(dāng)服務(wù)器娶不到圖片時(shí),就在本地讀取。(2)數(shù)據(jù)庫測試過程:打開OracleNetManager程序,配置鏈接數(shù)據(jù)庫的用戶名、密碼以及ip,然后用PL/SQL連接數(shù)據(jù)庫,連接成功后對(duì)數(shù)據(jù)庫相應(yīng)表數(shù)據(jù)和結(jié)構(gòu)進(jìn)行查看和檢查。檢查時(shí)著重查看中文入庫的數(shù)據(jù),最初會(huì)出現(xiàn)中文亂碼,現(xiàn)已解決。系統(tǒng)分析對(duì)本系統(tǒng)來說,可以穩(wěn)定運(yùn)行是主要目標(biāo),能實(shí)現(xiàn)一些常用的功能,能夠方便快捷的進(jìn)行相關(guān)功能的操作。經(jīng)過測試得出它基本達(dá)到了要求,具有操作簡單快捷,運(yùn)行速度較快等特點(diǎn)。數(shù)據(jù)庫分析本系統(tǒng)采用的是Oracle數(shù)據(jù)庫,可以更好的進(jìn)行數(shù)據(jù)的查詢和存儲(chǔ),經(jīng)過測試數(shù)據(jù)完全達(dá)到標(biāo)準(zhǔn),沒有出現(xiàn)亂碼問題和數(shù)據(jù)冗余。結(jié)論本系統(tǒng)這次的項(xiàng)目,我們使用了MyEclipse來進(jìn)行項(xiàng)目的開發(fā),在軟件架構(gòu)的方面,主要是根據(jù)MVC思想,將模型、視圖、控制層分離,然后應(yīng)用SSH框架來對(duì)代碼進(jìn)行具體實(shí)現(xiàn),使用Struts分離視圖層和控制層,使用Spring管理bean對(duì)象,減少了從前new一個(gè)對(duì)象就要?jiǎng)?chuàng)建一個(gè)內(nèi)存空間的占用空間,使的程序運(yùn)行能夠有足夠的內(nèi)存空間去運(yùn)行順暢,直接的優(yōu)化了代碼,我自己也養(yǎng)成了接口編程的好習(xí)慣,service開放調(diào)用數(shù)據(jù)庫的接口,防止用戶直接調(diào)用數(shù)據(jù)庫,維護(hù)了程序的安全性,而使用接口編程還有一個(gè)很好的優(yōu)點(diǎn)就是提高代碼的重用率和可維護(hù)率,修改接口的功能只需要將接口參數(shù)和返回?cái)?shù)據(jù)的變更便就可實(shí)現(xiàn),使用Hibernate來管理數(shù)據(jù)庫,采用面向?qū)ο蟮乃枷?,有效?shí)現(xiàn)了與數(shù)據(jù)庫之間的耦合。設(shè)置本系統(tǒng)我很認(rèn)真的去找了很多資料來學(xué)習(xí),努力汲取前人前輩的經(jīng)驗(yàn),就是希望能做出一個(gè)令自己滿意的網(wǎng)上訂餐系統(tǒng)。通過設(shè)置本系統(tǒng),我掌握了很多知識(shí),也漸漸鍛煉自己每寫一個(gè)方法必有注釋,數(shù)據(jù)庫操作要編寫接口實(shí)現(xiàn)方法調(diào)用,為防止直接操作數(shù)據(jù)造成的影響。通過設(shè)置本系統(tǒng)也漸漸發(fā)現(xiàn)自己有好多東西要學(xué),以后還需繼續(xù)努力學(xué)習(xí)技術(shù)才行。參考文獻(xiàn)[1]孫衛(wèi)琴,李洪成.《Java
Web
開發(fā)技術(shù)詳解》.電子工業(yè)出版社,2003年
[2]BruceEckel.《Java編程思想》.
機(jī)械工業(yè)出版社,2003年[3]FLANAGAN.《Java技術(shù)手冊(cè)》.
中國電力出版社,2002年
[4]孫一林,彭波.《Java數(shù)據(jù)庫編程實(shí)例》.
清華大學(xué)出版社,2002年
[5]LEE
ANNE
PHILLIPS.《巧學(xué)活用HTML4》.電子工業(yè)出版社,2004年
[6]飛思科技產(chǎn)品研發(fā)中心.《JSP應(yīng)用開發(fā)詳解》.電子工業(yè)出版社,2003年[7]耿祥義,張躍平.《JSP實(shí)用教程》.
清華大學(xué)出版社,2003年
[8]孫涌.《現(xiàn)代軟件工程》.北京希望電子出版社,2003年
[9]薩師煊,王珊.《數(shù)據(jù)庫系統(tǒng)概論》.高等教育出版社,2002年[10]Brown等.《JSP編程指南(第二版)》.
電子工業(yè)出版社,2003年
[11]清宏計(jì)算機(jī)工作室.《JSP編程技巧》.
機(jī)械工業(yè)出版社,2004年
[12]朱紅,司光亞.《JSP
Web編程指南》.電子工業(yè)出版社,
2001年
[13]賽奎春.《JSP工程應(yīng)用與項(xiàng)目實(shí)踐》.
機(jī)械工業(yè)出版社,
2002年[14]劉中兵.《JavaWeb核心框架電子工業(yè)出版社》.電子工業(yè)出版社,2009年[15]王嫚/杜秀川.《JSP網(wǎng)絡(luò)編程電子工業(yè)出版社》機(jī)械工業(yè)出版社,2006年[16]曲培新.《Java項(xiàng)目開發(fā)案例精粹》.電子工業(yè)出版社,2010年[17]孫衛(wèi)琴.《精通struts[M]電子工業(yè)出版社》機(jī)械工業(yè)出版社.2004年[18]林上杰.《林康司編著.JSP2.0技術(shù)手冊(cè)》.電子工業(yè)出版社,2004年[19]岑紅旗.《淺析網(wǎng)上購物在中國的現(xiàn)狀》.時(shí)代金融.2007年[20]胡崧編著.《網(wǎng)站建設(shè)實(shí)例大制作》.北京:中國青年出版社,2007年
[21]唐遠(yuǎn)新.靖固等.《Oracle數(shù)據(jù)庫實(shí)用教程》.北京:高等教育出版社,2005年[22]林信良.《Spring2.0技術(shù)手冊(cè)》.北京:電子工業(yè)出版社,2005年[23]徐潔磐.《現(xiàn)代數(shù)據(jù)庫系統(tǒng)教程》.北京希望電子出版社,2011年[24]黃浩文.《JSP核心技術(shù)和電子商務(wù)應(yīng)用實(shí)例》.北京:清華大學(xué)出版社,2000年
[25]肖剛.《Java
Web服務(wù)器應(yīng)用程序設(shè)計(jì)》.北京:電子工業(yè)出版社,2002年
[26]胡崧編著.《網(wǎng)站建設(shè)實(shí)例大制作》.北京:中國青年出版社,2007年
[27]孫鑫.《Java
Web開發(fā)詳解》.北京:電子工業(yè)出版社,2008年[28]王永紅.《使用JavaScript增強(qiáng)網(wǎng)頁的功能》.福建:福建師范大學(xué)學(xué)報(bào),2008年[29]張龍祥等.《數(shù)據(jù)庫原理與設(shè)計(jì)》.北京人民郵電出版社,2009年[30]Sanden,Bo.SYSTEMSPROGRAMMINGWITHJSP[D].EXAMPLE-AVDUCONTROLLER,CommunicationsoftheACM,Vol28,No10,1985[31]Zoya
Ali.
Designing
Object
Oriented
Software
Applications
within
the
Context
of
Software
Frameworks
[D].
Ohio
State
University,2011致謝在論文完成之際,首先感謝我的指導(dǎo)導(dǎo)師老師。論文的修改、系統(tǒng)的維護(hù)工作都得到了孫老師的關(guān)心和幫助。在這幾個(gè)月的的畢業(yè)設(shè)計(jì)中,孫老師經(jīng)常在群里和我們交流,詢問我們的進(jìn)展情況,遇到問題耐心地輔導(dǎo)我們,并時(shí)常給我們提供大量的相關(guān)資料,解決了我在系統(tǒng)中遇到的許多問題,再此感謝不厭其煩的指導(dǎo)設(shè)計(jì)中的問題?;叵胛覍W(xué)習(xí)的過程,從一個(gè)對(duì)Javaweb什么都不懂到如今自己可以自主的編寫一個(gè)系統(tǒng),真的謝謝教過我的老師們,是老師們的辛勤哺育才會(huì)有我的今天,乘涼莫忘種樹人,我只能努力的學(xué)習(xí)來回報(bào)老師。遇到問題時(shí)我通常會(huì)煩躁、焦急,這時(shí)老師回過來跟我說,有問題出現(xiàn)很正常,我們就是要解決問題,如果沒有問題出現(xiàn)那就不正常了,然后老師也會(huì)和我分享他那時(shí)候編程的經(jīng)歷,然后跟我說,靜心才能凝神,想要解決問題首先要靜心。這漸漸的成了我做事的座右銘。同樣感謝給予過我?guī)椭睦蠋熀屯瑢W(xué)們,是你們的幫助和支持使我學(xué)有所得。最后,向百忙之中評(píng)閱拙文的各位專家、教授致以衷心的感謝,并誠摯地希望各位專家、教授給予批評(píng)指正!再次向所有教導(dǎo)我、關(guān)心我、幫助我、鼓勵(lì)我的老師、親人和朋友致以深深的謝意!附錄程序部分關(guān)鍵代碼:代碼1--Struts2.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN""/dtds/struts-2.1.dtd"><struts><!--首頁--> <packagename="home"namespace="/home"extends="struts-default"> <actionname="load_home"method="load_home"class="com.action.HomeAction"> <result>/home.jsp</result> </action> </package> <!--驗(yàn)證碼--> <packagename="Security"namespace="/Security"extends="struts-default"><actionname="SecurityCodeImageAction"class="com.action.SecurityCodeImageAction"><resultname="success"type="stream"><paramname="contentType">image/jpeg</param><paramname="inputName">imageStream</param><paramname="bufferSize">2048</param></result></action></package><!--json獲得分類物資列表--> <packagename="goods_cates_json"namespace="/goods_cates_json"extends="json-default"> <actionname="getGoodsCatesLists_json"method="getGoodsCatesLists_json"class="com.action.GoodsCatesAction"> <resulttype="json"> <paramname="root">result</param> </result> </action> <actionname="getGoodsCates"method="getGoodsCates"class="com.action.GoodsAction"> <resulttype="json"> <paramname="root">result</param> </result> </action> <actionname="addUser"method="addUser"class="com.action.User"> <resulttype="json"> <paramname="root">result</param> </result> </action> </package> <!--圖片上傳--> <packagename="load_image"extends="struts-default"><actionname="unload"method="unload"class="com.action.GoodsAction"><resultname="success">/showGood.jsp</result><resultname="input">/index.jsp</result><!--定義文件上傳攔截器--><interceptor-refname="fileUpload"><!--設(shè)置文件上傳大小--><paramname="maximumSize">40960000</param><!--設(shè)置文件上傳類型--><paramname="allowedTypes">png,bmp,jpg</param></interceptor-ref><!--自定義了攔截器后必手動(dòng)定義默認(rèn)的攔截器,否則默認(rèn)的攔截器不會(huì)被執(zhí)行--><interceptor-refname="defaultStack"></interceptor-ref></action></package> <packagename="foot-default"namespace="/"extends="struts-default"></package><includefile="struts-config/goods_cates.xml"></include><includefile="struts-config/goods.xml"></include></struts>代碼2--baseaction//存放action共同的一些配置和方法packagecom.action.beans;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.UnsupportedEncodingException;importjava.util.logging.Logger;importjavax.servlet.http.HttpServletRequest;importorg.apache.struts2.ServletActionContext;publicclassBaseAction{ privateHttpServletRequestrequest;publicHttpServletRequestgetRequest(){ try{ if(request==null){ request=ServletActionContext.getRequest(); request.setCharacterEncoding("utf-8"); } }catch(UnsupportedEncodingExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); returnnull; } returnrequest;}publicStringgetPath(){ Stringpath=ServletActionContext.getRequest().getServletPath(); intnum=path.lastIndexOf("/"); Stringp=path.substring(num); returnp;}publicvoidremoveSession(){ getRequest().getSession().removeAttribute("path"); getRequest().getSession().removeAttribute("msg");}publicvoidimagesPath(Filefile,Stringpath,Stringobj){ FileInputStreamin=null; FileOutputStreamout=null; path=path+"unload_images/"; try{ in=newFileInputStream(file); out=newFileOutputStream(path+obj); byte[]b=newbyte[1024]; intlen=0; while((len=in.read(b))!=-1){ out.write(b,0,len); } }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ in.close(); out.close(); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }publicvoidload_ImagesPath(Filefile,Stringobj){ FileInputStreamin=null; FileOutputStreamout=null; Stringpath="e:/footing_images/"; try{ in=newFileInputStream(file); out=newFileOutputStream(path+obj); byte[]b=newbyte[1024]; intlen=0; while((len=in.read(b))!=-1){ out.write(b,0,len); } }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ in.close(); out.close(); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}}代碼3--securityimage工具類packagecom.units;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.util.Random;importcom.sun.image.codec.jpeg.ImageFormatException;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGImageEncoder;/**16*工具類,生成驗(yàn)證碼圖片17*@version1.02012/08/2118*@authordongliyang19*20*/publicclassSecurityImage{ /** *生成驗(yàn)證碼圖片 *@paramsecurityCode驗(yàn)證碼字符 *@returnBufferedImage圖片 */ publicstaticBufferedImagecreateImage
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工程合同協(xié)議審批會(huì)簽單
- 《找規(guī)律》(教案)北師大版三年級(jí)下冊(cè)數(shù)學(xué)
- 農(nóng)村建房合同協(xié)議書電子版(2025年版)
- 第13課 網(wǎng)絡(luò)安全防范 教學(xué)設(shè)計(jì) 2024-2025學(xué)年浙教版(2023)初中信息技術(shù)八年級(jí)上冊(cè)
- 第五單元-解決問題的策略-(單元測試)-蘇教版數(shù)學(xué)三年級(jí)上冊(cè)(含解析)
- 2023年現(xiàn)場總線智能儀表投資申請(qǐng)報(bào)告
- 2025年廣西演藝職業(yè)學(xué)院單招職業(yè)傾向性測試題庫完整版
- 2024年電工儀器儀表項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2025年黑龍江省單招職業(yè)適應(yīng)性測試題庫一套
- 2025陜西省建筑安全員-A證考試題庫附答案
- 結(jié)構(gòu)化學(xué)-第1章講義課件
- 粉塵防爆安全管理臺(tái)賬-全套
- 廣州退休申請(qǐng)表范本
- 管道完整性管理方法及應(yīng)用
- 傳媒侵權(quán)法介紹
- 麥茬花生高產(chǎn)栽培技術(shù)
- 玉米制種技術(shù)
- 中國旅游資源概述
- 高一下分科文科班第一次主題班會(huì)
- 初中數(shù)學(xué)代數(shù)式部分的文本解讀
- 高中學(xué)生的自我評(píng)價(jià)200字 高中學(xué)生的自我評(píng)價(jià)(三篇)
評(píng)論
0/150
提交評(píng)論