东南科技大学资讯管理系_第1页
东南科技大学资讯管理系_第2页
东南科技大学资讯管理系_第3页
东南科技大学资讯管理系_第4页
东南科技大学资讯管理系_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、東南科技大學資訊管理系畢業專題審定書東南科技大學資訊管理系,張冠昌、廖致緯、蕭俊偉、張宥宸、吳冠輝 君所提之畢業專題Flex網頁製作之美食小吃 (題目)認為符合實務專題標準。指導老師 (簽名)中 華 民 國98年 5月 2日畢業專題電子檔案上網授權書本授權書所授權之畢業專題為授權人在東南科技大學資訊管理系98學年度第 一 學期取得之畢業專題報告。專題題目:RIA美食小吃網站製作指導老師:張志祥茲同意將授權人擁有著作權之上列報告全文(含摘要),非專屬、無償授權東南科技大學資管系,不限地域、時間與次數,以微縮、光碟或其他各種數位化方式將上列報告重製,並得將數位化之上列報告電子檔以上載網路方式,提供

2、讀者基於非營利性質之線上檢索、閱覽,或並下載、列印。讀者基於非營利性質之線上檢索、閱覽或下載、列印上開報告,應依著作權法相關規定辦理。指導老師:授權人學生姓名: (請親筆正楷簽名)中 華 民 國 98 年 5 月 2 日目 錄畢業專題審定書電子檔案上網授權書中文摘要第一章 研究動機與目的第一節 研究動機-5第二節 研究目的-5第二章 文獻探討第一節 台灣小吃-7第二節 Flex-8第三節 JSP-14第四節 MVC Model-19第五節 MySQL-22第三章 系統分析與設計第一節 系統分析與設計介紹-25第四章 設計原理及架構第一節 使用範例圖-28第二節 後台系統登入UML圖-29第三節

3、 新增夜市資料UML圖-30第五章 成品展示及操作說明第一節 前台-32 第二節 後台-38第六章 結論-47第七章 參考文獻-48中文摘要現今社會對於網頁的需求,已經見漸漸普及化,尤其是對於網頁的介面更是要求美觀,近年來人們只要有生活上的問題,無論是食衣住行上的哪一環,都會坐上電腦桌開始做網頁搜尋的動作,而選取查看的網頁相對也會由呈現時的外觀來做決定,由此可見網頁已經是生活中重要的一環。而資料庫的使用越來越廣泛及複雜,也常推陳出新,而資料庫在網路上的應用,如檔案管理或討論區的架設,都和資料庫有息息相關密不可分的關聯,透過網路可隨時取得資訊,但是這些未經整理的零散資料,常常會使人們面對一些煩雜

4、的資料,所以在透過網路管理時,必須要有相對應的後台資料庫,才能完善的管理網頁,如新增移除的功能,或是會員登入之類等等,這時人們就運用資料庫創造出有系統價值的資訊了。 這次我們探討的是如何把新的動態網頁軟體Flex套用在美食網頁上,然後再配合後台的資料庫管理把相關資訊能夠直接對應到網頁中,做到後台資料更新,前台能直接呈現新資訊的功能,確實把新軟體程式的實用及美觀性呈現出來,也把資料庫的功能再次表露無疑。第一章 研究動機與目的第一節 研究動機一、1990年代出現在網際網路上的全球資訊網(World Wide Web)是一個重要的關性突破,帶動了全球網路的風潮。網際網路的快速成長與商業發展已成為全球

5、企業衷追逐的風潮,主要的原因在於網際網路的普及化與生活化。二、逛夜市,竟是吃喝玩樂,享用夜市攤販小吃,已經是國人在平常不過的事情了,更有人晚餐都是在夜市著落,夜市的消費種類千奇百種,飲食類、服飾類、百貨類等等民以食為天,我們就已夜市小吃做為專題參考,這就是我們此組初步的動機。三、許多夜市都是由小小的街販,聚集便擴大,區域行政單位也將有些街販群們及地點規劃成觀光夜市,如饒河夜市、臨江街夜市,還有流動攤販、商圈夜市等等,台灣的夜市已越來越知名了。四、網路的效力,使得平常不易取得的資料都變得容易,生活中所談論的美食也可以因此受到恩惠,相對的網路上業者也慢慢重視到台灣傳統夜市的重要性,藉由這次專題研究

6、的機會,讓我們可以運用到網路平台及系統技術,把看似平常且簡單的夜市小吃以華麗及生動的方式呈現給網友,使台灣夜市美食可以更具聞名也讓夜市的資訊更加透明及大眾化。第二節 研究目的一、現在網路上有太多相關的美食網頁,但是呈現的方式都大同小異,我們想運用Flex軟體來開發,此軟體呈現的方式更具生動力,目前Flex軟體還無法很落實的被運用,是一套剛問世不久的開發軟體,在建置系統時也可以學習到,也可以讓Flex軟體,更被利用於市場上。二、運用MVC Model系統,此系統是一套完整於儲存及管理,當資訊需要更新時,前台網站便會同時更新,方便於管理。三、利用網路上的資訊及系統做整合,如:Google Map四

7、、照片資料的取得及製作,都是自己組別拍攝及美工設計,可以學習一些繪圖工具軟體及技術。五、在實地走訪,能更明確的知道哪一家小吃是實至名歸,不會有灌水或是不實的現象發生,也能為各位愛吃小吃的人做到口味上的區分及篩選。 六、讓小吃網站更豐富化,提供了熱門小吃、夜市等等,瀏覽網頁不僅能觀看資訊,更可以獲得其他東西。七、學校所學的JSP動態網站製作,利用這次專題的機會,讓自己更有能力 去撰寫及了解JSP動態網站第二章 文獻探討第一節 台灣小吃台灣小吃是一系列台灣的特殊街頭食物的總稱,也是台灣在地文化的最佳代表之一。要對台灣小吃下一個準確性的定義並不是那麼容易,或許可以嘗試做以下區分:狹義而言,僅指發源於

8、台灣的小吃,如:珍珠奶茶;而由於小吃的變化性極高,易於隨地域、時間有突破性的發展,因此廣義的來說,亦可以包括那些於台灣興盛、創新,而於台灣隨處可見甚至發揚光大的庶民美食,如:生煎包、蚵仔煎、肉粽等;至於最廣義的定義,甚至可以包括任何在台灣十分普及的小吃,像是蔥油餅、臭豆腐等,只不過這種看法應該就是以出現於台灣小吃攤位的美食來定義台灣小吃了。台灣小吃歷史台灣小吃之所以發達,有其歷史悠久典故:台灣是自清代起,漢人農業民族自福建(清雍正(1720年左右)時開放廣東移民來台)開墾山林台灣,非常耗費勞力於耕耘,小吃生意者便以挑夫姿態,挑各樣冷、熱小吃到田邊、山邊供應開墾者食用,典故如此。在初民墾荒時期,

9、皆在信仰中心廟舉辦迎神賽會,人群聚集小吃生意者也隨至行商,所以台灣許多小吃市集都在廟旁;近數十年,隨著台灣經濟起飛,都市大型百貨公司亦多規劃樓層為小吃街,又可享受冷氣免日曬雨淋,小吃也被賦與現代化的意義。總類定點夜市分類(每日營業的夜市、地點固定) n 商圈夜市:多為既有商圈延長營業至深夜,商家多有自家或承租店面,亦會吸引攤販會在路邊開張營業。好處是有助於當地商業蓬勃發展,缺點是髒亂。在都會區由於商業興盛、空地尋覓不易,常是商圈夜市。 n 觀光夜市:若商圈夜市經過當地政府設計規劃,並配合當地特色吸引遊客,即稱為觀光夜市。有些觀光夜市經營方式與商圈夜市無異(例如位於台北市的饒河街夜市),只是加強

10、整潔及美化;但亦有部分興建集合式商場,由商家各自承租店面,可改善商圈夜市髒亂現象(例如位於台南市的小北夜市)。n 流動夜市:只在特定日期(一般為每星期一次)營業的夜市,由於參與的商家在其他日期會集體移動至其他特定地點營業,有如一個流動於臨近各地的夜市,故以此稱之。一般常見於鄉間或都市邊緣的大型空地上,平時可能作為停車場。商家全部為攤販形態,傍晚時到達場地,午夜過後全部撤除。此類型夜市好處是便於清掃及停車,及新鮮感較大(每次攤販不盡相同),缺點是可能影響臨近住家安寧。夜市在台灣社會之中扮演何種角色?夜市分佈廣泛的銷售網絡使得這個以攤販為主所形成之經濟部門與台灣的輕工業及百貨業皆有密切的連結。它不

11、但提供小型製造業一個非常有效率的銷售網絡,將民生用品販賣到全島各個角落,並提供國內製造及零售業應對市場競爭的彈性,讓設計不受消費者歡迎、退流行、訂單退貨、有瑕疵、及換季庫存貨底等產品,能夠經由夜市攤販(再次)進入市場,這個特殊的經濟角色在經濟不景氣時尤其明顯。第二節 FlexFlex介紹Flex是Adobe公司所發展用來開發RIA(Rich Internet Application)的工具,大致上是被Flash Player使用的軟體,也就是說Flash Player將執行所有Flex應用程式,RIA簡單的說就是在Internet上面執行的高親和性操作介面的應用程式。 隨著WWW的興起,應用程

12、式不再侷限於一台電腦上執行,逐漸演化成一個個的網頁,使用者端只需安裝瀏覽器跟一些插件,輸入網址,一切完成。但網頁應用程式究竟與一般傳統應用程式有很大的差異,加上各家瀏覽器對於標準的支援不同,開發出跨平台跨瀏覽器的應用成為一件吃力不討好的工作。Adobe Flex正是解決這些問題的方案之一,適用於建立和維護可部署在各種主要瀏覽器、桌上型電腦和作業系統上,具豐富使用者介面的網路應用程式。Flex 是一組工具的集合,除了應用程式的開發環境外,豐富美觀的元件提供了各種建構應用程式所必需的元素。Flex程式語言:Flex的程式語言是ActionScript,它是一套完整的語言,語法與JavaScript

13、類似,包含各種控制,像是:迴圈、條件、字串、陣列、錯誤處理、規則運算式、物件導向、繪圖API。Flex應用程式可以引用2種類別:一是Flex的類別,namespace是mx,編譯時系統會將此類別加到你的應用程式,並且在使用者執行時下載到Client端;另一種是Flash類別,namespace是flash,這種類別的檔案已經存在Flash Virtual Machine應用程式的發展大致可以簡單區分為4個階段:1、DOS應用程式:文字操作介面。2、Window應用程式:優點:(a)圖形化操作介面,使用者容易操作。(b)程式容易開發,開發工具有:VB、Delphi、PowerBuilder。缺點

14、:(a)版本控制不易,新版本通常必須更新到使用者的電腦上。(b)跨平台困難,同一份程式無法在不同類型的作業系統上面執行。(c)一般應用在區域網路上。3、Web應用程式:優點:(a)版本控制容易,使用者的電腦上只需要安裝瀏覽器。(b)應用在Internet上。缺點:(a)雖然是圖形操作介面,但是受限於瀏覽器的功能,操作介面的 親和性普遍不高。(b)缺乏好用的開發工具。4、RIA:結合Window和Web應用程式的優點。網頁新技術RIA目前在RIA的研究上,以Macromedia公司最具成果。以Flash而言,它幾乎是所有瀏覽器都會擁有的Plugin元件,但是大多數的人,幾乎都認為Flash只是一

15、項動畫工具,其實Macromedia的Flash是一整套完整的RIA解決方案。簡單地說,RIA是一種在網際網路上運行的應用程式,有著如同桌面應用程式的行為、功能、快速回應、直覺與體驗,也融合了網際網路應用程式的容易開發的與低成本的特性。RIA結合桌面應用程式與網路的優點;而RIA和Flash網站有什麼不同呢?Flash網站與RIA的最大差異在於RIA能夠操作資料並與之互動,而傳統的Flash網站僅止於視覺化的呈現。而使用RIA有什麼好處呢?簡單歸納有下列幾點:一、對企業使用者的好處:1、提高交易量:目前手機上的應用開發,多為Java的天下,像Nokia及Motorola等手機大廠都支援Java

16、;而Flash MX較Java更容易開發,且適用於各種作業環境,不管手機或PDA用的是其他作業系統。2、降低應用開發與維護成本:以Flash元件製作網頁,可避免以JavaApplet必須不斷更新造成佔用大量網路頻寬的問題。以網路券商eT為例,使用Flash開發股價查詢,已為該公司節省8000GB的頻寬,另外如美國CNET也是利用Flash製作微型網站(Micro Site)。二、對資訊部門的好處:1、降低基礎設施建置成本。2、提昇開發效率:以拖拉方式製作表格、選單等其他網頁功能,消除一般使用者對程式開發的恐懼感。3、支援工業標準。三、對使用者的好處:1、互動而即時的體驗能夠降低

17、使用者的挫折。2、降低新手的學習曲線。3、單一畫面的使用者介面能夠節省時間。因此,利用RIA我們可以在Request中得到現更多的可視細節(Visual detail),並且動態地得到快速回應之結果,且是無接縫(client-server之間的互動使用者看不到)之程式進行流程,其行為是基於使用者之操作結果(完全的控制),當然,GUI的功能是一定少不了的(註四)。也因此,許多組織與公司也注意到此發展趨勢,紛紛往此方向發展。這樣的發展趨勢在類似Flex這樣的開發工具出現之後,應該會變的更快速,可以預見在不久的將來,Internet上的應用程式都會有更好用的操作介面。長久以來,大家對應用程式的要求不

18、外乎以下這些特性:n 操作介面有一致性並且容易使用。n 跨平台。n 系統穩定性好。n 程式可以容易並且快速的開發、維護、擴充。n 容易安裝和改版。n 程式人員的教育訓練成本低。n 發展大型系統。n 在Internet上執行。基本上Flex提供了滿足這些需求的條件,主要原因是它具備下面這些特性:豐富的視覺化元件:RIA的特性之一就是操作介面的親和性,這也是Web應用程式最大的問題,這些元件是構成操作介面的基本元素。Flex應用程式和Web應用程式不同的地方是:Web應用程式將原始碼傳送到Client的瀏覽器執行,所以操作介面受限於瀏覽器的功能,Flex應用程式則是將編譯過的程式碼送到Client

19、端的Flash執行,操作介面可以有更大的彈性。Flex的特性:利用物件的封裝和繼承,可以一步一步建構發展系統所需要的元件,便於快速開發穩定的大型系統。在軟體開發模式中,有一個80/20法則,就是用20%的時間去開發系統80%的程式,再用80%的時間,去完成剩下的20%,這是因為我們很容易找出大多數系統共同的部分,將這些共同部分包裝成元件,並且套用到80%的程式,而不能套用的部分通常是包含特殊的規則或是操作流程,這部分會需要比較多的時間來討論、修改和撰寫。要實現這個80/20法則,依賴的就是這個Flex的特性。跨平台:Flex使用Flash做為Client端的Virtual Machine來跟F

20、lex應用程式溝通,每個平台有自己版本的Flash,藉此達到跨平台的目的。在使用Flex所需要的應用程式:Flex Builder:應用程式的開發環境。Flex SDK:建構應用程式所必需的元素,例如:Compiler、Library。Flex Data Services(FDS):提供Client與Server端溝通所需要的元件。Flex Charting:提供繪圖的功能。它的內容大致歸納如下:開發環境:IDE環境:功能算是完整,你可以利用這個環境來維護專案、程式、元件、編譯、除錯。Debug:Flex提供完整的除錯功能幫助使用者開發系統,你也可以搭配Server端的除錯環境一起使用,例如你

21、可以在Flex和Visual Studio裡面同時設定中斷點,並且依序進入它們的除錯模式。除錯功能提供可以縮短系統開發的時間,並且減少隱藏的bug。Compiler:將原始碼編譯成Flash可以執行的Bytecode,並且提供語法檢查。在視覺化元件方面,包含下列5個類型:Custom:這是程式人員自行開發的元件,你也可以繼承Flex的類別,產生的類別可以被其他的程式引用。Control:畫面上的基本元件,除了常見的Button、CheckBox、ComboBox、Radio、TextInput,還有下列比較特殊的元件(1)ColorPicker:選取顏色。(2)DataGrid:顯示多筆資料,

22、具有編輯資料的功能,欄位的型態可以是各種輸入欄位如:Text Input、CheckBox、ComboBox、Radio。(3)DateField:日曆。(4)HorizontalList:顯示水平清單,清單的內容可以是文字或是圖檔。(5)HSlider、VSlider:使用拖拉的數字欄位。(6)LinkButton:超連結按鈕。(7)NumericStepper:使用上下箭頭微調的數字欄位。(8)PopupMenuButton:結合Button和Popup Menu的一種元件。(9)ProcessBar:進度百分比。(10)RichTextEditor:文字編輯器,可以設定裡面任何文字的各種

23、屬性,像是大小、顏色、超連結、對齊(11)TileList:像磁磚一樣排列的清單,清單的內容可以是文字或是圖檔。(12)Tree:樹狀元件。(13)VideoDisplay:播放影像檔。Layout:用來配置版面(1)ApplicationControlBar:放在Application Container的一種控制項,在這個控制項裡面可以放置其他元件,像是Button、MenuBar。(2)Canvas:子元件可以放在任何位置。(3)ControlBar:用在Panel或是TitleWindow的一種元件,在這個元件上面可以放置一些像按鈕的控制項,方便與Panel或TitleWindow的內

24、容部分區隔。(4)Form:可以讓裡面的輸入欄位整齊排列。(5)Grid:類似Html table元件。(6)HBox、VBox:將子元件以某個間隔做水平或垂直排列。(7)HDividedBox、VDividedBox:將畫面做水平或垂直切割,並且允許使用者在操作時調整大小。(8)HRule、HRule:通常用來在Container裡面產生水平或垂直線。(9)Panel:Popup Window.(10)Spacer:在元件之間放入間隔。(11)Tile:將子元件以磁磚的方式排列。(12)TitleWindow:從Panel繼承而來的元件,多了一個showCloseButton屬性,操作行為類

25、似Panel。Navigator:有些Navigator元件可以包含其他Container,像是Accordion、TabNavigator、ViewStack。(1)Accordion:手風琴。(2)ButtonBar:包含多個Button。(3)LinkBar:包含多個超連結。(4)MenuBar:功能表。(5)TabBar:包含多個tabpage,搭配ViewStack可以做出TabNavigator的效果。(6)TabNavigator:包含多個tabpage,每個tabpage是一個Container,其內容可以任何元件,或是載入另一個Application。(7)ToggleBut

26、tonBar:類似ButtonBar,但是會註記使用者按了那一個Button。(8)ViewStack:用來控制其所包含的Container的狀態為visible、active或其他。Chart:提供各種統計圖表。與Server端溝通:這裡介紹3種Flex常用來與Server端做資料交換的方式:1、HTTPService:指定HTTPService元件的Server url、傳入參數、成功和失敗的處理程式。2、WebService:呼叫Server端的Web Service。3、Flash Remoting:允許Flex傳送物件型態的參數到Server端。以上的方法都是使用非同步的方式來與Se

27、rver溝通,所謂非同步是指Flex並不會等待Server端傳回結果,再去繼續執行後面的程式碼,而是在呼叫Server程式時,同時指定某個函式來處理回傳的資料,這個函式會在Server端回傳資料時被執行。如果你希望使用同步的方式,則可以透過ExternalInterface類別,並且呼叫XMLHTTP來與Server端的程式溝通。第三節 JSPJSP簡介Java Server Page(JSP)是由Sun公司所發表的一種互動式網頁編譯技術,當這種新技術發表時即引起相當大的注目。因為,JSP除了能夠建立一個互動式網站之外,它更能應用於不同的作業平台,例如:Linux、Windows 98、Win

28、dows NT Server.等。這樣跨平台的特性以包含了目前大部分網站伺服器建置環境,在加上它的語法寫作方式可媲美ASP搬的易學易懂,而且在網路安全技術方面甚至已超越ASP技術。所以,相信很快的時間內極有可能取代現有網頁編譯技術,而成為商業網新標準。近年來,Jsp技術現在已經成為一種卓越的動態網站開發技術。Java開發者出於各種理由喜愛使用Jsp。有人喜愛其“一次開發,處處使用”的性能,另外的人覺得Jsp使Java成為一種易學的伺服器端Scripting語言。但是,Jsp最大的長處在它將頁面的表現和頁面的商業邏輯分開了。1執行JSP網路過程JSP網頁是一個以文字為主的文件,用於處理用戶端的請

29、求(requsst),並將回應(response)送回用戶端。詳細的過程如下圖所示。用戶端伺服器瀏覽器2.將.jsp轉成.java3.將.java編譯成.class1.request請求4.response回應(圖1)執行JSP網頁的過程如下:STEP01 用戶端溜覽器(如Firefox)向伺服器(如Tomcat)提出請求執行JSP網頁,如http:/localhost:8080/howjsp/hi.jsp。STEP02 伺服器將JSP網頁hi.jsp轉換成相對應的伺服端小程式。STEP03 伺服器將相對應的伺服端小程式編譯成.class檔於記憶體中。STEP04 執行存於記憶體中的.clas

30、s檔並將結果回應至用戶端瀏覽器。從請求JSP網頁的過程可以看出用亡端必須安裝一個瀏覽器,您可選用火狐狸(FIREFOX)或Netscape 7.X瀏覽器均可。微軟公司出品的IE用起來不是很順暢,最好不要使用。伺服器端必須安裝一個伺服器,目前Apache出品的Tomcat 5.5伺服器支援JSP 2.0版、Java Servlet 2.4版,可說最適用的伺服器了。伺服器端還必須安裝一個昇陽公司出品的JAVA語言的編譯器,可使用JDK 5.X版。JAVA語言有下列特性:1、簡單Java是一種類似C+語言而比較安全、簡單、容易使用的語言。它拋棄C+中少用及不好用的部分,類如Java不使用goto敘述

31、、它使用指標、不使用多重繼承等。2、Java是一種物件導向的程式語言物件導向程式語言(Object Orient Programming)的三個特性是:資料封包(encapsulation):將資料分成私用(private) 、保護(protected) 、公用(public)等,達到資料保密的目的。繼承(inheritance):有繼承的關係後,超級類別(super class)中的資料或方法其次類別(subclass)就可繼承使用,次類別的次類別也可以繼承使用,達到資料重複使用的目標。多形(polymorphism):同樣名稱的方法,其程式碼不同。假如超級類別中有一個名叫show( )的方

32、法,用於顯示生日資料,次類別中也有一個名叫show( )的方法,用於顯示電話號碼資料,這兩個方法都稱為show( ) ,但做法不同,程式碼當然不同,次類別show( )方法將蓋掉上類別的show( )方法,稱為多形,或稱為同名異式。3、Java是一種分散式程式語言Java是特地為網際網路而設,當然支援網路上的應用程式,Java是一種分散式程式語言,他有個龐大的網路類別庫支援各種網路階層的聯繫。使用Java要取得遠端主機上的檔案是很容易的。4、Java是一種跨平台的程式語言Java的原始程式檔經過編譯後產生類別檔,類別檔是一種虛擬的機器碼(pseudo code)成為位元組碼(b

33、ytecode),必須經過解譯程式解釋後才能執行,因為位元碼與電腦廠牌無關,只要那台電腦安裝java解釋程式就能執行Java的類別程式碼,因此說Java是一種跨平台的程式語言。5、Java是一種多執行緒的語言Java語言內建多執行緒(multi-thread)的功能,在同一個程式中,某一段程式碼t1執行緒,同一段程式或另依段程式碼t2執行緒,則t1與t2執行緒各自獨立執行,Java支援許多個執行緒同時執行。6、Java是一種網路語言Java的程式能夠從網路URL(Universal Resource Locator)全球資源位址取得你所要的資源,包括資料檔、影像檔、聲音檔等至你的電腦,並加於處

34、理,所以說Java是一種網路語言。7、Java是一種Web的程式語言Java的程式編譯過後可將類別檔及相對應的網頁檔放置於網路伺服器上,在網路上的任何電腦均可透過支援Java的瀏覽器加於執行。Java的applet程式是用戶端(client)執行的程式,但servlet程式存於網路伺服器上,是伺服端(server)執行的程式。Java系統一般包含四個部分:1、 Java環境(environment)2、 Java語言(language)3、 Java API應用程式介面(Application Programming Interface)4、 Java類別庫(class librarise)J

35、DK是Java Developers kit的簡稱,意即Java的發展工具。JAVA程式的編輯、編譯、執行您可以在大部份的電腦系統執行JAVA的程式,當然包括Windows系統,以及Linux等平台,這是因為JAVA的程式並不是直接執行您電腦系統的機器碼,而執行JAVA所訂的虛擬機器碼,稱為位元組碼,能夠執行位元組碼的機器稱為JAVA虛擬機器(Java Virtual Machine),JVM它是安裝於您電腦裡的一個軟體,也就是說不管您使用那一種作業系統,只要安裝JVM軟體就可以執行JAVA的位元組碼,也是可以執行JAVA的程式了。JAVA原始程式JAVA位元組碼JAVA編譯程式javac.e

36、xe執行結果JAVA虛擬機器(JVM)JAVA解說程式java.exe使用Servlet技術Java Server Page顧名思義就是以Java程式語言為主的一種編譯技術。也由於式使用Java語言,所以使得JSP具備了跨平台的特性及物件導向程式設計的觀念,讓開發出來的網站具有告高的穩定性及攜帶性。Servlets有何缺陷?當jsp成為開發動態網站的主要技術時,可能有人會問為何在jsp技術中我們不強調servlets。Servlets的應用是沒有問題的。它們非常適於伺服器端的處理和編程,並且它們會長期駐留在他們現在的位置。但是,從結構上說,我們可以將jsp看作是servlet的一個高層的抽象實

37、現,特別是在servlet 2.2 API下。但是,你仍然不能無拘束地使用servlet;它們並不適合每一個人。例如,頁面設計者可以方便地使用html或者xml工具開發jsp頁面,但servlet卻更適合於後端開發者使用,他們的工具是ide一個需要更多編程訓練的開發領域。當發佈servlet時,每個開發者必須小心地確定在頁面表現和頁面邏輯之間沒有緊密的關聯出現。你可以使用第三方html包裝工具,如htmlkona來混合html和servlet代碼。即使如此,這點靈活性還不足以讓你自由地改變風格本身。例如,你希望從html改變到dhtml,則包裝本身需要被小心地測試,以確保新的格式可以正確使用。

38、在最壞的情況下,包裝不可用,你就需要應變馬來表現動態內容。所以,需要一種新的解決方案。你將會看到,一種方案就是混合jsp和servlet的使用。早期的JSP標準給出了兩種使用JSP的方式。這些方式,都可以歸納為JSP模式1和jsp模式2,主要的差別在於處理大量請求的位置不同。在模式1中,JSP頁面獨自回應請求並將處理結果返回客戶。這裏仍然有表現和內容的分離,因為所有的資料依靠bean來處理。儘管模式1可以很好的滿足小型應用的需要,但卻不能滿足大型應用的要求。大量使用模式1,常常會導致頁面被嵌入大量的script或者java代碼。特別是當需要處理的商業邏輯很複雜時,情況會變得嚴重。也許對於jav

39、a程式師來說,這不算大的問題。但如果開發者是前端介面設計人員在大型專案中,這非常常見,則代碼的開發和維護將出現困難。在任何專案中,這樣的模式多少總會導致定義不清的回應和專案管理的困難。在模式2 結構,是一種面向動態內容的實現,結合了servlet 和jsp技術。它利用了兩種技術原有的優點,採用jsp來表現頁面,採用servlets來完成大量的處理。這裏,servlet扮演一個控制者的角色,並負責回應客戶請求。接著,servlet創建jsp需要的bean和物件,再根據用戶的行為,決定將那個jsp頁面發送給用戶。特別要注意,jsp頁面中沒有任何商業處理邏輯;它只是簡單地檢索servlet先前創建的

40、bean或者物件,再將動態內容插入預定義的模版。從開發的觀點看,這一模式具有更清晰的頁面表現,清楚的開發者角色劃分,可以充分地利用開發小組中的介面設計人員。事實上,越是複雜的專案,採用模式2 的好處就越突出。第四節 MVC ModelMVC模式概述所謂的MVC模式,即模型-視圖-控制器(Model-View-Controller)模式,其結構圖如圖ViewControllersModel(圖2)1、Modle端在MVO中,魔形是執行某些任務的程式碼,而這部分程式碼並沒有任何邏輯決定用戶端的表示方法。Model只是純粹的功能性介面,頁就是一系列的公共方法,透過這些公共方法,便可以取得模型端的所有

41、功能。2、View端在MVC模式裡,一個Model可以幾個View端,而實際上,多個View端是使用MVC的原始動機。使用MVC模式可以允許多於一個的View端存在,並可以在需要的時候動態註冊所需要的View。3、Controller端MVC模式的視圖端是與MVC的控制氣結合使用的。當用戶端與相應的視圖發生互動時,用戶可以透過視窗更新模型的狀態,而這種更新視透過控制器端進行的。控制器透過調用模型端的方法更改其狀態值,與此同時,控制器端會通知所有註冊的視圖,更新使用者介面。(圖3)大部份的Web應用在職責上至少能被分成4層:展示層(Presentation Layer)持久層(Persisten

42、ce Layer)、商用層(Business Layer)和領域模組層(domain model Layer)。每個層在功能上都應該是十分明確的,而不應該在其他層混合。每個層要相互獨立,透過一個通信介面而相互聯繫。下面將分別詳細地介紹這4層,討論一下這些層應該提供什麼,不應該提供什麼。大部分的Web應用在職責上至少能被分成4層:展示層(Presentatiom Layer)、持久層(Persistence Layer)、商業層(Business Layer)和領域模組層(domain model)戶獨立。每一層在功能上都應該是十分明確的,而不應該與其它層混合。每個層要相互獨立,透過一個通信介面

43、而相互聯繫。分別詳細的介紹這4層一、展示層一般來講,一個典型的Web應用的前端應該是展示層,這裡可以使用Struts框架下面是Struts所負責的:管理用戶的請求,做出相應的回應提供一個流程控制器,委派調用商業邏輯和其它上層的處理處理異狀為顯示提供一個資料模型用戶介面的驗證。以下內容,不該在Struts展示層的程式中經常租出現,它們與展示層無關的。與資料庫直接溝通與應用程式相關聯的商業邏輯及效驗事務處理在展示層引入這些程式,則會帶來高耦合和難以維護的後果 。二、持久層典型的Web應用的後端是持久層。開發者總是低估購建他們自己的持久層框架的挑戰性。系統內部的持久層不但需要大量測試時間,而且還經常

44、因為缺少功能使之變得難以控制,這是持久層的通病。幸運的是,有幾個物件/關聯映射(Object/Relation Mapping,ORM)框架有效地解決了這類問題,尤其是Hibernate。Hibernate為Java提供持久化機制和查詢服務,它還給已經熟悉SQL和JDBC API的Java開發者創造一個學習橋梁,使她們學習起來較方便。Hibernate的持久物件是基於POJO(Plan Old Java Object)和Java集合(collection)的。此外,使用Hibernate並不妨礙妳正在使用的IDE(Integrated Development Enviroment)。下面是Hi

45、bernate所負責的內容:1、如何查詢物件的相關資訊Hibernate是一種透過面相物件作查詢的語言(HQL,Hibernate Qurey Language)或正則表達(Regular Expression)的API來完成查詢的。HQL非常類似SQL,只是把SQL裡的table和columns用Object和它的fields代替。HQL語言容易理解且文件做得很好。HQL是一種面向物件查詢的自然語言,很容易就能學習它。2、如何存儲、更新、刪除資料庫記錄Hibernate這類的高及ORM框架支援大部分主流資料庫,並且支援父表/子表(Parent/child)關聯、事務處理、繼承和多型。三、商業

46、層一個典型Web應用的中間是商業層或服務層。從程式碼的角度來看,這層是最容易被忽略的。我們往往在用戶介面層或持久層周圍看到這些商業處理的程式碼,這其實是不正確的。因為它會造成程式碼的耦合,這樣一來,隨著時間推移,這些程式碼將很難維護。幸好,針對這一問題有幾種框架(Framework)存在,最受歡迎的兩個框架是Spring和PicoContainer。這些也被稱為輕量級容量(micro container),它們能讓你很好地把物件配起來。這兩個框架都著手於”依賴注入”(dependency injection),還有我們知道的”控制反轉”(Inversion of Control,IoC)這樣的

47、簡單概念。這裡,我們將關注於Spring的依賴注入和切面導向程式設計。另外,Spring把程式中所涉及到的包含商業邏輯和資料存取物件(DataAccess Object)的Object-transaction management handler(事務管理控制)、Object Factories(物件工廠)、service object(服務元件)都透過XML配置聯繫起來。下面是商業層所負責的。1、處理應用程式的商業邏輯和效驗2、管理事務3、提供與其它層相互作用的介面4、管理商層級別的物件的依賴5、在展示層和持久層之間增加了一個靈活的機制,使得她們不直接聯繫在一起6、透過揭示從展示層到商業層之

48、間的上下文(Context)來得到商業邏輯(business services)7、管理程式的執行(從商業層到持久層)四、領域模組層既然我們致力於一個Web的應用,我們就需要一個物件集合,讓它在不同層之間移動。領域模組層由實際需求中的商業邏輯物件組成,比如訂單明細表(OrderLineItem)、產品(Product)等。開發者在這一層不管那些資料傳輸物件(Data Transfer Object)、而僅關注領域勿建(domain object)即可。例如,Hibernate允許你將資料庫中的資料存入領域勿建(domain object),這樣妳可以在連接斷線的情況下更新。而且,妳不必把物轉成

49、DTO(這可能導致它在不同層之間的傳輸過程中丟失)。這個模型使得Java開發者能很自然運用物件導向程式(Object-Oriented) Programming),而不需要附加的程式碼。第五節 MySQLMyself資料庫介紹MySQL是一個真正的多用戶、多線程SQL資料庫服務器。SQL(結構化查詢語言)是世界上最流行的和標準化的資料庫語言。MySQL是以一個客戶機/服務器結構的實現,它由一個服務器守護程式myself和很多不同的客戶程式和庫組成。SQL是一種標準化的語言,它使得存儲、更新和存取訊號更容易。例如,你能用SQL語言為一個網站檢索產品資訊及存儲顧客資訊,同時MySQL也足夠快和靈活

50、以允許你存儲記錄檔和圖像。MySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務器,它能處理與任何可不昂貴硬體平臺上提供資料庫的廠家在一個數量級上的大型資料庫,但速度更快,MySQL就開發出來。自1996年以來,我們一直都在使用MySQL,其環境有超過 40 個資料庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉位元組(GB)的關鍵應用資料。MySQL資料庫特點1、使用核心線程的完全多線程。這意味著它能很容易地利用多CPU(如果有)。2、可運行在不同的平臺上。3、多種列類型:1、2、3、4和 8 位元組長度的有符號/無符號整數(INT)、FL

51、OAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SE T和ENUM類型。4、利用一個優化的一遍掃描多重聯結(one-sweep multi-join)非常快速地進行聯結(join)。5、在查詢的SELECT和WHERE部分支援全部運算符和函數。6、通過一個高度優化的類庫實現SQL函數庫並且像他們能達到一樣快速通常在查詢初始化後不應該有任何記憶體分配。7、全面支持SQL的GROUP BY和ORDER BY子句,支援聚合函數( COUNT()、COUNT(DISTI NCT)、AVG()、STD()、SUM(

52、)、 MAX()和MIN() )。8、支援ANSI SQL的LEFT OUTER JOIN和ODBC語法。9、你可以在同一查詢中混用來自不同資料庫的表。10、一個非常靈活且安全的許可權和口令系統,並且它允許基於主機的認證。口令是安全的,因為當與一個服務器連接時,所有的口令傳送被加密。11、ODBC for Windiws 95。12、具備索引壓縮的快速B樹磁片表。13、每個表允許有16個索引。每個索引可以由116個列或列的一部分組成。最大索引長度是 256個位元組(在編譯MySQL時,它可以改變)。一個索引可以使用一個CHAR或VARCHAR欄的首碼。14、定長和變長記錄。15、用作臨時表的記

53、憶體散列表。16、大資料庫處理。我們正在對某些包含 50,000,000 個記錄的資料庫使用MySQL。17、所有列都有缺省值,你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設置為他們的缺省值。18、一個非常快速的基於線程的記憶體分配系統。19、沒有記憶體漏洞。用一個商用記憶體漏洞監測程式測試過(purify)。20、包括myisamchk,一個檢查、優化和修復資料庫表的快速實用程式。21、全面支持ISO-8859-1 Latin1 字元集。22.、所有資料以 ISO-8859-1 Latin1 格式保存。所有正常的字串比較是忽略大小寫的。23.、DELETE、INSERT、REPLACE和UPDATE 返回有多少行被改變(受影響)。24、函數名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论