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

下載本文檔

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

文檔簡介

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

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

3、正在流行的JSP(Java Server Pages)編程,用戶界面更友好。</p><p>  在開發(fā)中選擇了JSP+JavaBean+SQL2000的模式,實現(xiàn)了應(yīng)用程序邏輯和頁面顯示分離,界面設(shè)計更簡單。JavaBean可重用的軟件組件滿足小型應(yīng)用,同時使編程人員投入量精力便可重用組件,在簡單的應(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 開發(fā)語言2</p><p>  1.3.2 開發(fā)模式選擇3</p><p>  1.3.3 數(shù)據(jù)庫4</p><p>  第二章 系統(tǒng)概述5</p><p><b>  2.1運行環(huán)境5</b></p><p&g

13、t;  2.1.1軟件運行環(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è)計原則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è)計9</b></p><p>  3.1系統(tǒng)數(shù)據(jù)庫設(shè)計9</p><

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

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

17、SP 和其他類似或相關(guān)技術(shù)的一個簡單比較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ù)庫編程35</p><p>  4.8.1數(shù)據(jù)庫編程基礎(chǔ)及語法35</p><p&g

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41、 服務(wù)器端:</b></p><p>  操作系統(tǒng):Windows XP操作系統(tǒng)</p><p>  數(shù)據(jù)庫: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)無論是在應(yīng)用的深度還是廣度都是一個逐步發(fā)展的過程。在開發(fā)一個局部系統(tǒng)時要充分考慮到局部系統(tǒng)和整個目標(biāo)系統(tǒng)之間的相容性和完整性,以利于今后整個系統(tǒng)的建立。進(jìn)貨訂單管理系統(tǒng)從總體上把握系統(tǒng)的設(shè)計,在具體的設(shè)計實現(xiàn)上我們圍繞著三個方面的需求展開,即管理者、系統(tǒng)使用者、系統(tǒng)維護(hù)者。</p><p>  2.2.1 性能需求

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

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

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

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

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

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

49、法。</p><p><b>  3、實用性原則</b></p><p>  任何系統(tǒng)的設(shè)計都要考慮其實用性,系統(tǒng)開發(fā)的目的是為了實現(xiàn)業(yè)務(wù)處理自動化、規(guī)范化,提高工作效率,減輕工作人員的勞動強(qiáng)度,減少開支。</p><p>  4、工作平臺設(shè)計原則</p><p>  能適應(yīng)不同的操作平臺,不同的網(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),是將一個系統(tǒng)分解為前臺的客戶應(yīng)用程序和后臺的服務(wù)器部分,通過網(wǎng)絡(luò)連接應(yīng)用程序和服務(wù)器。這種結(jié)構(gòu)的核心是客戶應(yīng)用程序向服務(wù)器發(fā)送服務(wù)請求,服務(wù)器完成后端處理。服務(wù)器是一臺管理數(shù)據(jù)資源并執(zhí)行數(shù)據(jù)庫引擎功能(加數(shù)據(jù)存儲、

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

52、實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂3層結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實現(xiàn)原來需要復(fù)雜專用軟件才能實現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu),.net也是在這樣一種背景下被提出來的架構(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)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是Client端還是Server端都還需要特定的軟件,沒能提供用戶真正期望的開放環(huán)境;B/S結(jié)構(gòu)則不同,它的前端是以TCP/IP協(xié)議為基礎(chǔ)的,企業(yè)內(nèi)的WWW服務(wù)器可以接受安裝有Web瀏覽程序的Internet終端的訪問,

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

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

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

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

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

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

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

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

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

63、合當(dāng)今這些方面的發(fā)展,我們可以得出這樣的結(jié)論:采用統(tǒng)一的B/S結(jié)構(gòu)開發(fā)的產(chǎn)品無論是現(xiàn)在還是將來都是最好的選擇,而在今后的實際工作開發(fā)中,則應(yīng)該首選B/S結(jié)構(gòu)。</p><p><b>  第三章程序設(shè)計</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)站即刻自動提供購物車,不需身份確認(rèn)就可以在網(wǎng)站上隨意瀏覽,登錄系統(tǒng)后則可挑選餐飲(可增加、刪除、修改購物車上餐飲的類型),網(wǎng)站提供餐飲信息列表,最先添加的餐飲信息優(yōu)先列表給顧客作為選購時的參考;</p><p>  2、 判斷:顧客確定所購餐飲信息后,系統(tǒng)將判斷該顧客是否注冊,如果是,則可直接填寫訂單;否則,提示顧客登記注冊;</p>

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

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

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

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

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

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

71、name);訂購數(shù)量(num);價格(price);座位編號(seatId)等,具體描述表3.3</p><p><b>  表3.3供應(yīng)商表</b></p><p>  4.訂單表(orders): 訂單表有一下描述信息。訂單ID(ordersId),訂購人姓名(name),地址(address),聯(lián)系電話(tel),價格(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è)計</b></p><p>  網(wǎng)上訂餐系統(tǒng)的模型結(jié)構(gòu)如下圖所示:</p><p>  從前面的需求分析中得知,可以將功能分為前臺和后臺兩類,因此模塊也分為兩大類:前臺模塊和后臺模塊。</p><p> 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

103、對象的屬性值改變時,這種屬性就引發(fā)一個PropertyChange事件(屬性改變事件,在Java程序中,事件也被看作是一個對象)。這個事件中封裝了發(fā)生屬性改變事件的屬性名、屬性的原值、屬性變化后的新值。這個事件將被傳遞到其它的JavaBeans組件中,至于接收事件的JavaBeans組件對象應(yī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類型的對象changes,這是最關(guān)鍵的一步操作,changes對象主要用于向監(jiān)聽者對象發(fā)送信息:當(dāng)前的JavaBean對象已經(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>  第一個方法(addPropertyChangeListener()方法)其實是調(diào)用changes對象的addPropertyChangeListener()方法,使一個事件監(jiān)聽者對象和當(dāng)前JavaBean對象綁定起來,并把它添加到監(jiān)聽者隊列中去,充當(dāng)當(dāng)前JavaBean對象的事件監(jiān)聽者,如果當(dāng)前JavaBean對象發(fā)生了屬性值改變的事

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

溫馨提示

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

評論

0/150

提交評論