




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
開發(fā)背景1.1目的和意義本系統(tǒng)的設(shè)計(jì)目的是為了滿足消費(fèi)者只要通過互聯(lián)網(wǎng)就可以足不出戶的訂購自己喜歡的菜品,改變傳統(tǒng)商業(yè)交易,在互聯(lián)網(wǎng)上進(jìn)行交易,實(shí)現(xiàn)網(wǎng)上購買菜品。本論文主要涉及軟件,數(shù)據(jù)庫與網(wǎng)絡(luò)技術(shù)等。涵蓋知識(shí)面廣,可有效地提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)分析解決問題的能力,增強(qiáng)學(xué)生對(duì)事物的理解與掌握能力,培養(yǎng)學(xué)生掌握科學(xué)的研究方法,正確的設(shè)計(jì)思想,獨(dú)立思考,勇于進(jìn)取,探索創(chuàng)新,為今后進(jìn)一步學(xué)習(xí)與工作奠定了良好的基礎(chǔ)。1.2開發(fā)設(shè)計(jì)思想本系統(tǒng)用JSP語言來編寫網(wǎng)絡(luò)訂餐系統(tǒng),數(shù)據(jù)庫用MYSQL來連接系統(tǒng),通過編寫JavaBeans來進(jìn)行后臺(tái)業(yè)務(wù)邏輯控制,即JSP+JavaBeans+MYSQL三層模式完成整個(gè)設(shè)計(jì)工作。本系統(tǒng)全部基于Internet網(wǎng)絡(luò),以JSP語言對(duì)網(wǎng)站進(jìn)行開發(fā),注重用戶與網(wǎng)站的交互性。因此在這樣的背景下,針對(duì)當(dāng)前Internet網(wǎng)絡(luò)發(fā)展趨勢(shì)來計(jì)網(wǎng)絡(luò)訂餐系統(tǒng)就成為了當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。1.3開發(fā)目標(biāo)網(wǎng)上訂餐的優(yōu)勢(shì)在于選擇面大、價(jià)格便宜、交易方便、節(jié)省時(shí)間和精力等。整個(gè)菜品市場(chǎng)一片繁榮。在中國,網(wǎng)上訂餐有發(fā)展的必要,也有發(fā)展的基礎(chǔ),發(fā)展網(wǎng)上訂餐的各方面條件也日趨成熟,但是還存在一些問題,只有把問題解決好了,才能保證網(wǎng)上訂餐的蓬勃發(fā)展。2開發(fā)工具和環(huán)境簡(jiǎn)介2.1JSP技術(shù)簡(jiǎn)介JSP(JavaServerPage服務(wù)器網(wǎng)頁)是從1998年開始出現(xiàn)的新技術(shù)。由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),是基于JavaServlet以及整個(gè)Java體系的web開發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入腳本片段和JSP標(biāo)記(Tag),構(gòu)成JSP網(wǎng)頁(*.jsp)。JSP技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的web頁面提供了簡(jiǎn)便的方法。JSP作為Java家族的一員,承襲了Java的特點(diǎn),即跨平臺(tái)的特性,也即一次編譯,到處運(yùn)行。在國外,己經(jīng)大量使用JSP作為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)工具,而在國內(nèi),盡管JSP還不是主流開發(fā)技術(shù),但是由于JSP的強(qiáng)大優(yōu)勢(shì),許多網(wǎng)站都已經(jīng)準(zhǔn)備轉(zhuǎn)向JSP,利用JSP來開發(fā)動(dòng)態(tài)網(wǎng)站。2.2JSP工作原理JSP是面向服務(wù)器的,因此支持任何瀏覽器。當(dāng)Web服務(wù)器和JSP引擎遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),JSP引擎將請(qǐng)求對(duì)象發(fā)送給服務(wù)器端的相關(guān)組件,比如JavaBean組件、Servlet或EJB等,然后由服務(wù)器端組件處理這些請(qǐng)示,可能需要從數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)中檢索信息,然后服務(wù)器端組件再將響應(yīng)對(duì)象返回JSP引擎。JSP引擎將響應(yīng)對(duì)象傳遞給JSP頁面,根據(jù)JSP頁面的HTML格式完成數(shù)據(jù)編排,最后Web服務(wù)器和JSP引擎將格式化后的JSP頁面以HTML格式返回客戶瀏覽器。這就是當(dāng)前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器——Web服務(wù)器——后臺(tái)數(shù)據(jù)庫的三層架構(gòu)模式。因?yàn)镴SP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。2.3JSP體系結(jié)構(gòu)JSP網(wǎng)站開發(fā)標(biāo)準(zhǔn)給出了兩種使用JSP的技術(shù),可以歸納為模式一、模式二。模式一:JSP+JavaBeans技術(shù)在這種模式中,JSP頁面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回給客戶。Bean處理所有數(shù)據(jù)訪問,JSP實(shí)現(xiàn)頁面的表現(xiàn),以實(shí)現(xiàn)內(nèi)容生成與顯示相分離。當(dāng)處理復(fù)雜的大型應(yīng)用時(shí),頁面被嵌入大量的腳本或Java代碼段,當(dāng)需要處理的商業(yè)邏輯復(fù)雜時(shí),這種情況會(huì)變得非常糟糕,大量的內(nèi)嵌代碼使得頁面程序變得復(fù)雜,對(duì)于前端界面設(shè)計(jì)人員,這是不可思議的事情。所以模式一可用于小型應(yīng)用,不能夠滿足大型應(yīng)用的需要。模式二:JSP+Servlet+JavaBeans技術(shù)Servlet技術(shù)是一種采用Java技術(shù)來實(shí)現(xiàn)CGI功能的一種技術(shù),Servlet技術(shù)非常適于服務(wù)器端的處理和編程,并且Servlet會(huì)長(zhǎng)期駐留在內(nèi)存。從開發(fā)的觀點(diǎn)看,模式二具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,在大規(guī)模項(xiàng)目開發(fā)中,模式二更被采用,模式二也更符合當(dāng)前流行的MVC結(jié)構(gòu)(Model/view/controller),其中Servlet對(duì)應(yīng)controller,處于控制者的位置,處理HTTP請(qǐng)求,負(fù)責(zé)生成JSP中使用的Beans組件或?qū)ο?,并判斷?yīng)將請(qǐng)求傳遞給哪個(gè)JSP等,JSP對(duì)應(yīng)view,負(fù)責(zé)生成最終的動(dòng)態(tài)網(wǎng)頁并返回給瀏覽器。而JavaBeans對(duì)應(yīng)的是Model,實(shí)現(xiàn)各個(gè)具體的應(yīng)用邏輯與功能。2.4JSP的特點(diǎn)JSP頁面用標(biāo)準(zhǔn)的HTML或XML命令來處理頁面的格式化和布局設(shè)計(jì),而用類似HTML、XML的標(biāo)記和Java語言編寫的腳本程序生成頁面內(nèi)容。這使得頁面形式與頁面內(nèi)容互相獨(dú)立,非常有利于大型項(xiàng)目的分工合作。JSP技術(shù)是Java2平臺(tái)的重要組成部分,JSP使用Java語言作為它的腳本語言。在JSP頁面中可以使用幾乎所有的Java組件和JavaAPI,這就能充分發(fā)揮出Java語言的強(qiáng)大功能。使用JSP技術(shù)可以創(chuàng)建具有高度可伸縮性和可靠性的Web應(yīng)用程序。JSP作為Java家族的一員,秉承了Java技術(shù)的“一次編寫,隨處可用(WriteOnce,RumAnywhere)”的特性,可以運(yùn)行于大多數(shù)流行的操作系統(tǒng)平臺(tái)及Web服務(wù)器,這種與服務(wù)器硬件和操作系統(tǒng)平臺(tái)的無關(guān)性是JSP相對(duì)于其它動(dòng)態(tài)網(wǎng)頁技術(shù)最大的一個(gè)優(yōu)點(diǎn)。如同的JSP技術(shù)可以通過ActiveX/COM組件來擴(kuò)展功能一樣,JSP可以通過JavaBean和EJB(EnterpriseJavaBean)以及自定義的標(biāo)記來擴(kuò)展功能。JSP可以通過JDBC,與諸如Oracle、MYSQL這樣的大型關(guān)系數(shù)據(jù)庫進(jìn)行連接。JSP提供了一些隱含對(duì)象。這些隱含對(duì)象在JSP頁面中可以直接引用,而不必首先聲明。利用JSP提供的這些隱含對(duì)象,可以使腳本功能更加強(qiáng)大,并且編程更加容易、方便。例如,利用request對(duì)象,可以很容易地接收用戶在HTML表單中提交的信息。2.5MYSQL數(shù)據(jù)庫MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。2.6系統(tǒng)數(shù)據(jù)庫連接JDBC技術(shù)是JavaDataBaseConnectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(ApplicationProgrammingInterface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應(yīng)SQL語句,完成對(duì)不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用JDBCAPI可以不必編寫一個(gè)應(yīng)用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個(gè)應(yīng)用程序去訪問Oracle數(shù)據(jù)庫,再寫一個(gè)應(yīng)用程序訪問的MYSQL。不但如此,使用Java語言編寫的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上開發(fā)不同的應(yīng)用程序。簡(jiǎn)單地說,JDBC能完成下列三件事:同一個(gè)數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫建立連接;處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。說JDBC是一處低級(jí)的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級(jí)的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對(duì)Java對(duì)象進(jìn)行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對(duì)對(duì)象的各種屬性、方法的操作來自動(dòng)產(chǎn)生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對(duì)數(shù)據(jù)庫進(jìn)行的操作,選中一個(gè)任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過這處方式,用戶可以完成對(duì)數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程。數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對(duì)數(shù)據(jù)庫操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過才能對(duì)數(shù)據(jù)庫進(jìn)行操作。使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對(duì)數(shù)據(jù)庫的存取權(quán)限認(rèn)證是中間件中完成,對(duì)數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對(duì)數(shù)據(jù)庫進(jìn)行操作后,再將處理結(jié)果通過Web服務(wù)器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進(jìn)行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。JDBC的三層模型因?yàn)椤敝虚g層”可以進(jìn)行對(duì)訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個(gè)易用的高層API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫的溝通橋梁。它提供了三項(xiàng)服務(wù)功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結(jié)果。當(dāng)JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅(qū)動(dòng)程序,Class.forName()即是在執(zhí)行此項(xiàng)工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅(qū)動(dòng)程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang.Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動(dòng)程序載入進(jìn)來。完成載入驅(qū)動(dòng)程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對(duì)象。此連接對(duì)象的類類型為java.sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對(duì)象來取得。當(dāng)取得連接對(duì)象后,還必須取得Statement對(duì)象才能對(duì)數(shù)據(jù)庫執(zhí)行SQL指令。Statement主要實(shí)現(xiàn)兩個(gè)功能:執(zhí)行SQL語句以及取得執(zhí)行結(jié)果。在java.sql.Statement的sql對(duì)象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個(gè)ResultSet對(duì)象,這個(gè)對(duì)象提供了一個(gè)存取SQL執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個(gè)Statement對(duì)象只能產(chǎn)生一個(gè)ResultSet對(duì)象。數(shù)據(jù)庫的連接處理具體實(shí)現(xiàn)如下://建立JDBC——ODBC橋sun.jdbc.odbc.JdbcOdbcDriver;//橋建立不成功時(shí)的錯(cuò)誤處理catch(ClassNotFoundExceptionevent){}//建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結(jié)果保存到rs對(duì)象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結(jié)果//SQL出錯(cuò)處理 catch(SQLExceptione1){}有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用JDBCAPI寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時(shí),將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制。JDBC擴(kuò)展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對(duì)從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。簡(jiǎn)單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}上述代碼對(duì)基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié)。3網(wǎng)絡(luò)訂餐系統(tǒng)功能分析為了最終實(shí)現(xiàn)目標(biāo)系統(tǒng),必須設(shè)計(jì)出組成這個(gè)系統(tǒng)的所有程序和文件(或數(shù)據(jù)庫)。模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序設(shè)計(jì)對(duì)象的集合,它是單獨(dú)命名的而且可通過名字來訪問。模塊化就是把程序化分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集起來組成一個(gè)整體,可以完成指定的滿足問題的要求。3.1系統(tǒng)功能分析首先對(duì)現(xiàn)有系統(tǒng)進(jìn)行分析,現(xiàn)有系統(tǒng)是信息的重要來源。分析已有系統(tǒng)的功能和實(shí)現(xiàn),從而確定新系統(tǒng)的設(shè)計(jì)目標(biāo)和模型。由于條件有限,調(diào)研主要是在網(wǎng)上進(jìn)行。即通過在網(wǎng)上已有的訂餐網(wǎng)站注冊(cè)成會(huì)員來了解其具備的功能。從用戶角度來看:用戶通過在線注冊(cè)成為網(wǎng)站的用戶,可以獲得以下功能:菜品瀏覽,購買菜品,找回密碼,修改密碼,修改個(gè)人信息,菜品簡(jiǎn)介、訂餐車、留言板等。從網(wǎng)站的角度看:(1)網(wǎng)站應(yīng)該包含菜品搜索功能:按菜品名(模糊)查詢。(2)訂單處理功能,確認(rèn)訂單方式:(3)管理員管理:查看用戶信息,并根據(jù)用戶信息和用戶訂單對(duì)菜品進(jìn)行發(fā)派。(4)菜品瀏覽3.2可行性研究可行性研究階段的主要任務(wù)是在系統(tǒng)初步調(diào)查的基礎(chǔ)上,對(duì)新系統(tǒng)是否能夠?qū)崿F(xiàn)和值得實(shí)現(xiàn)等問題做出判斷,避免在花費(fèi)了大量的人力和物力之后才發(fā)現(xiàn)系統(tǒng)不能實(shí)現(xiàn)或新系統(tǒng)投入使用后沒有任何實(shí)際意義而引起的浪費(fèi),對(duì)新系統(tǒng)可行性的分析,要求用最小的代價(jià)在盡量短的時(shí)間內(nèi)確定系統(tǒng)是否可行。技術(shù)可行性分析:網(wǎng)絡(luò)訂餐系統(tǒng)的開發(fā)是一項(xiàng)復(fù)雜的系統(tǒng)工程。為了保證系統(tǒng)開發(fā)成功,必須采用工程化的系統(tǒng)開發(fā)方法,并研究出一些符合工程化標(biāo)準(zhǔn)的開發(fā)方法。這些方法旨在指導(dǎo)開發(fā)者進(jìn)行工程化的系統(tǒng)開發(fā),從而加快系統(tǒng)開發(fā)的速度,保證質(zhì)量以及降低開發(fā)成本。工程化的系統(tǒng)開發(fā)方法確實(shí)在開發(fā)實(shí)踐中取得了一定的效果。此次開發(fā)使用JSP作為開發(fā)語言,采用Servlet技術(shù),Tomcat5.0作為Web服務(wù)器。運(yùn)行可行性分析:隨著計(jì)算機(jī)知識(shí)的普及和推廣,越來越多的人掌握了計(jì)算機(jī)的基本使用方法和技能。隨著Internet的發(fā)展,用戶對(duì)于網(wǎng)絡(luò)、WINDOWS等環(huán)境下的軟件使用比較熟悉,對(duì)于新鮮事物,用戶表現(xiàn)出極大的興趣和熱情。經(jīng)濟(jì)可行性分析:網(wǎng)絡(luò)訂餐系統(tǒng)給人們帶來了方便,成為一種全新的商務(wù)模式。因此,不用出門就可以在家購物的新時(shí)尚已經(jīng)到來,構(gòu)建一個(gè)網(wǎng)絡(luò)訂餐系統(tǒng)在經(jīng)濟(jì)上是完全可行的。就本系統(tǒng)而言,隨著電腦的普及,為用戶在網(wǎng)絡(luò)上進(jìn)行訂餐提供有利的條件??梢宰悴怀鰬舻膲蛸I菜品。商家可以從中獲得利潤,兩全其美。通過以上的分析,開發(fā)網(wǎng)絡(luò)訂餐系統(tǒng)是完全可行的。運(yùn)行環(huán)境:本系統(tǒng)采用聯(lián)網(wǎng)多機(jī)多用戶操作方式,系統(tǒng)的運(yùn)行環(huán)境包括硬件、操作系統(tǒng)、關(guān)系數(shù)據(jù)庫等軟件:硬件:中央處理器(CPU):奔4以上的處理器;硬盤:80GB以上硬盤;內(nèi)存:512MB;顯示器:17寸顯示器;操作系統(tǒng):WindowsXP,關(guān)系數(shù)據(jù)庫:MYSQL;3.3需求分析當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對(duì)餐飲的要求也越來越高,不僅要求色香味俱全,而且對(duì)于就餐的時(shí)間和方式也有了更高的要求,許多顧客由于工作繁忙無法抽出時(shí)間來享受美味,這樣就產(chǎn)生了快捷訂餐的要求,最快的方式莫過于利用計(jì)算機(jī)網(wǎng)絡(luò),將餐飲業(yè)和計(jì)算機(jī)網(wǎng)絡(luò)結(jié)合起來,就形成了網(wǎng)上訂餐系統(tǒng),用能力的餐飲企業(yè)對(duì)對(duì)餐品提供商提供網(wǎng)上訂餐服務(wù),不僅提高餐飲企業(yè)的服務(wù)質(zhì)量,擴(kuò)大知名度,也是為最終用戶提供方便快捷的食品服務(wù)。需求分析的任務(wù)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變。此系統(tǒng)主要是針對(duì)顧客開放的網(wǎng)上訂餐系統(tǒng)。顧客訂餐主要流程如下:顧客登錄網(wǎng)上訂餐系統(tǒng)進(jìn)行菜單的瀏覽或者注冊(cè)為會(huì)員。會(huì)員可以對(duì)自己的個(gè)人信息進(jìn)行更改,以會(huì)員形式登陸的顧客享受訂餐服務(wù)。如果顧客覺得菜單應(yīng)該有所改變則可對(duì)已選的菜單進(jìn)行選擇、更改、刪除等功能。當(dāng)顧客確定訂餐完畢后,顧客可以將其提交至我們的餐廳后臺(tái)系統(tǒng),并生成訂單。顧客可以對(duì)系統(tǒng)或者餐廳有意見或者建議的留言給我們,我們會(huì)及時(shí)滿意的回復(fù)。管理員、后臺(tái)管理流程如下:管理員登錄后臺(tái)點(diǎn)餐系統(tǒng)。管理員可以管理會(huì)員信息。后臺(tái)將顧客點(diǎn)餐提交到后廚顯示。后廚根據(jù)顧客訂餐菜單進(jìn)行做菜。每完成一個(gè)菜就更改其狀態(tài)為已做。所有訂餐菜完成后根據(jù)會(huì)員提交送餐地址進(jìn)行確認(rèn)并送餐。對(duì)數(shù)據(jù)的安全性、完整性要求:用戶信息保密,只有管理員能任意修改。確保網(wǎng)上支付安全。菜品信息、用戶信息必須保證其完整性。防止惡意刪改。以下是系統(tǒng)性能需求:(a)準(zhǔn)確性和可靠性高(b)頁面友好,功能齊全,且可以使用(c)系統(tǒng)便于維護(hù)和升級(jí)。(d)數(shù)據(jù)庫訪問效率高3.4系統(tǒng)總體結(jié)構(gòu)圖3.5數(shù)據(jù)字典字典的作用是給詞匯以定義和解釋。在結(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖上每個(gè)成分以定義和說明。換句話說,數(shù)據(jù)流圖上所有成分的定義和解釋的文字集合就是數(shù)據(jù)字典。數(shù)據(jù)字典對(duì)數(shù)據(jù)流圖和各種成分起注解說明作用,給這些成分賦以實(shí)際的內(nèi)容。除此之外,數(shù)據(jù)字典還要對(duì)系統(tǒng)分析中其他需要說明的問題進(jìn)行定義和說明。數(shù)據(jù)字典描述的主要內(nèi)容有:數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲(chǔ)、加工、外部項(xiàng)。其中數(shù)據(jù)元素是組成數(shù)據(jù)流的基本成分,在系統(tǒng)分析中,數(shù)據(jù)字典起著重要的作用。系統(tǒng)用例圖3.6系統(tǒng)ER圖4網(wǎng)上訂餐系統(tǒng)總體設(shè)計(jì)4.1系統(tǒng)功能設(shè)計(jì)目標(biāo)理論系統(tǒng)功能設(shè)計(jì)目標(biāo)如下:(1)實(shí)用性強(qiáng):我們努力使系統(tǒng)符合實(shí)際操作流程的習(xí)慣,并盡量減少用戶的輸入,易學(xué)易用的友好的用戶界面,滿足各層次的用戶使用的需求;(2)先進(jìn)的程序結(jié)構(gòu):使用當(dāng)代前衛(wèi)的軟件編程,能延長(zhǎng)其生命周期,易于維護(hù)與管理;(3)安全可靠性高:后臺(tái)維護(hù)功能齊全,根據(jù)平臺(tái)在各個(gè)階段不同的使用情況,管理人員可以設(shè)置相應(yīng)的操作權(quán)限,增加系統(tǒng)注冊(cè),分配各個(gè)欄目的管理權(quán)限,實(shí)現(xiàn)系統(tǒng)的維護(hù),保證系統(tǒng)的安全、可靠;(4)使用模塊化設(shè)計(jì)的方法:使系統(tǒng)具有良好的可擴(kuò)充性,以適應(yīng)其不同階段的發(fā)展需要,便于后來者分析、維護(hù);(5)操作簡(jiǎn)單,維護(hù)方便:每個(gè)子系統(tǒng)都具有相對(duì)獨(dú)立的系統(tǒng)維護(hù)功能對(duì)可變化的項(xiàng)目可自行維護(hù);(6)查詢功能強(qiáng)大:可以對(duì)菜品的基本情況、用戶基本情況,菜品評(píng)信息,用戶留言等按各種方式查詢,可形成各種表單,同時(shí)還可對(duì)其進(jìn)行匯總,使管理人員能及時(shí)準(zhǔn)確地掌握用戶和菜品等的基本情況。4.2網(wǎng)絡(luò)訂餐系統(tǒng)功能模塊劃分根據(jù)需求分析與系統(tǒng)功能設(shè)計(jì)目標(biāo),結(jié)合實(shí)際情況本系統(tǒng)功能模塊設(shè)計(jì)分為如下幾個(gè)模塊:1.主頁:在這里我們可以看見本系統(tǒng)的主要功能和信息。2.用戶注冊(cè):在這里我們可以注冊(cè)我們的基本信息,其中電話和Email是比較重要的,因?yàn)槲覀冃枰獙?duì)這些信息進(jìn)行處理,以方便用戶的付款和郵購。3.用戶登陸:為了方便用戶的付款,訂餐和管理,我們需要變成會(huì)員后才可以進(jìn)行消費(fèi)。4.菜品瀏覽:成功登陸后的用戶可以瀏覽菜品菜品,并將想要的菜品提交到填寫訂單頁面。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登錄頁面”。5.訂購菜品:成功登陸的用戶可以在該頁面定購所需要的菜品。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。6.查看訂單:成功登陸的用戶可以在該頁修改已經(jīng)訂購的菜品。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。7.修改訂單:成功登陸的用戶可以在該頁修改或刪除已經(jīng)訂購的菜品。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。8.菜品查詢:成功登陸的用戶可以在該頁查找自己需要的菜品。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。9.修改密碼:成功登陸的用戶可以在該頁修改自己的密碼。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。10.修改個(gè)人信息:成功登陸的用戶可以在該頁修改自己當(dāng)初注冊(cè)時(shí)的信息。如果用戶還沒有注冊(cè)就直接進(jìn)入或者沒有成功登陸就進(jìn)入頁面,將被連接到“用戶登陸頁面”。11.網(wǎng)站公告:發(fā)布各種菜品信息或者新聞。12.管理員:查看用戶訂單,查看用戶信息,并根據(jù)用戶信息和用戶訂單對(duì)菜品進(jìn)行發(fā)派。4.3網(wǎng)上網(wǎng)上訂餐功能說明根據(jù)對(duì)顧客網(wǎng)上訂餐系統(tǒng)業(yè)務(wù)流程的分析,課已看出顧客點(diǎn)菜主要涉及到一些數(shù)據(jù)庫的邏輯和程序應(yīng)用邏輯。具體的功能歸納如下:顧客登錄網(wǎng)上訂餐系統(tǒng)進(jìn)行菜單瀏覽,注冊(cè)為會(huì)員。會(huì)員對(duì)自己的個(gè)人信息進(jìn)行更改,比如送餐地址和聯(lián)系電話。以及賬戶密碼。顧客對(duì)已選的菜單進(jìn)行更改選擇的數(shù)量或者取消選擇。當(dāng)顧客確定訂餐完畢后,顧客將其提交只服務(wù)器后臺(tái)點(diǎn)餐系統(tǒng),并生成訂單。管理員后臺(tái)管理系統(tǒng)功能分析:管理員在后臺(tái)登錄后,可以創(chuàng)建新的管理員。管理員可以對(duì)餐廳網(wǎng)上訂餐系統(tǒng)上的菜單進(jìn)行添加、刪除和修改,比如更改菜單的圖片,價(jià)格,菜單的描述,更換新品,添加新菜等。管理員對(duì)菜單進(jìn)行管理,確定訂單的生成。管理員根據(jù)不同的屬性來查詢訂單,比如生成日期或者編號(hào)等。管理員根據(jù)不同的時(shí)間段統(tǒng)計(jì)處營業(yè)額,成本,同時(shí)還能統(tǒng)計(jì)出每道菜的銷售量、任何時(shí)間段的銷售情況以及每一個(gè)顧客的消費(fèi)情況。5系統(tǒng)功能實(shí)現(xiàn)5.1網(wǎng)站首頁的設(shè)計(jì)與實(shí)現(xiàn)界面風(fēng)格以橙色為主調(diào),清新自然,可以增強(qiáng)食欲,添加動(dòng)態(tài)畫面效果,避免了頁面的呆板。包括了登錄窗口,關(guān)于我們,網(wǎng)上訂餐,最新活動(dòng),時(shí)間顯示,友情鏈接,F(xiàn)lash圖片播放等。顧客登錄后選擇網(wǎng)上訂餐,選擇喜歡的餐品進(jìn)行訂餐,提交給后臺(tái)后生成訂單。5.2用戶注冊(cè)功能的設(shè)計(jì)與實(shí)現(xiàn)用戶注冊(cè)功能要求非常嚴(yán)謹(jǐn),因?yàn)樯婕暗綌?shù)據(jù)庫安全性問題,所以需要對(duì)用戶的輸入信息進(jìn)行合法性驗(yàn)證。5.3網(wǎng)上訂餐功能的設(shè)計(jì)與實(shí)現(xiàn)注冊(cè)用戶可以在網(wǎng)站上瀏覽菜品信息,查詢菜品信息,并在線訂購菜品。訂購后可以在購物車內(nèi)查看到訂購的菜品,修改訂購數(shù)量,聯(lián)系方式,收貨人等信息。確認(rèn)無誤后可選擇付款方式并在線提交訂單。5.4訂單管理功能的設(shè)計(jì)與實(shí)現(xiàn)管理員登陸后可以在管理后臺(tái)查看用戶提交的訂單信息,查看訂單發(fā)生金額,管理發(fā)貨信息。5.5菜品發(fā)布功能的設(shè)計(jì)與實(shí)現(xiàn)管理員可以在網(wǎng)站后臺(tái)發(fā)布、修改、刪除菜品信息。發(fā)布時(shí)可以上傳菜品圖片,增加視覺效果,并且可以通過文本編譯器實(shí)現(xiàn)對(duì)菜品介紹文字的編輯及圖片等的插入、排版,為用戶創(chuàng)造一個(gè)完美的視覺效果,方便用戶選擇訂餐。6軟件安裝與調(diào)試6.1軟件的安裝與配置(1)軟件安裝:JDK安裝特別簡(jiǎn)單,和安裝其他的軟件沒什么區(qū)別。JDK的配置:設(shè)置JAVA_HOME環(huán)境變量:JDK安裝目錄例:C:\j2sdk1.4;設(shè)置CLASSPATH環(huán)境變量:JDK安裝目錄\lib\tools.jar例:C:\j2sdk1.4\lib\tools.jar;.設(shè)置PATH環(huán)境變量:JDK安裝目錄\bin;例:C:\j2sdk1.4\bin;服務(wù)器的安裝:Tomcat5.0設(shè)置TOMCAT_HOME環(huán)境變量:Tomcat安裝目錄例:C:\Tomcat5.0;(2)安裝Tomcat5.0安裝時(shí)注意在選擇Java虛擬機(jī)路徑是一定要選擇安裝的JSDK的目錄,然后再開始安裝。(3)安裝完畢后,啟動(dòng)TOMCAT,然后再瀏覽器中輸入http://localhost:8080時(shí)可以看見TOMCAT的歡迎頁面,這時(shí)表示配置成功了。6.2軟件調(diào)試系統(tǒng)調(diào)試的目的是發(fā)現(xiàn)程序和系統(tǒng)中的錯(cuò)誤并及時(shí)予以糾正。在網(wǎng)絡(luò)訂餐系統(tǒng)中用的調(diào)試方法也包括這些:(1)程序調(diào)試包括語法調(diào)試和邏輯檢查,測(cè)試數(shù)據(jù)除采用正常數(shù)據(jù)外,還應(yīng)用一些異常資料,用來考驗(yàn)程序的正確性。=1\*GB3①用正常資料調(diào)試。=2\*GB3②用異常資料調(diào)試。=3\*GB3③用錯(cuò)誤資料調(diào)試。6.3軟件測(cè)試軟件的測(cè)試是系統(tǒng)開發(fā)周期中一個(gè)十分重要的環(huán)節(jié),其重要性體現(xiàn)在它是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,是對(duì)整個(gè)系統(tǒng)開發(fā)過程的最終審查,如果錯(cuò)誤不能在測(cè)試階段被發(fā)現(xiàn)并糾正,就可能會(huì)造成不堪設(shè)想的后果。在網(wǎng)上訂餐平臺(tái)中,我們以黑盒測(cè)試為主,白盒測(cè)試為輔。對(duì)關(guān)鍵模塊采用白盒測(cè)試。測(cè)試結(jié)果:中文亂碼問題,從數(shù)據(jù)庫中取出的中文數(shù)據(jù)出現(xiàn)亂碼。參數(shù)傳遞出錯(cuò),無法傳遞數(shù)據(jù)。當(dāng)大量用戶同時(shí)對(duì)數(shù)據(jù)庫進(jìn)行訪問時(shí),效率低,有的用戶訪問失敗。主要的解決方法:我使用如下方法來解決亂碼問題:request.getParameter("choose").getBytes("8859_1"),"GB2312"<%@pagecontentType="text/html;charset=GB2312"%>對(duì)于各個(gè)模塊接參數(shù)的格式進(jìn)行了統(tǒng)一本程序以中小型為基礎(chǔ),采用JDBC數(shù)據(jù)源進(jìn)行連接數(shù)據(jù)庫這就決定了本系統(tǒng)的先天缺陷。純正的電子商務(wù)網(wǎng)站均采用連接池,出于技術(shù)難度大和資料缺乏放棄此最佳方案。7結(jié)論7.1系統(tǒng)評(píng)價(jià)本文通過本系統(tǒng)設(shè)計(jì)與開發(fā),從而得出下列結(jié)論:(1)學(xué)習(xí)一門新技術(shù),最重要的是實(shí)踐,只有多動(dòng)手才能盡快掌握它。(2)一個(gè)系統(tǒng)的開發(fā),經(jīng)驗(yàn)是最重要的,經(jīng)驗(yàn)不足,就難免會(huì)有許多考慮不周之處。(3)要想吸引更多的用戶,系統(tǒng)的界面必須要美觀、有特色、友好,功能要健全。不過由于經(jīng)驗(yàn)不足,我設(shè)計(jì)的圖形界面比較簡(jiǎn)單。只是對(duì)基本功能進(jìn)行了開發(fā)。(4)本次開發(fā),我參考了很多本系統(tǒng)的例子,吸取了一些別的本系統(tǒng)的長(zhǎng)處,對(duì)自己的畢業(yè)設(shè)計(jì)進(jìn)行了完善,但是還有很多的不足之處,有待以后進(jìn)一步學(xué)習(xí)。實(shí)踐證明,本系統(tǒng)有著很好的發(fā)展前景,經(jīng)測(cè)試運(yùn)行。本文所制作的系統(tǒng)界面友好、使用靈活、操作簡(jiǎn)單、功能齊全、表現(xiàn)方式獨(dú)特,已基本具備了成熟的技術(shù)理論。由于時(shí)間倉促,本次設(shè)計(jì)由我完成本系統(tǒng)的制作,對(duì)我這樣一個(gè)JSP新手而言所制作的模塊還有不完善的地方。數(shù)據(jù)庫的設(shè)計(jì)也比較簡(jiǎn)單。還有很多畢業(yè)設(shè)計(jì)中用到JSP語言的知識(shí)也不夠全面,還有很多地方不能夠作到完全
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能交通城市交通管理網(wǎng)絡(luò)規(guī)劃方案
- 一年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- Lesson 22 Can you see the bus教學(xué)設(shè)計(jì)-2025-2026學(xué)年小學(xué)英語二年級(jí)下冊(cè)冀教版(一起)
- 2025年人防監(jiān)理考試試題及答案
- 2024-2025學(xué)年新教材高中語文 第6單元 觀察與批判 14 促織 變形記(節(jié)選)說課稿 新人教版必修下冊(cè)
- 2025年醫(yī)療器械法律法規(guī)相關(guān)知識(shí)培訓(xùn)必考試題及答案
- 2025年輸血培訓(xùn)考試試題庫及答案
- 間接言語行為理論視域下《致命女人》中語用身份建構(gòu)研究
- 2025年養(yǎng)老護(hù)理師考試內(nèi)容題庫及答案
- 第3課 智能家居項(xiàng)目設(shè)計(jì)-小小家居設(shè)計(jì)師說課稿-2025-2026學(xué)年小學(xué)信息科技清華版貴州2024五年級(jí)下冊(cè)-清華版(貴州)2024
- DB11∕T 1200-2023 超長(zhǎng)大體積混凝土結(jié)構(gòu)跳倉法技術(shù)規(guī)程
- 研發(fā)人員晉升管理制度
- 關(guān)于醫(yī)院“十五五”發(fā)展規(guī)劃(2026-2030)
- 活動(dòng)人員分工安排方案
- 廢棄文件銷毀合同協(xié)議
- 醫(yī)學(xué)軟課題申報(bào)書
- 鈦鎂合金合同協(xié)議
- 農(nóng)民種植手冊(cè)
- 超聲介入基礎(chǔ)課件
- 中外航海文化知到課后答案智慧樹章節(jié)測(cè)試答案2025年春中國人民解放軍海軍大連艦艇學(xué)院
- 《茉莉花》音樂課件
評(píng)論
0/150
提交評(píng)論