出版時間:2010年8月1日 出版社:清華大學出版社 作者:李興華,王月清 頁數(shù):555
Tag標簽:無
前言
前 言“我們在用心做事,做最好的教育,做最好的圖書!”——北京魔樂科技教學總監(jiān) 李興華“無獨有偶,因為執(zhí)著,所以專業(yè)!”——中科軟通CEO 王月清本書起源這本書是北京魔樂科技(MLDN軟件實訓(xùn)中心)繼《名師講壇——Java開發(fā)實戰(zhàn)經(jīng)典》之后的又一扛鼎之作!親愛的讀者朋友,感謝您獨具慧眼選擇了這本書,我們堅信:本書將向您充分展示出Java開發(fā)技術(shù)的神奇魅力,且將會帶您快速、輕松地進入Java Web的開發(fā)領(lǐng)域。這本書浸透了我們的心血。它最初來源于我們的講義,后應(yīng)出版社之邀,數(shù)易其稿,從開始創(chuàng)作整理到完稿,到最后的視頻全部錄制完成,一共歷時14個月。當然在這14個月中,我還有繁重的教學及項目開發(fā)任務(wù),但是無論教學還是開發(fā)中間,我們無時無刻不在惦記、驗證、揣摩、記錄與本書有關(guān)的內(nèi)容。希望用我們的學習、教學和開發(fā)經(jīng)歷、經(jīng)驗,啟示后來的讀者,少走彎路,能夠在有限的時間內(nèi)快速掌握一門技術(shù)。記得若干年前,當JSP技術(shù)剛剛在中國興起的時候,我們就迫切尋覓一本能很快掌握這門技術(shù)的書,當時是幾乎每周都會向圖書城跑一趟,用每個月省吃簡用的錢去買一些相關(guān)的書來學習,當把每一本書帶回家的時候,心中的那份喜悅是無法用言語來表達的。但往往是因為晦澀的文字、解釋不清的概念、調(diào)試不通的程序等一系列問題,讓人感到技術(shù)似乎十分深奧,并一度懷疑我們是不是真的適合做這個行業(yè)?,F(xiàn)在才知道,很多問題出在書上——很多書是一些不懂技術(shù)的人拼出來的,真有一種上當受騙的感覺!現(xiàn)在,經(jīng)過多年的摸爬滾打,我們對這些技術(shù)已經(jīng)很熟悉了,但回想當年的經(jīng)歷,還隱隱作痛。于是,就想用“心”寫一本書,讓每一位后來的讀者不再為技術(shù)而嚇到、而退卻。因為,我們覺得技術(shù)并不難,但第一步——選書很關(guān)鍵,一本晦澀無比、不知所云而又故作深奧的書,很可能讓人從此與該行業(yè)無緣,相反,一本好書好比是一個好的啟蒙老師,可以輕松、愉快地把人帶入一個專業(yè)的領(lǐng)域。本書內(nèi)容結(jié)構(gòu)本書共分為五個部分:Web開發(fā)前奏、Web基礎(chǔ)開發(fā)、Web高級開發(fā)、框架開發(fā)、附錄。本書的核心章節(jié)為:第3章~第10章, 第14章、第15章、第17章。本書循序漸進,每一部分的知識都是為后續(xù)內(nèi)容進行服務(wù)的,學習步驟參考下圖。 學習步驟上圖中,對于整個Web學習應(yīng)該分五步展開,每一步都有須掌握的核心知識,這些步驟和核心知識的對應(yīng)關(guān)系下圖所示。 與學習步驟相對應(yīng)的核心知識 在學習本書之前,建議讀者一定要先掌握一些Java基礎(chǔ)知識,我們推薦《名師講壇——Java開發(fā)實戰(zhàn)經(jīng)典》一書,因為這本書與本書內(nèi)容有關(guān)聯(lián),而且要特別注意? 面向?qū)ο螅豪斫忸惖脑O(shè)計原則,掌握抽象類和接口的使用;? 類集框架:掌握集合框架的主要作用,并且可以靈活使用Collection、Map、Iterator等接口;? Java IO:文件的輸入輸出操作,在文件上傳章節(jié)中將會有重要作用;? JDBC:Java Web貫徹始終的技術(shù),沒有JDBC基本上Java Web也就將失去全部意義。讀者服務(wù)前 言“我們在用心做事,做最好的教育,做最好的圖書!”——北京魔樂科技教學總監(jiān) 李興華“無獨有偶,因為執(zhí)著,所以專業(yè)!”——中科軟通CEO 王月清本書起源這本書是北京魔樂科技(MLDN軟件實訓(xùn)中心)繼《名師講壇——Java開發(fā)實戰(zhàn)經(jīng)典》之后的又一扛鼎之作!親愛的讀者朋友,感謝您獨具慧眼選擇了這本書,我們堅信:本書將向您充分展示出Java開發(fā)技術(shù)的神奇魅力,且將會帶您快速、輕松地進入Java Web的開發(fā)領(lǐng)域。這本書浸透了我們的心血。它最初來源于我們的講義,后應(yīng)出版社之邀,數(shù)易其稿,從開始創(chuàng)作整理到完稿,到最后的視頻全部錄制完成,一共歷時14個月。當然在這14個月中,我還有繁重的教學及項目開發(fā)任務(wù),但是無論教學還是開發(fā)中間,我們無時無刻不在惦記、驗證、揣摩、記錄與本書有關(guān)的內(nèi)容。希望用我們的學習、教學和開發(fā)經(jīng)歷、經(jīng)驗,啟示后來的讀者,少走彎路,能夠在有限的時間內(nèi)快速掌握一門技術(shù)。記得若干年前,當JSP技術(shù)剛剛在中國興起的時候,我們就迫切尋覓一本能很快掌握這門技術(shù)的書,當時是幾乎每周都會向圖書城跑一趟,用每個月省吃儉用的錢去買一些相關(guān)的書來學習,當把每一本書帶回家的時候,心中的那份喜悅是無法用言語來表達的。但往往是因為晦澀的文字、解釋不清的概念、調(diào)試不通的程序等一系列問題,讓人感到技術(shù)似乎十分深奧,并一度懷疑我們是不是真的適合做這個行業(yè)。現(xiàn)在才知道,很多問題出在書上——很多書是一些不懂技術(shù)的人拼出來的,真有一種上當受騙的感覺!現(xiàn)在,經(jīng)過多年的摸爬滾打,我們對這些技術(shù)已經(jīng)很熟悉了,但回想當年的經(jīng)歷,還隱隱作痛。于是,就想用“心”寫一本書,讓每一位后來的讀者不再為技術(shù)而嚇到、而退卻。因為,我們覺得技術(shù)并不難,但第一步——選書很關(guān)鍵,一本晦澀無比、不知所云而又故作深奧的書,很可能讓人從此與該行業(yè)無緣,相反,一本好書好比是一個好的啟蒙老師,可以輕松、愉快地把人帶入一個專業(yè)的領(lǐng)域。 本書內(nèi)容結(jié)構(gòu)本書共分為5個部分:Web開發(fā)前奏、Web基礎(chǔ)開發(fā)、Web高級開發(fā)、框架開發(fā)、附錄。本書的核心章節(jié)為:第3章~第10章, 第14章、第15章、第17章。本書循序漸進,每一部分的知識都是為后續(xù)內(nèi)容進行服務(wù)的,學習步驟參考下圖。 學習步驟上圖中,對于整個Web學習應(yīng)該分5步展開,每一步都有需掌握的核心知識,這些步驟和核心知識的對應(yīng)關(guān)系下圖所示。 與學習步驟相對應(yīng)的核心知識 在學習本書之前,建議讀者一定要先掌握一些Java基礎(chǔ)知識,我們推薦《名師講壇——Java開發(fā)實戰(zhàn)經(jīng)典》一書,因為這本書與本書內(nèi)容有關(guān)聯(lián),而且要特別注意以下幾點。? 面向?qū)ο螅豪斫忸惖脑O(shè)計原則,掌握抽象類和接口的使用。? 類集框架:掌握集合框架的主要作用,并且可以靈活使用Collection、Map、Iterator等接口。? Java IO:文件的輸入輸出操作,在文件上傳章節(jié)中將會有重要作用。? JDBC:Java Web貫徹始終的技術(shù),沒有JDBC基本上Java Web也就將失去全部意義。讀者服務(wù)1.本書隨書DVD光盤提供了教學視頻和實例中用到的源程序,讀者可以先看視頻,并調(diào)試相關(guān)程序,在體驗中學習。2.本書提供了http://bbs.mldn.cn論壇,讀者可以登錄尋求幫助,還可以發(fā)郵件給我們mldnqa@163.com。3.高校教師可以登錄http://www.jiangker.com/,注冊后,我們?yōu)槟峁┩暾慕虒W大綱、學習筆記、視頻教學等一系列的資料。高校、應(yīng)用型、高職院校邀請授課,請致電:010-51283346。本書作者本書主要由李興華、王月清執(zhí)筆完成,還有其他人員參與了本書的文字整理、技術(shù)調(diào)試等工作,在此,謹向他們深表謝意,他們是:康麗華、董鳴楠、孫述龍、劉翳、張笑楠、劉剛、田弘冰、龐猛、劉楨媛、劉圣、李祺、孫浩、范金圣、周艷軍、劉宏偉、徐明明、馬云濤、李杰、張蕊、郭鴻喜、王四波、李金曼、張旭明、馬寧、王續(xù)、石瑞、師鉑弘、蘇瑩、張金旭、朱亞娜、李少龍、韓雷、朱紅、吳海斌、鄭京偉、張軍、高林、樊慶沖、劉閔、王孝慶、湯敬寧、羅昆、崔嵐、謝歡歡、堪雪蓮、王繼生、趙建軍、張艷萍、吳亨、路繼、苑建明和李超。寄語讀者——追求夢想,永不放棄!本書是我們長達5年的經(jīng)驗的總結(jié),它記錄了教學和開發(fā)中的點點滴滴的經(jīng)驗和教訓(xùn),也歷經(jīng)許多學生的檢驗,絕非濫竽充數(shù)之書!只要認真研讀本書內(nèi)容,就一定能夠順利跨入Java Web的大門。由于書中的內(nèi)容基本都是原創(chuàng),難免會有解釋不到位的地方,希望讀者朋友能提出寶貴意見,我們來共同交流。最后,希望本書成為您的“啟蒙老師”,引領(lǐng)您在軟件開發(fā)的大道上越走越好!
內(nèi)容概要
本書用通俗易懂的語言和豐富多彩的實例,通過對Ajax、JavaScript、HTML等Web系統(tǒng)開發(fā)技術(shù)基礎(chǔ)知識的講解,并結(jié)合MVC設(shè)計模式的理念,詳細講述了使用JSP及Struts框架進行Web系統(tǒng)開發(fā)的相關(guān)技術(shù)?! ∪珪?部分共17章,內(nèi)容包括Java Web開發(fā)簡介,HTML、JavaScript簡介,XML簡介,Tomcat服務(wù)器的安裝及配置,JSP基礎(chǔ)語法,JSP內(nèi)置對象,JavaBean,文件上傳,Servlet程序開發(fā),表達式語言,Tomcat數(shù)據(jù)源,JSP標簽編程,JSP標準標簽庫(JSTL),Ajax開發(fā)技術(shù),Struts基礎(chǔ)開發(fā),Struts常用標簽庫,Struts高級開發(fā)。另外,附錄中還介紹了實用工具、MyEclipse開發(fā)工具和HTTP狀態(tài)碼及頭信息。本書所有知識均以實用性為主,講解的是開發(fā)的核心內(nèi)容,幾乎全部用實例和代碼講解?! ”緯鋫?2小時同步教學視頻,以及幾乎全部實例的源程序,服務(wù)網(wǎng)站提供了電子教案等教學配套資料?! ”緯m合Java Web開發(fā)的入門者使用,也可以作為普通高校、應(yīng)用型高校、部分高職院校等以實用性為主的在校大學生作為參考書。
作者簡介
李興華:著名JAVA培訓(xùn)講師,JAVA EE高端培訓(xùn)講師,北京魔樂科技(MLDN軟件實訓(xùn)中心)教學總監(jiān),中科軟通系統(tǒng)架構(gòu)師,火車票網(wǎng)技術(shù)總監(jiān),北京偉仕嘉禾科技發(fā)展有限公司系統(tǒng)架構(gòu)師,8年軟件開發(fā)經(jīng)驗,5年高端培訓(xùn)經(jīng)驗,先后為40多家大中型企業(yè)做過培訓(xùn),在JAVA培訓(xùn)方面享有很高
書籍目錄
第1部分 Web開發(fā)前奏 第1章 Java Web開發(fā)簡介 第2章 HTML、JavaScript簡介 第3章 XML簡介 第4章 Tomcat服務(wù)器的安裝及配置 第2部分 Web基礎(chǔ)開發(fā) 第5章 JSP基礎(chǔ)語法 第6章 JSP內(nèi)置對象 第7章 JavaBean 第8章 文件上傳 第3部分 Web高級開發(fā) 第9章 Servlet程序開發(fā) 第10章 表達式語言 第11章 Tomcat數(shù)據(jù)源 第12章 JSP標簽編程 第13章 JSP標準標簽庫 第14章 Ajax開發(fā)技術(shù) 第4部分 框架開發(fā) 第15章 Struts基礎(chǔ)開發(fā) 第16章 Struts常用標簽庫 第17章 Struts高級開發(fā) 第5部分 附錄 附錄A 實用工具 附錄B MyEclipse開發(fā)工具 附錄C HTTP狀態(tài)碼及頭信息
章節(jié)摘錄
第1章 Java Web開發(fā)簡介通過本章的學習可以達到以下目標:? 了解Web的發(fā)展過程。? 理解Web開發(fā)的主要技術(shù)及作用范圍。? 掌握企業(yè)開發(fā)的整體架構(gòu)。隨著互聯(lián)網(wǎng)的興起,Web技術(shù)已經(jīng)應(yīng)用得越來越廣泛,而且已經(jīng)有越來越多的語言開始支持Web的開發(fā)。本章將介紹Web的發(fā)展歷程和Web常見的開發(fā)語言。1.1 Web發(fā)展歷程在早期,人們?yōu)榱朔奖汩_展科學研究,設(shè)計出了Internet用于連接美國的少數(shù)幾個頂尖研究機構(gòu),之后隨著進一步的發(fā)展,人們開始應(yīng)用HTTP協(xié)議(Hypertext Transfer Protocol,超文本傳輸協(xié)議)進行超文本(hypertext)和超媒體(hypermedia)數(shù)據(jù)的傳輸,從而將一個個的網(wǎng)頁展示在每個用戶的瀏覽器上。今天的Web已經(jīng)從最早的靜態(tài)Web發(fā)展到了動態(tài)Web階段,隨之而來的像網(wǎng)上銀行、網(wǎng)絡(luò)購物等站點的興起,更是將Web帶進了人們的生活和工作中。最早的Web是以靜態(tài)Web出現(xiàn)的,用戶在瀏覽器中輸入網(wǎng)址將請求通過HTTP協(xié)議傳送到Web服務(wù)器上,服務(wù)器會根據(jù)用戶的請求找到相應(yīng)的網(wǎng)頁文件(*.htm、*.html),接著再通過HTTP協(xié)議傳回到客戶端瀏覽器上進行顯示,如圖1-1所示。 圖1-1 靜態(tài)Web處理流程但是這種Web返回的只是電子文本的形式,在服務(wù)器生成之后,內(nèi)容永遠是固定的。在最初階段,一些科學家可以通過這些靜態(tài)Web的方式進行論文研究,而且很多的企業(yè)也并沒有發(fā)現(xiàn)這座“金礦”,而最初可以實現(xiàn)靜態(tài)Web的主要手段也就是使用HTML(超文本標記語言)。隨后,一些人對于Web就有更高的要求了,希望可以得到一些更加絢麗的效果,而此時SUN公司推出的Applet正好滿足了這種需求。SUN公司在1995年正式推出了Applet程序,而Applet(應(yīng)用小程序,簡稱小程序)允許開發(fā)人員編寫可以嵌入在Web頁面上的小應(yīng)用程序,只要用戶使用了支持Java的瀏覽器就可以直接運行此程序,那么此時的Web處理結(jié)構(gòu)如圖1-2所示。 圖1-2 Web處理結(jié)構(gòu)Applet程序雖然帶來了很多好處,但是Applet程序本身也存在著一些限制。例如,不允許進行文件讀寫,也無法進行數(shù)據(jù)庫的操作,而且Applet屬于胖客戶端程序,下載速度也是非常緩慢。從圖1-2中可以分析出,Applet技術(shù)本身只能運行在客戶端,所以此時雖然帶來了一些動態(tài)的效果,但是服務(wù)器端依然沒有做太大的改變,還是采用了請求及回應(yīng)機制,客戶端需要哪些資源,服務(wù)器端就返回哪些資源。當然,除Applet技術(shù)外,像JavaScript語言也可以實現(xiàn)客戶端動態(tài)效果,但不管如何實現(xiàn),這種在客戶端完成的動態(tài)效果在代碼的開發(fā)上也是很復(fù)雜的,而現(xiàn)在的JavaScript在開發(fā)中也只是完成一些簡單的表單驗證功能的實現(xiàn)(這一點以后會講解到)。 在客戶端實現(xiàn)動態(tài)效果似乎已經(jīng)成為了一件很麻煩的事情,那么人們只能在服務(wù)器端做出改變,而這種改變真正造就了動態(tài)Web的發(fā)展。下面先來看一下動態(tài)Web的執(zhí)行圖,并觀察與靜態(tài)Web的區(qū)別,如圖1-3所示。 圖1-3 動態(tài)Web流程圖從圖1-3中可以發(fā)現(xiàn),此時的客戶端已經(jīng)不再需要JVM的支持了,而只是一個普通的瀏覽器,但是服務(wù)器端卻發(fā)生了重大的改變。首先,所有請求不再直接提交給Web服務(wù)器,而是通過Web服務(wù)插件進行接收,此插件的主要目的是用于區(qū)分用戶所發(fā)出的請求是動態(tài)請求還是靜態(tài)請求。如果用戶發(fā)出的是靜態(tài)請求,則會將用戶請求交給Web服務(wù)器,并通過文件系統(tǒng)將用戶所需要的資源發(fā)回給客戶端瀏覽器,這一點與最初的靜態(tài)Web處理流程是完全一樣的;但如果此時的請求是動態(tài)請求,則會將所有請求交給Web容器進行處理,在Web容器中將會采用拼湊代碼的形式(主要是拼湊HTML)動態(tài)地生成數(shù)據(jù)并通過Web服務(wù)器發(fā)回給客戶端瀏覽器。動態(tài)Web的最大特點就是具備交互性,所謂交互性就是服務(wù)器端會自動根據(jù)用戶請求的不同而顯示不同的結(jié)果。它類似于使用搜索引擎那樣,只要輸入關(guān)鍵字,服務(wù)器端就會根據(jù)這些指定的關(guān)鍵字,返回檢索結(jié)果。要想實現(xiàn)一個動態(tài)Web,可以采用如下5種方式。? CGI(Common Gateway Interface,公共網(wǎng)關(guān)接口):CGI是最早出現(xiàn)的實現(xiàn)動態(tài)Web的操作標準,可以采用任何語言實現(xiàn)(如C或VB),但是這種傳統(tǒng)的CGI程序本身是采用多進程的機制進行處理的,每當一個新用戶連接到服務(wù)器上時,服務(wù)器都會為其分配一個新的進程,很明顯,這種程序的執(zhí)行效率是很低的。? PHP(Hypertext Preprocessor,超文本預(yù)處理):PHP是一種跨平臺的服務(wù)器端的嵌入式腳本語言。它大量地借用C、Java和Perl語言的語法,并結(jié)合PHP自身的特性,使Web開發(fā)者能夠迅速地寫出動態(tài)頁面。而且PHP是完全免費的,用戶可以從PHP官方站點自由下載。但是PHP本身也有缺點,就是需要運行在Apache服務(wù)器下,只有在使用MySQL數(shù)據(jù)庫時才可以達到性能的最大發(fā)揮,所以一般都只適合于個人或小型項目開發(fā)。? ASP(Active Server Pages,動態(tài)服務(wù)頁):ASP是一個動態(tài)Web服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和運行動態(tài)的、交互的、高性能的Web服務(wù)應(yīng)用程序。ASP采用腳本語言VBScript(JavaScript)作為自己的開發(fā)語言。由于ASP技術(shù)出現(xiàn)較早,所以一直到今天還在被陸續(xù)使用著,但是ASP技術(shù)本身有一個最大的問題就是平臺的支持,ASP只能運行在IIS(Internet Information Services,互聯(lián)網(wǎng)信息服務(wù))服務(wù)器上,且只能在SQL Server數(shù)據(jù)庫上才可以得到最大發(fā)揮。但是這套開發(fā)相對于使用Java開發(fā)而言,性能是很差的,所以一般用于個人或中小型項目 開發(fā)。? ASP.NET:ASP.NET是微軟公司繼ASP之后推出的新一代動態(tài)網(wǎng)站開發(fā)技術(shù)。ASP.NET基于.NET框架平臺,用戶可以選擇.NET框架下自己喜歡的語言進行開發(fā)。ASP.NET技術(shù)是ASP技術(shù)的更新,也是微軟公司目前主推的技術(shù),但是由于微軟的產(chǎn)品永遠都會受到平臺的限制,所以此技術(shù)往往用于中型項目的開發(fā)。? JSP(Java Server Page,Java服務(wù)頁):使用Java完成的動態(tài)Web開發(fā),代碼風格與ASP類似,都屬于在HTML代碼中嵌入Java代碼以實現(xiàn)功能,由于Java語言的跨平臺特性,所以JSP不會受到操作系統(tǒng)或開發(fā)平臺的制約,而且有多種服務(wù)器可以支持,如Tomcat、WebLogic、JBoss、Websphere等,所以經(jīng)常在中大型項目開發(fā)中使用。JSP的前身是Servlet(服務(wù)器端小程序),但是由于Servlet開發(fā)過于復(fù)雜,所以SUN公司的開發(fā)人員根據(jù)ASP技術(shù)的特點,將Servlet程序重新包裝,而形成新的一門開發(fā)技術(shù)——JSP。1.2 企業(yè)開發(fā)架構(gòu)在現(xiàn)代的企業(yè)平臺開發(fā)中已經(jīng)大量地使用了B/S開發(fā)模式,不管是使用何種動態(tài)Web實現(xiàn)手段,其操作形式都是一樣的,核心操作的大部分都是圍繞著數(shù)據(jù)庫進行的。但是如果直接使用編程語言進行數(shù)據(jù)庫的開發(fā)則程序員要處理許多諸如事務(wù)、安全等操作,所以現(xiàn)在的開發(fā)往往都會通過中間件進行過渡,即程序運行在中間件上,并且通過中間件進行數(shù)據(jù)庫的操作,而具體一些相關(guān)的處理,如事務(wù)、安全等完全由中間件負責,這樣程序員只需要負責具體功能的開發(fā)即可,此種模式如圖1-4所示。 圖1-4 企業(yè)開發(fā)的核心架構(gòu)在圖1-4中可以發(fā)現(xiàn),企業(yè)的平臺需要操作系統(tǒng)的支持,所有數(shù)據(jù)庫都是建立在操作系統(tǒng)上的,之后開發(fā)平臺(Java EE就是一種開發(fā)平臺)通過中間件進行數(shù)據(jù)庫的操作。1.3 Java EE架構(gòu)Java EE(Java Enterprise Edition,在2005年之前稱為J2EE)是在Java SE基礎(chǔ)之上建立起來的一種標準開發(fā)架構(gòu),主要用于企業(yè)級應(yīng)用程序的開發(fā)。在Java EE的開發(fā)中是以B/S作為主要的開發(fā)模式,在Java EE中提供了多種組件及各種服務(wù),如圖1-5所示。 圖1-5 Java EE架構(gòu)從圖1-5中可以發(fā)現(xiàn),整個Java EE架構(gòu)都是基于Java SE基礎(chǔ)構(gòu)建的,主要由容器、組件和服務(wù)三大核心部分構(gòu)成,下面分別進行介紹。1.Java EE容器容器負責一種組件的運行,在Java EE中一共提供了4種容器,即Applet Container、Application Client Container、Web Container和EJB Container。各個容器負責處理各自的程序,且互相沒有任何影響,而如果需要運行Web程序,則一定要有Web容器的支持。2.Java EE組件每一種Java EE組件實際上都表示著一種程序的開發(fā),例如,Application程序就是使用主方法(main())運行的一種組件。在Java EE中提供了4種容器,每一種容器中都運行各自的組件,讀者可以發(fā)現(xiàn)在Web容器中運行的是JSP和Servlet組件。EJB組件本身提供的是一個業(yè)務(wù)中心,由于EJB屬于分布式開發(fā)的范疇,所以本書暫不對此做深入講解。3.Java EE服務(wù)Java EE之所以應(yīng)用廣泛,主要是由于Java EE提供了各種服務(wù),通過這些服務(wù)可以方便用戶進行開發(fā)。例如,如果要進行數(shù)據(jù)庫操作,則應(yīng)使用JDBC服務(wù)。在Java EE中的主要服務(wù)有如下幾種。? HTTP(Hypertext Transfer Protocol):在Java EE中主要采用了HTTP協(xié)議作為通信標準,包括Web開發(fā)中的主要協(xié)議也是HTTP協(xié)議。? RMI-IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol):遠程方法調(diào)用,融合了Java RMI和CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu))兩項技術(shù)的優(yōu)點而形成的新的通信協(xié)議,在使用Application或Web端訪問EJB端組件時使用。? Java IDL(Java Interface Definition Language):Java接口定義語言,主要用于訪問外部的CORBA服務(wù)。? JTA(Java Transaction API):用于進行事務(wù)處理操作的API,但在Java EE中所有的事務(wù)應(yīng)該交由容器處理。? JDBC(Java Database Connectivity):為數(shù)據(jù)庫操作提供的一組API。? JMS(Java Message Service):用于發(fā)送點對點消息的服務(wù),需要額外的消息服務(wù)中間件支持。? JavaMail:用于發(fā)送郵件,需要額外的郵件服務(wù)器支持。? JAF(JavaBeans Activation Framework):用于封裝傳遞的郵件數(shù)據(jù)。? JNDI(Java Naming and Directory Interface):在Java EE中提供的核心思想就是 “key→value”,為了體現(xiàn)這種思路,可以通過JNDI進行名稱的綁定,并且依靠綁定的名字取得具體的對象。? JAXP(Java API for XML Parsing):專門用于XML解析操作的API,可以使用DOM或SAX解析,在最新的Java EE中提供了一種新的解析組件——STAX。? JCA(J2EE Connector Architecture):Java連接器架構(gòu),通過此服務(wù)可以連接不同開發(fā)架構(gòu)的應(yīng)用程序。? JAAS(Java Authentication and Authorization Service):用于認證用戶操作,可以讓當前運行的代碼更加可靠。? JSF(Java Server Faces):Java EE官方提供的一套MVC實現(xiàn)組件。? JSTL(JSP Standard Tag Library):JSP頁面的標簽支持庫。? Web服務(wù)組件:主要用于異構(gòu)的分布式程序開發(fā),主要服務(wù)有SAAJ(SOAP with Attachments API for Java)、JAXR(Java API for XML Registries)等。但是在整個企業(yè)的應(yīng)用環(huán)境中,Java EE架構(gòu)只是工作在中間層的一種組件,如圖1-6所示。 圖1-6 Java EE在企業(yè)環(huán)境中的位置在整個企業(yè)開發(fā)中主要分為如下3個層次。? 客戶層:分為內(nèi)部用戶及外部用戶,客戶端可以使用Web瀏覽器,也可以是Java編寫的應(yīng)用程序。? 中間層:為客戶訪問提供服務(wù),使用Java EE中的各種組件技術(shù)進行搭建,且各個容器之間允許互相調(diào)用。? 企業(yè)信息系統(tǒng)層(Enterprise Information Systems,EIS):例如,保存數(shù)據(jù)的數(shù)據(jù)庫就是工作在此層。客戶端一般不會直接去操作企業(yè)信息系統(tǒng)層,而是會通過中間層提供的服務(wù)進行訪問,開發(fā)人員所需要完成的就是為所有的客戶端提供更方便的操作。1.4 Java EE核心設(shè)計模式在整個Java EE中最核心的設(shè)計模式就是MVC(Mode-View-Controller)設(shè)計模式,且被廣泛應(yīng)用。Java EE中的標準MVC設(shè)計模式如圖1-7所示。 圖1-7 Java EE中的標準MVC設(shè)計模式在標準的MVC設(shè)計模式中,用戶一旦發(fā)出請求之后會將所有請求交給控制層處理,然后由控制層調(diào)用模型層中的模型組件,并通過這些組件進行持久層的訪問,再將所有結(jié)果都保存在JavaBean(Java類)中,最終由JSP和JavaBean一起完成頁面的顯示。但是此種設(shè)計模式,在不同的開發(fā)架構(gòu)中也會存在一些區(qū)別,因為在開發(fā)中如果沒有特殊的需要不一定會使用EJB技術(shù),這一點在本書中會有具體的講解。1.5 Struts開發(fā)框架使用標準MVC設(shè)計模式進行開發(fā),則肯定要求進行過多的復(fù)雜設(shè)計,這對于一般項目而言是非常麻煩的,所以Apache專門提供了一套用于進行MVC開發(fā)的框架——Struts。Struts的軟件包依然用于Web層次的開發(fā),使用Struts可以更方便地對代碼開發(fā)進行嚴格的管理。圖1-8列出了Struts框架的基本組成。 圖1-8 Struts框架的基本組成從圖1-8中可以發(fā)現(xiàn),Struts框架的主要作用還是在Web層上,也就是說Struts是對JSP和Servlet的一種變相應(yīng)用,其核心的內(nèi)部原理依然是MVC,而且由于Struts出現(xiàn)較早,使用較為廣泛,所以現(xiàn)在儼然已經(jīng)成為了Java EE的一套標準框架,是每一個從事Java EE開發(fā)人員必須具備的一項基本技能。1.6 本 章 摘 要1.Web運行環(huán)境經(jīng)歷了靜態(tài)Web和動態(tài)Web兩個時期,靜態(tài)Web與動態(tài)Web最本質(zhì)的區(qū)別就在于資源(數(shù)據(jù)庫)的訪問上。2.動態(tài)Web的常見實現(xiàn)手段有CGI、ASP、PHP、JSP/Servlet等。3.Java EE架構(gòu)主要由組件、容器、服務(wù)組成,在整個Java EE中MVC是其核心設(shè)計思路。4.Struts開發(fā)主要是為了解決Web層的開發(fā)問題,可以節(jié)約設(shè)計的成本。
編輯推薦
《名師講壇:Java Web開發(fā)實戰(zhàn)經(jīng)典基礎(chǔ)篇(JSP、Servlet、Struts、Ajax)》精彩視頻:32小時全真教學培訓(xùn)視頻,市場價值1000元;案例教學:30個案例分析;豐富實例:300個小實例、源程序;教學支持:詳盡電子教案。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載