網(wǎng)上訂餐jsp系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  本系統(tǒng)屬于商品管理自動(dòng)化系統(tǒng)的一個(gè)子系統(tǒng),它也是一個(gè)單獨(dú)的功能完善的系統(tǒng),本課題是網(wǎng)上訂餐管理系統(tǒng)的研發(fā),本文的系統(tǒng)分析和設(shè)計(jì)只是相對(duì)于一般的團(tuán)體而言。</p><p>  本文包括網(wǎng)上訂餐管理系統(tǒng)NOMS(Net-Order Management system)的總體方案設(shè)計(jì)和開(kāi)發(fā)。著重介紹了訂餐管

2、理系統(tǒng)的詳細(xì)開(kāi)發(fā)方案和實(shí)現(xiàn),內(nèi)容涉及系統(tǒng)分析、軟件設(shè)計(jì)。</p><p>  在開(kāi)發(fā)設(shè)計(jì)中,采用B/S(Browser/Server)結(jié)構(gòu),這種結(jié)構(gòu)使得數(shù)據(jù)只有結(jié)果集合在瀏覽器中顯示,數(shù)據(jù)的處理在服務(wù)器進(jìn)行,用戶不用安裝客戶端,而且由于通過(guò)服務(wù)器端統(tǒng)一管理數(shù)據(jù),易于保證數(shù)據(jù)的一致性。數(shù)據(jù)庫(kù)方面,推薦業(yè)界具有領(lǐng)導(dǎo)地位的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)Microsoft SQL sever2000,使系統(tǒng)安全性能更高。同時(shí)采用當(dāng)前

3、正在流行的JSP(Java Server Pages)編程,用戶界面更友好。</p><p>  在開(kāi)發(fā)中選擇了JSP+JavaBean+SQL2000的模式,實(shí)現(xiàn)了應(yīng)用程序邏輯和頁(yè)面顯示分離,界面設(shè)計(jì)更簡(jiǎn)單。JavaBean可重用的軟件組件滿足小型應(yīng)用,同時(shí)使編程人員投入量精力便可重用組件,在簡(jiǎn)單的應(yīng)用中可以充分考慮。</p><p>  關(guān)鍵字 網(wǎng)上訂餐管理系統(tǒng),NOMS(Order

4、 management system),B/S,JSP(Java Server Pages),JavaBean</p><p><b>  ABSTRACT</b></p><p>  This system belongs to the product management automation system a sub- system, it also is th

5、e system which an independent function consummates,This topic is the Net-Order Management System partial research and development, This article system analysis and the design only is opposite in the common association sa

6、ys.</p><p>  This paper includes system design and development of NOMS. It introduced the detailed development product management and realizations of the Net-Order Managerment System. It contains system anal

7、ysis and design of software.</p><p>  In developing, it adopts the structure of Browser/Server. This structure makes only concourse of result data print in the browser. And this kind of structure can lighte

8、n client burden greatly. As the server administers the data in unison, it is apt to guarantee the consistency of the data. The Microsoft SQL sever2000 database is security, so lots of use it. In addition, the tool of J

9、SP makes the interface more amity.</p><p>  Chose in the development JSP+JavaBean+SQl2000 Pattern,Realized The contact surface design is simpler.JavaBeanMay entrust with heavy responsibility software moduleS

10、atisfies the small application,Also causesThe programmers inputs energy then may entrust with heavy responsibility the module,May fully consider in the simple application.</p><p>  KEY WORD: B/S,NOMS, Jsp

11、, Javabean</p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p><p>  1.1 課題的背景及意義1</p><p><b>  1.2課題分析2</b></p><p>  1

12、.3技術(shù)方案的選取2</p><p>  1.3.1 開(kāi)發(fā)語(yǔ)言2</p><p>  1.3.2 開(kāi)發(fā)模式選擇3</p><p>  1.3.3 數(shù)據(jù)庫(kù)4</p><p>  第二章 系統(tǒng)概述5</p><p><b>  2.1運(yùn)行環(huán)境5</b></p><p&g

13、t;  2.1.1軟件運(yùn)行環(huán)境5</p><p><b>  2.2需求分析5</b></p><p>  2.2.1 管理者的需求5</p><p>  2.2.2 系統(tǒng)使用者需求5</p><p>  2.2.3 系統(tǒng)維護(hù)人員需求6</p><p>  2.3 總體設(shè)計(jì)原則6<

14、;/p><p>  2.4 系統(tǒng)體系結(jié)構(gòu)分析6</p><p>  2.4.1 C/S結(jié)構(gòu)與B/S結(jié)構(gòu)6</p><p>  2.4.2 B/S與C/S的優(yōu)越性7</p><p><b>  第三章程序設(shè)計(jì)9</b></p><p>  3.1系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)9</p><

15、p>  3.2 程序模塊設(shè)計(jì)11</p><p>  3.3 系統(tǒng)模塊總圖14</p><p>  3.3 分頁(yè)顯示算法14</p><p>  3.4 上傳下載的實(shí)現(xiàn)16</p><p>  3.4.1 jspSmartUpload組件的特點(diǎn)16</p><p>  3.4.2、jspSmartUpl

16、oad組件相關(guān)類(lèi)17</p><p>  3.4.3 jspSmartUpload實(shí)例21</p><p>  3.5程序界面設(shè)計(jì)22</p><p>  第四章 系統(tǒng)實(shí)現(xiàn)主要技術(shù)25</p><p>  4.1 JavaServer Pages(JSP)技術(shù)簡(jiǎn)介25</p><p>  4.2 J

17、SP 和其他類(lèi)似或相關(guān)技術(shù)的一個(gè)簡(jiǎn)單比較26</p><p>  4.3 最佳JSP應(yīng)用服務(wù)器Tomcat26</p><p>  4.4 javaBean組件技術(shù)27</p><p>  4.5 JSP中JavaBeans的應(yīng)用30</p><p>  4.5.1 <jsp:useBean>操作指令31</p&g

18、t;<p>  4.5.2 JavaBeans的Scope屬性31</p><p>  4.7 Tomcat配置33</p><p>  4.7.1 Server.xml文件配置33</p><p>  4.8 數(shù)據(jù)庫(kù)編程35</p><p>  4.8.1數(shù)據(jù)庫(kù)編程基礎(chǔ)及語(yǔ)法35</p><p&g

19、t;  4.8.2 本系統(tǒng)中的連接方式37</p><p>  第五章 測(cè)試問(wèn)題及解決38</p><p>  5.1 java漢字處理問(wèn)題及解決39</p><p>  5.2文件下載問(wèn)題39</p><p><b>  結(jié) 論40</b></p><p><b>  結(jié)束

20、語(yǔ)41</b></p><p><b>  參考文獻(xiàn)42</b></p><p><b>  附 錄43</b></p><p><b>  第一章 緒論</b></p><p>  1.1 課題的背景及意義</p><p>  隨著

21、Internet的普及,越來(lái)越多的企業(yè)建立了自己的WWW網(wǎng)站,企業(yè)通過(guò)網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動(dòng)態(tài)信息,與用戶進(jìn)行交流和溝通,與合作伙伴建立聯(lián)系,以及開(kāi)展電子商務(wù)等。</p><p>  其中網(wǎng)上訂餐系統(tǒng)是電子商務(wù)網(wǎng)站的一種,隨著信息化時(shí)代的到來(lái),人們對(duì)生活質(zhì)量的追求不斷提高,由于人們工作,學(xué)習(xí)的關(guān)系,常常無(wú)法正常吃飯,隨著網(wǎng)絡(luò)的普及,網(wǎng)上訂餐業(yè)務(wù)在中國(guó)開(kāi)始盛行,人們也通過(guò)網(wǎng)絡(luò)訂餐的方式獲得自己需要的食物。這樣

22、既節(jié)省了時(shí)間,也可以為廣大用戶提供更多的口味。</p><p>  該系統(tǒng)使用JSP(Java語(yǔ)言)和SQL Server2000數(shù)據(jù)庫(kù)開(kāi)發(fā), 實(shí)現(xiàn)了網(wǎng)上訂餐系統(tǒng)的動(dòng)態(tài)管理,使得網(wǎng)上訂餐的管理更加及時(shí)、高效,提高了工作效率。該管理系統(tǒng)具有一般網(wǎng)上訂餐系統(tǒng)的功能,從大的方面來(lái)講主要包括資訊管理,餐飲管理,預(yù)定管理,用戶管理等幾個(gè)大的功能模塊。</p><p>  該系統(tǒng)是基于B/S(Brow

23、ser/Server,瀏覽器/客戶端)模式實(shí)現(xiàn),基于Myeclipse平臺(tái)架構(gòu)開(kāi)發(fā)設(shè)計(jì),主要實(shí)現(xiàn)對(duì)網(wǎng)上訂餐的使用、需求、以及用戶訂餐的動(dòng)態(tài)管理等。隨著Internet/Intranet技術(shù)的興起,將原本在單機(jī)或本地局域網(wǎng)上運(yùn)行的數(shù)據(jù)庫(kù)系統(tǒng)移植到因特網(wǎng)中,即開(kāi)發(fā)基于B/S模式的新一代MIS(Management Information System,管理信息系統(tǒng))系統(tǒng),正成為技術(shù)發(fā)展的趨勢(shì)。為了保證系統(tǒng)性能的高效性、可擴(kuò)展性,以及達(dá)到數(shù)據(jù)

24、共享和網(wǎng)絡(luò)化管理的目的,本系統(tǒng)采用B/S體系結(jié)構(gòu)進(jìn)行設(shè)計(jì)開(kāi)發(fā)。</p><p><b>  1.2課題分析</b></p><p>  該系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)部分,前臺(tái)部分主要是用戶進(jìn)行資訊的瀏覽,以及訂餐,訂座管理等,主要是面向用戶的。而后臺(tái)主要是管理人員對(duì)前臺(tái)數(shù)據(jù)的維護(hù)和設(shè)置,主要是面向管理人員的。網(wǎng)上訂餐系統(tǒng)無(wú)論是在應(yīng)用的深度還是廣度都是一個(gè)逐步發(fā)展的過(guò)程。在

25、開(kāi)發(fā)一個(gè)局部系統(tǒng)時(shí)要充分考慮到局部系統(tǒng)和整個(gè)目標(biāo)系統(tǒng)之間的相容性和完整性,以利于今后整個(gè)系統(tǒng)的建立。該系統(tǒng)從總體上把握系統(tǒng)的設(shè)計(jì),在具體的設(shè)計(jì)實(shí)現(xiàn)上我們圍繞著三個(gè)方面的需求展開(kāi),即管理者、系統(tǒng)使用者、系統(tǒng)維護(hù)者。</p><p>  對(duì)于本系統(tǒng)的不同使用者,其功能與業(yè)務(wù)邏輯是不盡相同的。對(duì)于普通用戶而言,系統(tǒng)主要像用戶展示一個(gè)美觀的界面,用戶在可以瀏覽各類(lèi)資訊,查詢餐飲信息,訂餐,訂座等。而管理員則需要在后臺(tái)維護(hù)

26、這些數(shù)據(jù)。本系統(tǒng)的主要功能應(yīng)是用戶的訂餐了,用戶可以查詢菜品信息,當(dāng)發(fā)現(xiàn)自己滿意的以后,可以將這些菜品添加到自己的購(gòu)物車(chē),此時(shí)用戶雖然選擇了要預(yù)定的商品,但是還不具備法律效用,當(dāng)用戶通過(guò)一定方式(此方式不屬編程范圍)得到預(yù)定許可后,管理員在后臺(tái)可以審核是否批準(zhǔn)該用戶的訂餐請(qǐng)求,當(dāng)管理員同意了該用戶的訂餐請(qǐng)求,即可將該用戶所預(yù)定的發(fā)送給客戶,此時(shí)客戶在客戶端可以看到自己購(gòu)物車(chē)的狀態(tài)(此時(shí)是已經(jīng)通過(guò)審核),如果管理員沒(méi)有批準(zhǔn)或沒(méi)有處理等,該

27、客戶都可以在前臺(tái)看見(jiàn)相關(guān)信息。</p><p>  1.3技術(shù)方案的選取</p><p>  1.3.1 開(kāi)發(fā)語(yǔ)言</p><p>  隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,基于瀏覽器/服務(wù)器(Browser/Server 簡(jiǎn)稱B/S)體系結(jié)構(gòu)的應(yīng)用程序得到了空前廣泛的應(yīng)用。但是服務(wù)器之間的通訊,尤其是在不同平臺(tái)上運(yùn)行的服務(wù)器之間的通訊仍然不是一件容易的事情。因?yàn)榇蠖鄶?shù)Inte

28、rnet應(yīng)用程序都是以數(shù)據(jù)庫(kù)為中心的,方便的訪問(wèn)多種數(shù)據(jù)源的能力也比以往任何時(shí)候都更加重要。</p><p>  JSP無(wú)疑可以輕松地實(shí)現(xiàn)這類(lèi)功能,JSP技術(shù)是一種服務(wù)器端的HTML頁(yè)面中嵌入JAVA代碼的腳本語(yǔ)言,它比一般腳本語(yǔ)言的執(zhí)行速度更快,由于JSP是基于JAVA語(yǔ)言的,所以它可以運(yùn)行在UNIX/LINUX和WINDOWS平臺(tái)上,是一種難得的動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言。</p><p>  

29、在動(dòng)態(tài)內(nèi)容的解決問(wèn)題中,還存在其他的解決方法,但是開(kāi)發(fā)人員要掌握這些技術(shù)很難。例如,Java Servlets這樣的技術(shù)就可以使得用Java語(yǔ)言編寫(xiě)交互式的應(yīng)用程序的服務(wù)器端的代碼變得更加簡(jiǎn)單。Java Servlets就是一個(gè)基于Java技術(shù)的運(yùn)行在服務(wù)器端的程序(與Applet不同,后者運(yùn)行在瀏覽器端)。開(kāi)發(fā)人員編寫(xiě)出Servlet程序,用來(lái)接收來(lái)自Web瀏覽器的HTTP請(qǐng)求,動(dòng)態(tài)地生成響應(yīng),然后發(fā)送包含HTML或XML文檔到瀏覽器

30、。</p><p>  但是使用這種方法,整個(gè)網(wǎng)頁(yè)必須都在Java Servlet中制作。如果開(kāi)發(fā)人員或者Web管理人員想要調(diào)整頁(yè)面的顯示,就不得不從新編輯并編譯Java Servlet程序。采用這種方法,編寫(xiě)帶有動(dòng)態(tài)內(nèi)容的頁(yè)面需要有很熟練的應(yīng)用程序開(kāi)發(fā)技巧和經(jīng)驗(yàn)。很顯然,一個(gè)簡(jiǎn)單的創(chuàng)建動(dòng)態(tài)頁(yè)面的解決方案要能解決以下的問(wèn)題: </p><p>  1. 能夠在任何Web或應(yīng)用程序服務(wù)器上運(yùn)

31、行</p><p>  2. 將應(yīng)用程序邏輯和頁(yè)面顯示分離</p><p>  3. 能夠快速地開(kāi)發(fā)和測(cè)試</p><p>  4. 簡(jiǎn)化開(kāi)發(fā)基于Web的交互式應(yīng)用程序的過(guò)程</p><p>  JavaServer Pages (JSP)滿足這些要求,它整合了存在的Java編程環(huán)境提供支持的技術(shù)和工具,產(chǎn)生了一種新的、開(kāi)發(fā)基于Web應(yīng)用程序

32、的方法,這個(gè)方法給予使用基于組件應(yīng)用的邏輯頁(yè)面的設(shè)計(jì)者提供了強(qiáng)大的功能。</p><p>  1.3.2 開(kāi)發(fā)模式選擇</p><p>  JSP有兩中開(kāi)發(fā)模式JSP+JavaBeans和JSP+Servlet+JavaBeans,在模式一中,JSP頁(yè)面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回客戶。所有的數(shù)據(jù)通過(guò)Bean來(lái)處理JSP實(shí)現(xiàn)頁(yè)面的表現(xiàn)。模式一技術(shù)實(shí)現(xiàn)了頁(yè)面的表現(xiàn)--和頁(yè)面的商業(yè)邏輯相分離。

33、大量使用模式一形式,常常會(huì)導(dǎo)致頁(yè)面被嵌入大量的腳本語(yǔ)言或JAVA代碼。當(dāng)需要處理的商業(yè)邏輯很復(fù)雜時(shí),這種情況會(huì)變得非常糟糕。大量的代碼會(huì)使整個(gè)頁(yè)面變得常復(fù)雜。對(duì)于前端界面設(shè)計(jì)人員來(lái)說(shuō),這簡(jiǎn)直不可想象。這種情況在大項(xiàng)目中最為常見(jiàn),這也造成了代碼的開(kāi)發(fā)和維護(hù)出現(xiàn)困難,造成了不必要的資源浪費(fèi),在任何項(xiàng)目中,這樣的模式總會(huì)導(dǎo)致多多少少的定義不清的響應(yīng)和項(xiàng)目管理的困難。 </p><p>  綜上所訴,模式一不能滿足大型項(xiàng)

34、目的需要,但是可以較好的滿足小型應(yīng)用,在簡(jiǎn)單的應(yīng)用中可以考慮模式一。</p><p>  模式二JSP+Servlet+JavaBeans中 ,Servlets技術(shù)是一種采用JAVA技術(shù)來(lái)實(shí)現(xiàn)CGI功能的一種術(shù)。Servlets技術(shù)是運(yùn)行在WEB服務(wù)器上,用來(lái)生成WEB頁(yè)面。Servlets技術(shù)非常實(shí)用于服務(wù)器端的處理和編程,并且Servlet會(huì)長(zhǎng)期駐留在他們所處的位置。 但是在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)程中,頁(yè)面設(shè)計(jì)者可

35、以方便地使用普通HTML工具來(lái)開(kāi)發(fā)JSP頁(yè)面,Servlet卻更適合于后端開(kāi)發(fā)者使用,開(kāi)發(fā)Servlet需要的是JAVA集成開(kāi)發(fā)環(huán)境,也就是說(shuō)Servlet技術(shù)更需要編程人員。 </p><p>  模式二技術(shù)結(jié)合了JSP和Servlet技術(shù)充分體現(xiàn)了兩者的技術(shù)優(yōu)點(diǎn)。在此模式中通過(guò)JSP來(lái)表現(xiàn)頁(yè)面。通過(guò)Servlet來(lái)完成大量的事務(wù)處理。 Servlet充當(dāng)一個(gè)控制者的角色,并負(fù)責(zé)向客戶發(fā)送請(qǐng)求。Servlet創(chuàng)

36、建JSP所需要的Bean和對(duì)象,然后根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁(yè)面發(fā)送給客戶。 從開(kāi)發(fā)的觀點(diǎn),模式二具有更清晰的頁(yè)面表現(xiàn),清楚的開(kāi)發(fā)者角色劃分,可以充分利用開(kāi)發(fā)小組的界面設(shè)計(jì)人員,這些優(yōu)勢(shì)在大型項(xiàng)目開(kāi)發(fā)中表現(xiàn)的尤為突出,使用這一模式,可以充分發(fā)揮每個(gè)開(kāi)發(fā)者各自的特長(zhǎng),界面設(shè)計(jì)人員可以充分發(fā)揮自己的表現(xiàn)力,設(shè)計(jì)出優(yōu)美的界面表現(xiàn)形式,設(shè)計(jì)人員可以充分發(fā)揮自己的商務(wù)處理思維,來(lái)實(shí)現(xiàn)項(xiàng)目中的業(yè)務(wù)處理。在大型項(xiàng)目中,模式二更被采用。&l

37、t;/p><p>  但是,本系統(tǒng)開(kāi)發(fā)只是一個(gè)小型的JSP應(yīng)用,同時(shí)由于Servlet難于掌握,所以在本課題中采用了模式一開(kāi)發(fā),既JSP+JavaBean。</p><p><b>  1.3.3 數(shù)據(jù)庫(kù)</b></p><p>  SQL Server 2000是一個(gè)分布式的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有客戶/服務(wù)器體系結(jié)構(gòu)。Mircrosoft S

38、QL Server 2000是一個(gè)應(yīng)用廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),具有許多顯著特點(diǎn),例如,用戶喜歡的易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉(cāng)庫(kù)功能、與許多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性能價(jià)格比等。</p><p>  SQL Server 2000系統(tǒng)中,數(shù)據(jù)庫(kù)的管理采取了先進(jìn)的動(dòng)態(tài)管理機(jī)制,數(shù)據(jù)庫(kù)的大小可以隨著數(shù)據(jù)量的變化而縮小或者擴(kuò)大。另外,用戶數(shù)據(jù)都是非常重要的和保密的,這些數(shù)據(jù)存儲(chǔ)在Mi

39、rcrosoft SQL Server 2000系統(tǒng)中有絕對(duì)的安全性保障,有完善的用戶帳戶策略和許可機(jī)制,只有經(jīng)過(guò)授權(quán)的用戶才能訪問(wèn)系統(tǒng),并且執(zhí)行相應(yīng)的操作和訪問(wèn)允許訪問(wèn)的數(shù)據(jù)。未經(jīng)授權(quán)的用戶既不能執(zhí)行相應(yīng)的操作,也不能訪問(wèn)數(shù)據(jù)庫(kù)中的相應(yīng)數(shù)據(jù)。</p><p>  SQL Server 2000系統(tǒng)具有強(qiáng)大的網(wǎng)上功能,可以在Internet上發(fā)布數(shù)據(jù)庫(kù)中的數(shù)據(jù)。在Mircrosoft SQL Server 200

40、0系統(tǒng)中,允許用戶簡(jiǎn)單的使用一些向?qū)Ш凸ぞ甙褦?shù)據(jù)庫(kù)的數(shù)據(jù)發(fā)布到網(wǎng)絡(luò)上,并且可以根據(jù)需要來(lái)調(diào)度修改已經(jīng)發(fā)布的數(shù)據(jù)。</p><p><b>  第二章 系統(tǒng)概述</b></p><p><b>  2.1運(yùn)行環(huán)境</b></p><p>  2.1.1軟件運(yùn)行環(huán)境</p><p><b> 

41、 服務(wù)器端:</b></p><p>  操作系統(tǒng):Windows XP操作系統(tǒng)</p><p>  數(shù)據(jù)庫(kù):Microsoft SQL Server 2000</p><p>  網(wǎng)絡(luò)通信協(xié)議:TCP/IP</p><p>  支持軟件:tomcat,MyEclipse</p><p><b>

42、  2.2需求分析</b></p><p>  網(wǎng)上訂餐管理系統(tǒng)無(wú)論是在應(yīng)用的深度還是廣度都是一個(gè)逐步發(fā)展的過(guò)程。在開(kāi)發(fā)一個(gè)局部系統(tǒng)時(shí)要充分考慮到局部系統(tǒng)和整個(gè)目標(biāo)系統(tǒng)之間的相容性和完整性,以利于今后整個(gè)系統(tǒng)的建立。進(jìn)貨訂單管理系統(tǒng)從總體上把握系統(tǒng)的設(shè)計(jì),在具體的設(shè)計(jì)實(shí)現(xiàn)上我們圍繞著三個(gè)方面的需求展開(kāi),即管理者、系統(tǒng)使用者、系統(tǒng)維護(hù)者。</p><p>  2.2.1 性能需求

43、分析</p><p>  該系統(tǒng)在性能功能上應(yīng)達(dá)到如下需求:</p><p>  ◆ 操作簡(jiǎn)單、界面友好: 完全控件式的頁(yè)面布局,使得菜品,資訊,座位等信息的錄入工作更簡(jiǎn)便,許多選項(xiàng)包括餐廳信息,桌位,包房信息等只需要點(diǎn)擊鼠標(biāo)就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時(shí)清楚自己的操作情況。對(duì)常見(jiàn)的類(lèi)似網(wǎng)站的管理的各個(gè)方面:基本信息錄入、瀏覽、刪除、修改、搜索等方面都大體實(shí)現(xiàn),顧客對(duì)菜品

44、的預(yù)定及支付方式;</p><p>  ◆ 即時(shí)可見(jiàn):對(duì)客戶預(yù)定餐飲信息的處理(包括錄入、刪除)將立即在主頁(yè)的對(duì)應(yīng)欄目顯示出來(lái),達(dá)到“即時(shí)發(fā)布、即時(shí)見(jiàn)效”的功能;</p><p>  ◆ 系統(tǒng)運(yùn)行應(yīng)該快速、穩(wěn)定、高效和可靠;</p><p>  ◆ 在結(jié)構(gòu)上應(yīng)具有很好的可擴(kuò)展性,便于將來(lái)的功能擴(kuò)展和維護(hù)。</p><p>  2.2.2產(chǎn)品質(zhì)

45、量需求分析</p><p>  2.2.3 可行性分析</p><p>  隨著經(jīng)濟(jì)的快速發(fā)展,B2C電子商務(wù)越來(lái)越受到人們的關(guān)注。網(wǎng)上訂餐類(lèi)網(wǎng)站,已經(jīng)如雨后春筍般的出現(xiàn)在了個(gè)大城市。特別在公司,企業(yè)內(nèi)部,團(tuán)體訂餐已經(jīng)成為了趨勢(shì)。同時(shí),隨著全國(guó)人民的精神、物質(zhì)和文化生活高度的提高,人們已經(jīng)不在僅僅停留在吃飽的程度,不但要吃飽,還要吃好,而且口味也越來(lái)越挑刺,正因?yàn)槿绱司W(wǎng)絡(luò)訂餐業(yè)務(wù)的出現(xiàn),正

46、迎合了這些人的口味,他們不但省去了自己做飯的麻煩,而且也能尋找和發(fā)現(xiàn)新的菜品,品嘗不同風(fēng)格的菜品,網(wǎng)絡(luò)訂餐業(yè)務(wù)在中國(guó)有著極大的發(fā)展空間以及良好的背景。而當(dāng)代大學(xué)生,白領(lǐng)工作人士作為社會(huì)中的重要群體,他們對(duì)飲食的要求都在不斷提高,飲食在他們生活中起著重要作用。因此,面向大學(xué)生和都市白領(lǐng)人士的網(wǎng)絡(luò)訂餐網(wǎng)站的設(shè)計(jì)有著良好的現(xiàn)實(shí)意義。</p><p>  綜合以上兩點(diǎn)分析,此次畢業(yè)設(shè)計(jì)決定利用JSP和SQL技術(shù)設(shè)計(jì)網(wǎng)上訂

47、餐管理系統(tǒng)。</p><p>  JSP可以創(chuàng)建和運(yùn)用動(dòng)態(tài)、交互的WEB服務(wù)器應(yīng)用程序。同時(shí),JSP具有向跨平臺(tái)跨服務(wù)器的優(yōu)點(diǎn)。SQL Server 2000是一個(gè)杰出的數(shù)據(jù)庫(kù)平臺(tái),具有功能強(qiáng)大,安全可靠等特點(diǎn),可用于大型聯(lián)機(jī)事務(wù)處理、數(shù)據(jù)倉(cāng)庫(kù)及電子商務(wù)等。</p><p>  2.3 總體設(shè)計(jì)原則</p><p>  開(kāi)放性、可擴(kuò)充性、可靠性原則</p>

48、;<p>  開(kāi)放系統(tǒng)是生產(chǎn)各種計(jì)算機(jī)產(chǎn)品普遍遵循的原則,遵循這種標(biāo)準(zhǔn)的產(chǎn)品都符合一些公共的、可以相互操作的標(biāo)準(zhǔn),能夠融洽的在一起工作。開(kāi)放系統(tǒng)使得各種類(lèi)型的網(wǎng)絡(luò)和系統(tǒng)互連簡(jiǎn)單、標(biāo)準(zhǔn)統(tǒng)一,容易擴(kuò)展升級(jí)。從而適應(yīng)廣大用戶需求的多變性和產(chǎn)品的更新?lián)Q代。</p><p>  2、良好的用戶操作界面</p><p>  用戶操作界面美觀、方便、實(shí)用,使用戶能在較短的時(shí)間內(nèi)掌握其使用方

49、法。</p><p><b>  3、實(shí)用性原則</b></p><p>  任何系統(tǒng)的設(shè)計(jì)都要考慮其實(shí)用性,系統(tǒng)開(kāi)發(fā)的目的是為了實(shí)現(xiàn)業(yè)務(wù)處理自動(dòng)化、規(guī)范化,提高工作效率,減輕工作人員的勞動(dòng)強(qiáng)度,減少開(kāi)支。</p><p>  4、工作平臺(tái)設(shè)計(jì)原則</p><p>  能適應(yīng)不同的操作平臺(tái),不同的網(wǎng)絡(luò)。</p>

50、;<p>  2.4 系統(tǒng)體系結(jié)構(gòu)分析</p><p>  2.4.1 C/S結(jié)構(gòu)與B/S結(jié)構(gòu)</p><p>  客戶/服務(wù)器(CLIENT/SERVER)結(jié)構(gòu),是將一個(gè)系統(tǒng)分解為前臺(tái)的客戶應(yīng)用程序和后臺(tái)的服務(wù)器部分,通過(guò)網(wǎng)絡(luò)連接應(yīng)用程序和服務(wù)器。這種結(jié)構(gòu)的核心是客戶應(yīng)用程序向服務(wù)器發(fā)送服務(wù)請(qǐng)求,服務(wù)器完成后端處理。服務(wù)器是一臺(tái)管理數(shù)據(jù)資源并執(zhí)行數(shù)據(jù)庫(kù)引擎功能(加數(shù)據(jù)存儲(chǔ)、

51、操作和保護(hù))的計(jì)算機(jī),處理結(jié)構(gòu)由服務(wù)器發(fā)回客戶應(yīng)用程序,由客戶應(yīng)用程序?qū)μ幚斫Y(jié)構(gòu)進(jìn)行顯示。這種結(jié)構(gòu)的優(yōu)點(diǎn)是只有處理后的數(shù)據(jù)在網(wǎng)絡(luò)中傳遞,大大減輕了網(wǎng)絡(luò)的負(fù)擔(dān),而且由于通過(guò)服務(wù)器端統(tǒng)一管理數(shù)據(jù),易于保證數(shù)據(jù)的一致性。</p><p>  B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器

52、實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3層結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專(zhuān)用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu),.net也是在這樣一種背景下被提出來(lái)的架構(gòu),JAVA技術(shù)已經(jīng)是很成熟的應(yīng)用了。</p><p>  2.4.2 B/S與C/S的優(yōu)越性</p>&

53、lt;p>  C/S(Client/Server,客戶端/服務(wù)器)是建立在局域網(wǎng)的基礎(chǔ)上的,B/S是建立在廣域網(wǎng)的基礎(chǔ)上的。傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一級(jí)的開(kāi)放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特定的軟件,沒(méi)能提供用戶真正期望的開(kāi)放環(huán)境;B/S結(jié)構(gòu)則不同,它的前端是以TCP/IP協(xié)議為基礎(chǔ)的,企業(yè)內(nèi)的WWW服務(wù)器可以接受安裝有Web瀏覽程序的Internet終端的訪問(wèn),

54、作為最終用戶,只要通過(guò)Web瀏覽器,各種處理任務(wù)都可以調(diào)用系統(tǒng)資源來(lái)完成,這樣大大簡(jiǎn)化了客戶端,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體擁有成本??偟膩?lái)說(shuō),兩者有如下差別:</p><p><b>  1.硬件環(huán)境不同</b></p><p>  C/S 一般建立在專(zhuān)用的網(wǎng)絡(luò)上, 小范圍里的網(wǎng)絡(luò)環(huán)境, 局域網(wǎng)之間再通過(guò)專(zhuān)門(mén)服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。B/

55、S 建立在廣域網(wǎng)之上的, 不必是專(zhuān)門(mén)的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng), 租用設(shè)備, 信息自己管理, 有比C/S更強(qiáng)的適應(yīng)范圍, 一般只要有操作系統(tǒng)和瀏覽器就行。</p><p>  2.對(duì)安全要求不同 </p><p>  C/S 一般面向相對(duì)固定的用戶群, 對(duì)信息安全的控制能力很強(qiáng)。 一般高度機(jī)密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜, 可以通過(guò)B/S發(fā)布部分可公開(kāi)信息。B/S 建立在廣域網(wǎng)之上,

56、對(duì)安全的控制能力相對(duì)弱, 面向是不可知的用戶群。</p><p>  3.對(duì)程序架構(gòu)不同 </p><p>  C/S 程序可以更加注重流程, 可以對(duì)權(quán)限多層次校驗(yàn), 對(duì)系統(tǒng)運(yùn)行速度可以較少考慮。B/S 對(duì)安全以及訪問(wèn)速度的多重的考慮, 建立在需要更加優(yōu)化的基礎(chǔ)之上。</p><p><b>  4.軟件重用不同</b></p>

57、<p>  C/S 程序可以不可避免的整體性考慮, 構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好。B/S 對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能。 能夠相對(duì)較好的重用。就如買(mǎi)來(lái)的餐桌可以再利用,而不是做在墻上的石頭桌子。</p><p><b>  5.系統(tǒng)維護(hù)不同 </b></p><p>  系統(tǒng)維護(hù)是軟件生存周期中,開(kāi)銷(xiāo)大,相當(dāng)重要C/S 程序由于整體

58、性,必須整體考察,處理出現(xiàn)的問(wèn)題以及系統(tǒng)升級(jí)難, 可能是再做一個(gè)全新的系統(tǒng)。B/S 構(gòu)件組成方面構(gòu)件個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無(wú)縫升級(jí)。 系統(tǒng)維護(hù)開(kāi)銷(xiāo)減到最小,用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí)。 </p><p><b>  6.處理問(wèn)題不同 </b></p><p>  C/S 程序可以處理用戶面固定,并且在相同區(qū)域, 安全要求高的需求,與操作系統(tǒng)相關(guān), 應(yīng)該都是相

59、同的系統(tǒng)。B/S 建立在廣域網(wǎng)上, 面向不同的用戶群,分散地域, 這是C/S無(wú)法作到的,與操作系統(tǒng)平臺(tái)關(guān)系最小。 </p><p><b>  7.用戶接口不同 </b></p><p>  C/S 多是建立在Window平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高。B/S 建立在瀏覽器上, 有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流, 并且大部分難度減低,降低開(kāi)發(fā)成本。&l

60、t;/p><p><b>  8.信息流不同 </b></p><p>  C/S 程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對(duì)低。B/S 信息流向可變化。</p><p>  9.成本降低,選擇更多</p><p>  軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)的更方便的特性。無(wú)論用戶的規(guī)模有多大,有多少

61、分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只需要針對(duì)服務(wù)器進(jìn)行,如果是異地只需要把服務(wù)器連接上網(wǎng)即可立即進(jìn)行維護(hù)和升級(jí),這對(duì)人力、時(shí)間、費(fèi)用的節(jié)省是相當(dāng)驚人的。傳統(tǒng)的C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,這么高的代價(jià)和低效率已經(jīng)越來(lái)越不適應(yīng)了。在JAVA這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后B/S架構(gòu)更是飛快地普及起來(lái)了。</p><p>  10.面向電子商務(wù)時(shí)代的技

62、術(shù)</p><p>  將來(lái)所有的應(yīng)用系統(tǒng)幾乎都在互聯(lián)網(wǎng)上運(yùn)行,企業(yè)發(fā)展電子商務(wù)也是不可避免的,而B(niǎo)/S架構(gòu)的軟件則代表了將來(lái)的技術(shù),只要連上互聯(lián)網(wǎng)或內(nèi)部廣域網(wǎng)就可以與全球的客戶相連,與各地的分支機(jī)構(gòu)相連。</p><p>  綜上所述,可以看出B/S結(jié)構(gòu)的眾多優(yōu)點(diǎn)[5],比其他結(jié)構(gòu)的先進(jìn)性,無(wú)論是辦公自動(dòng)化管理系統(tǒng),人力資源管理系統(tǒng),客戶關(guān)系管理系統(tǒng),ERP等等,發(fā)展的趨勢(shì)是不斷融合,結(jié)

63、合當(dāng)今這些方面的發(fā)展,我們可以得出這樣的結(jié)論:采用統(tǒng)一的B/S結(jié)構(gòu)開(kāi)發(fā)的產(chǎn)品無(wú)論是現(xiàn)在還是將來(lái)都是最好的選擇,而在今后的實(shí)際工作開(kāi)發(fā)中,則應(yīng)該首選B/S結(jié)構(gòu)。</p><p><b>  第三章程序設(shè)計(jì)</b></p><p><b>  3.1系統(tǒng)流程分析</b></p><p>  3.1.1業(yè)務(wù)流程分析</p&

64、gt;<p>  1、 瀏覽與選擇餐飲信息:顧客進(jìn)入網(wǎng)站即刻自動(dòng)提供購(gòu)物車(chē),不需身份確認(rèn)就可以在網(wǎng)站上隨意瀏覽,登錄系統(tǒng)后則可挑選餐飲(可增加、刪除、修改購(gòu)物車(chē)上餐飲的類(lèi)型),網(wǎng)站提供餐飲信息列表,最先添加的餐飲信息優(yōu)先列表給顧客作為選購(gòu)時(shí)的參考;</p><p>  2、 判斷:顧客確定所購(gòu)餐飲信息后,系統(tǒng)將判斷該顧客是否注冊(cè),如果是,則可直接填寫(xiě)訂單;否則,提示顧客登記注冊(cè);</p>

65、<p>  3、 提交訂單:已選購(gòu)的餐飲信息需填寫(xiě)訂單細(xì)節(jié)。</p><p>  4、 注冊(cè):顧客可在公司的網(wǎng)站上注冊(cè)后提交申請(qǐng);</p><p>  5、 確認(rèn):后臺(tái)管理將實(shí)時(shí)得到顧客的注冊(cè)信息,通過(guò)電話及其他方式確認(rèn),當(dāng)確認(rèn)后,系統(tǒng)管理員可對(duì)該顧客提交的預(yù)定信息進(jìn)行審核。</p><p>  6、送貨與付款:網(wǎng)上的每一份訂單都將實(shí)時(shí)存入后臺(tái)數(shù)據(jù)庫(kù),

66、后臺(tái)操作人員通過(guò)電話及其他方式確認(rèn),確認(rèn)后將及時(shí)實(shí)施審核該訂單:向顧客送貨,貨到付款,完成網(wǎng)上交易。</p><p>  3.1.1數(shù)據(jù)流程分析</p><p>  該系統(tǒng)數(shù)據(jù)流程比較簡(jiǎn)單,管理員可以添加餐廳信息(包括餐桌,包房等),餐飲信息(包括菜品名等信息),資訊信息等,然而這些信息顧客是可以瀏覽的,但是顧客沒(méi)有權(quán)限對(duì)這些信息進(jìn)行修改,這些信息對(duì)于顧客而言是單向的。對(duì)于預(yù)定信息,管理員

67、可以查看及審核預(yù)定信息,顧客可以增刪改預(yù)定信息,并將預(yù)定信息提交給管理員等待審核,因此預(yù)定信息對(duì)于顧客和管理員而言都是雙向的。</p><p>  3.1.1.1數(shù)據(jù)流圖</p><p>  數(shù)據(jù)流圖簡(jiǎn)稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具。它以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過(guò)程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。系統(tǒng)的數(shù)據(jù)流圖如下所示:<

68、;/p><p><b>  系統(tǒng)DFD圖</b></p><p>  3.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p>  3.2.1 數(shù)據(jù)庫(kù)E-R圖</p><p>  3.2.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)</p><p>  系統(tǒng)關(guān)鍵數(shù)據(jù)表如下:其關(guān)系見(jiàn)E-R圖</p><p>  1.用戶表(u

69、sers):用戶登錄是需要用戶名和密碼,所以用戶數(shù)據(jù)表中必須包含用戶名(uname)、密碼(upass)兩個(gè)信息,還有些其他的用戶信息,比如power指的是用戶權(quán)限(管理員還是非管理員)。從功能上數(shù)據(jù)庫(kù)表設(shè)計(jì)如表3.1。</p><p><b>  表 3.1 用戶表</b></p><p>  2.菜品信息表(food):菜品信息表主要描述菜品信息,如:菜品ID號(hào)(

70、foodid),此ID號(hào)為系統(tǒng)自動(dòng)生成;菜品名稱(fname);菜品價(jià)格(price);所屬分類(lèi)ID(categoryId);圖片信息(images)。商品信息表詳細(xì)描述如表3.2</p><p><b>  表3.2菜品信息表</b></p><p>  3.訂座菜單表(st):客戶訂餐的一些相關(guān)信息,如stId指的訂餐ID號(hào),此ID和是系統(tǒng)自動(dòng)生成的;菜品名稱(f

71、name);訂購(gòu)數(shù)量(num);價(jià)格(price);座位編號(hào)(seatId)等,具體描述表3.3</p><p><b>  表3.3供應(yīng)商表</b></p><p>  4.訂單表(orders): 訂單表有一下描述信息。訂單ID(ordersId),訂購(gòu)人姓名(name),地址(address),聯(lián)系電話(tel),價(jià)格(price),備注信息(context)等

72、,具體描述如表3.4所示:</p><p><b>  表3.4訂單表</b></p><p>  5.訂單菜單表(Shop)具體描述如表3.5所示:</p><p><b>  表3.5訂單菜單表</b></p><p>  6.訂座表(Seat)具體描述如表3.6所示:</p>&

73、lt;p><b>  表3.6訂座表</b></p><p><b>  3.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  網(wǎng)上訂餐系統(tǒng)的模型結(jié)構(gòu)如下圖所示:</p><p>  從前面的需求分析中得知,可以將功能分為前臺(tái)和后臺(tái)兩類(lèi),因此模塊也分為兩大類(lèi):前臺(tái)模塊和后臺(tái)模塊。</p><p> 

74、 下圖為系統(tǒng)模塊總圖:</p><p><b>  系統(tǒng)模塊總圖</b></p><p>  3.4 核心算法實(shí)現(xiàn)——分頁(yè)顯示算法</p><p>  int i;一頁(yè)顯示的記錄數(shù) = 10;</p><p>  取得待顯示頁(yè)碼PageSet : strPage = 

75、;page;if(strPage==null)//page參數(shù)為空時(shí),此時(shí)顯示第一頁(yè)數(shù)據(jù){</p><p>  待顯示頁(yè)碼 = 1;}else{ 待顯示頁(yè)碼 = Integer.parseInt(strPage); //將字符串轉(zhuǎn)換成整型if(待顯示頁(yè)碼<1) 待顯示頁(yè)碼 = 1;}</p><p>

76、  執(zhí)行SQL語(yǔ)句并獲取結(jié)果集ResultSet rs = sqlStmt.executeQuery("SQL”);獲取記錄總數(shù)rs.last();記錄總數(shù) = rs.getRow();</p><p>  記算總頁(yè)數(shù)總頁(yè)數(shù) = (記錄總數(shù)+設(shè)置一頁(yè)顯示的記錄數(shù)-1) / 一頁(yè)顯示的記錄數(shù);</p>

77、<p>  調(diào)整待顯示的頁(yè)碼if(待顯示頁(yè)碼>總頁(yè)數(shù)) 待顯示頁(yè)碼 = 總頁(yè)數(shù);// 分頁(yè)情況分類(lèi)  //選擇向上翻</p><p>  if(待顯示頁(yè)碼>1)</p><p><b>  {</b></p><p>  選擇向上翻一頁(yè)傳遞參數(shù)pageda=

78、待顯示頁(yè)碼-1 goto PageSet;</p><p><b>  }</b></p><p><b>  //選擇向下翻</b></p><p>  if(待顯示頁(yè)碼<總頁(yè)數(shù)){</p><p>  選擇向下翻一頁(yè)傳遞參數(shù)pageda=待顯示頁(yè)碼+1 goto PageSet;}&l

79、t;/p><p><b>  If(選擇到尾頁(yè))</b></p><p><b>  {</b></p><p>  選擇到尾頁(yè)傳遞參數(shù)pageda=總頁(yè)數(shù) goto PageSet;</p><p>  }頁(yè)次=待顯示頁(yè)碼 / 總頁(yè)數(shù)頁(yè) ;  </p>&

80、lt;p>  if(總頁(yè)數(shù)>0){將記錄指針定位到結(jié)果集的第一條記錄上((待顯示頁(yè)碼-1) * 一頁(yè)顯示的記錄數(shù) + 1);i = 0;while(i<一頁(yè)顯示的記錄數(shù) && 數(shù)據(jù)庫(kù)指針不在結(jié)果集尾部){</p><p>  輸出要分頁(yè)顯示的數(shù)據(jù)庫(kù)中的內(nèi)容;</p><p&g

81、t;  將數(shù)據(jù)庫(kù)指針移動(dòng)到當(dāng)前行的下一行;i++;}} </p><p>  第四章 系統(tǒng)實(shí)現(xiàn)主要技術(shù)</p><p>  4.1 JavaServer Pages(JSP)技術(shù)簡(jiǎn)介</p><p>  在開(kāi)發(fā)JSP規(guī)范的過(guò)程中,Sun 公司與許許多多主要的Web服務(wù)器、應(yīng)用服務(wù)器和開(kāi)發(fā)工具供應(yīng)商,還有各種各樣富有經(jīng)驗(yàn)的開(kāi)發(fā)團(tuán)體進(jìn)行合作。最后找到了

82、一種平衡了應(yīng)用和頁(yè)面開(kāi)發(fā)的具有可移植性和易用性的開(kāi)發(fā)方法,JSP技術(shù)特征在多個(gè)方面加速了動(dòng)態(tài)Web頁(yè)面的開(kāi)發(fā):</p><p>  將內(nèi)容的生成和顯示進(jìn)行分離使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容,這些內(nèi)容是根據(jù)請(qǐng)求來(lái)變化的,例如請(qǐng)求帳戶信息或者特定的一瓶酒的價(jià)格。生成內(nèi)容的邏輯部分被封裝在JavaBeans組件中,

83、并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在Beans中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,在編輯和使用JSP頁(yè)面的時(shí)候,將不會(huì)影響到內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成客戶端請(qǐng)求的內(nèi)容,例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBC技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)或者其他文件,并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這將有助于作者保護(hù)自己的代碼,并且又保證任何基于HTML的W

84、eb瀏覽器的完全可用性。</p><p>  強(qiáng)調(diào)可重用的組件絕大多數(shù)JSP頁(yè)面依賴于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeansTM組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理問(wèn)題。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者發(fā)布這些組件使更多的使用者或者客戶團(tuán)體能夠使用。</p><p>  采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟

85、悉腳本語(yǔ)言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是容易使用的、同時(shí)與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容的生成時(shí)需要的。通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其他人員可以將常用的功能創(chuàng)建到自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠象使用熟悉的工具一樣來(lái)使用標(biāo)識(shí)來(lái)執(zhí)行特定功能的構(gòu)件來(lái)工作。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以便使用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)

86、的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用開(kāi)發(fā)。由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java編程語(yǔ)言的,并且所有的JSP頁(yè)面都能被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫(xiě),各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的廠家將對(duì)JS

87、P的支持添加到他們的產(chǎn)品中,我們可以選擇不同的服務(wù)器和工具,因?yàn)楦墓?lt;/p><p>  4.2 JSP 和其他類(lèi)似或相關(guān)技術(shù)的一個(gè)簡(jiǎn)單比較</p><p>  JSP和Active Server Pages(ASP)相比</p><p>  Microsoft的ASP是一種和JSP類(lèi)似的技術(shù)。JSP和ASP相比具有兩方面的優(yōu)點(diǎn)。首先,動(dòng)態(tài)部分用Java編寫(xiě),而不

88、是VB Script或其他Microsoft語(yǔ)言,不僅功能更強(qiáng)大而且更易于使用。第二,JSP應(yīng)用可以移植到其他操作系統(tǒng)和非Microsoft的Web服務(wù)器上。</p><p>  JSP和純Servlet相比</p><p>  JSP并沒(méi)有增加任何本質(zhì)上不能用Servlet實(shí)現(xiàn)的功能。但是,在JSP中編寫(xiě)靜態(tài)HTML更加方便,不必再用 println語(yǔ)句來(lái)輸出每一行HTML代碼。更重要的

89、是,借助內(nèi)容和外觀的分離,頁(yè)面制作中不同性質(zhì)的任務(wù)可以方便地分開(kāi):比如,由頁(yè)面設(shè)計(jì)專(zhuān)家進(jìn)行HTML設(shè)計(jì),同時(shí)留出供Servlet程序員插入動(dòng)態(tài)內(nèi)容的空間。</p><p>  JSP和JavaScript相比</p><p>  JavaScript能夠在客戶端動(dòng)態(tài)地生成HTML。雖然JavaScript很有用,但它只能處理以客戶端環(huán)境為基礎(chǔ)的動(dòng)態(tài)信息。除了Cookie之外,HTTP狀態(tài)和

90、表單提交數(shù)據(jù)對(duì)JavaScript來(lái)說(shuō)都是不可用的。另外,由于是在客戶端運(yùn)行,JavaScript不能訪問(wèn)服務(wù)器端資源,比如數(shù)據(jù)庫(kù)、目錄信息等等。</p><p>  4.3 最佳JSP應(yīng)用服務(wù)器Tomcat</p><p>  大多數(shù)人(大概29%)都喜歡將Apache Tomcat當(dāng)作JSP應(yīng)用服務(wù)器使用。有人可能會(huì)說(shuō),它之所以受歡迎是因?yàn)檫@個(gè)服務(wù)器是免費(fèi)和開(kāi)放源代碼的,但是真正的原因

91、遠(yuǎn)不止這些。Apache Tomcat能夠受歡迎,不僅是工作性能非常好,還有沒(méi)有初始的開(kāi)發(fā)成本開(kāi)銷(xiāo)等有力的競(jìng)爭(zhēng)因素,但這不是決定因素。Tomcat 結(jié)構(gòu)非常合理,更由于Tomcat 是Apache 組織的產(chǎn)品,這個(gè)組織有著雄厚的技術(shù)更新力量,并且Tomcat5.0 很好的支持了JSP2.0 規(guī)范,因此有著很好的發(fā)展前景。</p><p>  Tomcat是一個(gè)免費(fèi)的開(kāi)源的Serlvet容器,它是Apache基金會(huì)

92、的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司以及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,可見(jiàn)其在業(yè)界內(nèi)的地位。 Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:也處理Html頁(yè)面,但是與Apache相比,它的處理靜態(tài)Htm

93、l的能力就不如Apache。</p><p>  JDK 是SUN 公司的JAVA應(yīng)用程序和組件的開(kāi)發(fā)環(huán)境,是編譯、測(cè)試工具,也是提供JAVA 程序的 JAVA 虛擬機(jī)平臺(tái),是調(diào)試和運(yùn)行JSP 所不可缺少的工具[9]。</p><p>  4.4 javaBean組件技術(shù)</p><p>  1. 什么是JavaBean</p><p>  

94、軟件開(kāi)發(fā)的真正目的之一是利用在程序編碼方面的投資,以便在同一公司或者不同公司的其他開(kāi)發(fā)中重用程序編碼,近年來(lái),編程人員投入大量精力以便建立可重用的軟件、可重用的軟件組件,早期用在面向?qū)ο缶幊谭矫嬷械耐顿Y已經(jīng)在Java、C#等編程語(yǔ)言的開(kāi)發(fā)中充分實(shí)現(xiàn),很多軟件可以不用做很大的改變就可以運(yùn)行在各種平臺(tái)上。</p><p>  JavaBeans描述了Java的軟件組件模型,這個(gè)模型被設(shè)計(jì)成使第三方廠家可以生成和銷(xiāo)售能

95、夠集成到其他開(kāi)發(fā)廠家或者其他開(kāi)發(fā)人員開(kāi)發(fā)的軟件產(chǎn)品的Java組件。</p><p>  應(yīng)用程序開(kāi)發(fā)者可以從開(kāi)發(fā)廠家購(gòu)買(mǎi)現(xiàn)成的JavaBeans組件,拖放到集成開(kāi)發(fā)環(huán)境的工具箱中,再將其應(yīng)用于應(yīng)用軟件的開(kāi)發(fā),對(duì)于JavaBeans組件的屬性、行為可以進(jìn)行必要的修改、測(cè)試和修訂而不必重新編寫(xiě)和編譯程序。在JavaBeans模型中JavaBeans組件可以被修改或者與其他JavaBeans組件組合以生成新的JavaB

96、eans組件或完整的Java應(yīng)用程序。</p><p>  Java應(yīng)用程序在運(yùn)行時(shí),最終用戶也可以通過(guò)JavaBeans組件設(shè)計(jì)者或應(yīng)用程序開(kāi)發(fā)者所建立的屬性存取方法setXXX方法和getXXX方法修改JavaBeans組件的屬性。這些屬性可能是顏色和形狀等簡(jiǎn)單屬性,也可能是影響JavaBeans組件總體行為的復(fù)雜屬性。</p><p>  JavaBeans組件模型使得軟件可以設(shè)計(jì)成

97、便于修改和便于升級(jí)。每個(gè)JavaBeans組件都包含了一組屬性、操作和事件處理器。將若干個(gè)JavaBeans組件組合起來(lái)就可以生成設(shè)計(jì)者、開(kāi)發(fā)者所需要的特定運(yùn)行行為,JavaBeans組件存放于容器或工具庫(kù)中,供開(kāi)發(fā)者開(kāi)發(fā)應(yīng)用程序。 </p><p>  JavaBeans就是一個(gè)可以復(fù)用軟件模型。JavaBeans在某個(gè)容器中運(yùn)行提供具體的操作性能。JavaBeans是建立應(yīng)用程序的建筑模塊。大多數(shù)常用的Jav

98、aBeans通常是中小型控制程序,但我們也可以編寫(xiě)包裝整個(gè)應(yīng)用程序運(yùn)行邏輯的JavaBeans組件,并將其嵌入到復(fù)合文檔中,以便實(shí)現(xiàn)更為復(fù)雜的功能。 </p><p>  一般來(lái)說(shuō)JavaBeans可以表示為簡(jiǎn)單的GUI組件,可以是按鈕組件、游標(biāo)、菜單等等。這些簡(jiǎn)單的JavaBeans組件提供了告訴用戶什么是JavaBeans的直觀方法。但我們也可以編寫(xiě)一些不可見(jiàn)的JavaBeans,用于接受事件和在幕后工作,例

99、如訪問(wèn)數(shù)據(jù)庫(kù)執(zhí)行查詢操作的,JavaBeans它們?cè)谶\(yùn)行時(shí)刻不需要任何可視的界面。在JSP程序中所用的JavaBeans一般以不可見(jiàn)的組件為主??梢?jiàn)的JavaBeans一般用于編寫(xiě)Applet程序或者Java應(yīng)用程序。</p><p>  2.JavaBeans屬性</p><p>  JavaBeans的屬性與一般Java程序中所指的屬性,或者說(shuō)與所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言中對(duì)象的屬性是

100、同一個(gè)概念,在程序中的具體體現(xiàn)就是類(lèi)中的變量在。JavaBeans的設(shè)計(jì)中,按照屬性的不同作用又細(xì)分為4類(lèi):Simple屬性、Index屬性、Bound屬性與Constrained屬性。</p><p><b>  Simple屬性</b></p><p>  一個(gè)Simple類(lèi)型的屬性表示一個(gè)伴隨有一對(duì)getXXX()、setXXX()方法的變量。屬性的名稱與和該屬

101、性相關(guān)的getXXX()、setXXX()方法相對(duì)應(yīng)。例如:如果有setX()和getX()方法,則暗指有一個(gè)名為"X"的屬性,如果有一個(gè)方法名為isX()則通常暗指"X"是一個(gè)布爾類(lèi)型的屬性。</p><p>  4 Indexed屬性</p><p>  一個(gè)Indexed類(lèi)型的JavaBeans屬性表示一個(gè)數(shù)組值。使用與該屬性相對(duì)應(yīng)的setXX

102、X()方法和getXXX()方法可以存取數(shù)組中某個(gè)元素的數(shù)值。同時(shí),我們也可以使用另兩個(gè)同名方法一次設(shè)置或取得整個(gè)數(shù)組的值(即屬性的值)。</p><p><b>  5 Bound屬性</b></p><p>  一個(gè)Bound類(lèi)型的JavaBean組件的屬性具有這樣的特性:當(dāng)該種屬性的值發(fā)生變化時(shí)必須通知其它的JavaBeans組件對(duì)象。每次JavaBeans組件

103、對(duì)象的屬性值改變時(shí),這種屬性就引發(fā)一個(gè)PropertyChange事件(屬性改變事件,在Java程序中,事件也被看作是一個(gè)對(duì)象)。這個(gè)事件中封裝了發(fā)生屬性改變事件的屬性名、屬性的原值、屬性變化后的新值。這個(gè)事件將被傳遞到其它的JavaBeans組件中,至于接收事件的JavaBeans組件對(duì)象應(yīng)該做什么動(dòng)作由其自己定義。請(qǐng)看程序代碼:</p><p>  import java。beans。*; </p>

104、;<p>  public class JavaBean3 </p><p><b>  { </b></p><p>  String ourString= "Hello"; </p><p>  private PropertyChangeSupport changes = new PropertyCha

105、ngeSupport(this); </p><p>  public void setString(String newString) </p><p><b>  { </b></p><p>  String oldString = ourString; </p><p>  ourString = newStri

106、ng; </p><p>  changes。firePropertyChange("ourString"oldStringnewString);</p><p><b>  } </b></p><p>  public String getString() </p><p><b>  

107、{ </b></p><p>  return ourString; </p><p>  } public void addPropertyChangeListener(PropertyChangeListener l) </p><p><b>  { </b></p><p>  changes。add

108、PropertyChangeListener(l); </p><p>  } public void removePropertyChangeListener(PropertyChangeListener l) </p><p><b>  { </b></p><p>  changes。removePropertyChangeListen

109、er(l); </p><p><b>  } </b></p><p><b>  }</b></p><p>  程序首先創(chuàng)建了PropertyChangeSupport類(lèi)型的對(duì)象changes,這是最關(guān)鍵的一步操作,changes對(duì)象主要用于向監(jiān)聽(tīng)者對(duì)象發(fā)送信息:當(dāng)前的JavaBean對(duì)象已經(jīng)發(fā)生了屬性改變的事件。在

110、JavaBean3.java程序中除了普通的存取JavaBeans屬性值的setXXX()getXXX()等方法以,外還定義了如下的方法: </p><p>  public void addPropertyChangeListener(PropertyChangeListener l); </p><p>  public void removePropertyChangeListene

111、r(PropertyChangeListener l); </p><p>  第一個(gè)方法(addPropertyChangeListener()方法)其實(shí)是調(diào)用changes對(duì)象的addPropertyChangeListener()方法,使一個(gè)事件監(jiān)聽(tīng)者對(duì)象和當(dāng)前JavaBean對(duì)象綁定起來(lái),并把它添加到監(jiān)聽(tīng)者隊(duì)列中去,充當(dāng)當(dāng)前JavaBean對(duì)象的事件監(jiān)聽(tīng)者,如果當(dāng)前JavaBean對(duì)象發(fā)生了屬性值改變的事

112、件,那么changes對(duì)象會(huì)依次通知監(jiān)聽(tīng)者隊(duì)列中的每一個(gè)對(duì)象,當(dāng)然也通知了這個(gè)事件監(jiān)聽(tīng)者對(duì)象,讓它對(duì)這個(gè)事件做出反映 。</p><p>  第二個(gè)方法(removePropertyChangeListener()方法)和前者的作用相反,該方法其實(shí)是調(diào)用changes對(duì)象的removePropertyChangeListener()方法,從監(jiān)聽(tīng)者隊(duì)列中移除某個(gè)特定的事件監(jiān)聽(tīng)者對(duì)象,此事件監(jiān)聽(tīng)者對(duì)象一旦從監(jiān)聽(tīng)者隊(duì)列

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論