出版時間:2009-4 出版社:電子工業(yè)出版社 作者:雨虹 等編著 頁數(shù):482
Tag標(biāo)簽:無
前言
最近幾年,Java和Web技術(shù)都發(fā)生了巨大的變化。對企業(yè)應(yīng)用而言,從外圍的門戶系統(tǒng)到核心的業(yè)務(wù)系統(tǒng),Web化已經(jīng)相當(dāng)普遍,隨之而來的則是計算交互模式的再一次變化。從主機(jī)應(yīng)用、C/S應(yīng)用與Web應(yīng)用,再到Enterprise Web 2.0的提出,背后體現(xiàn)的都是計算交互方式的變化。表現(xiàn)在這幾年與用戶的交互,成為技術(shù)關(guān)注的重點。Java Web表示層的技術(shù)多種多樣,變化也比較大?! ∝S富的用戶體驗,對企業(yè)級應(yīng)用不只是展現(xiàn)方式的炫和酷,而是通過個性化推送、用戶行為模式分析等,提高應(yīng)用系統(tǒng)實效的重要手段。根據(jù)我這幾年的咨詢經(jīng)歷,企業(yè)的領(lǐng)導(dǎo)者而不僅僅是過去的IT技術(shù)人員,都在考慮如何快速應(yīng)用新的IT交互技術(shù),從而增強(qiáng)企業(yè)的競爭力?! 〈蠹s在2004年年初,我的一個同事與好友在做Rich Client的項目。閑聊起來,他向我介紹說有個Java設(shè)計師不錯,基本功比較扎實;而他的肯定通常是相當(dāng)可靠的。那是我第一次認(rèn)識了本書的作者之一雨虹,愛打太極拳的小伙子,樸實的笑容。當(dāng)時給我的印象是他真心地喜愛編程,喜歡鉆研,不僅僅看做一份工作的技能,而熱愛是最好的老師?! ∵@些年雨虹和他的團(tuán)隊出色地完成了許多項目,他們也都成為了有豐富經(jīng)驗的架構(gòu)師。本書的作者們結(jié)合多年的工作經(jīng)驗,在書中詳細(xì)地介紹了Web表現(xiàn)層編程的現(xiàn)狀、發(fā)展以及大量的實踐經(jīng)驗??傮w來看,這本書以JSF為主線,同時又介紹了Web 2.0的一些開發(fā)技術(shù):Ajax及一些流行的Ajax框架,如ExtJS,并將兩者有機(jī)地融合起來,涵蓋了Web開發(fā)的基本方面。相信本書會為讀者提供非常有益的幫助。 新的企業(yè)級應(yīng)用將從交互模式方式上而重新改寫。
內(nèi)容概要
本書匯集了許多大型企業(yè)級Web開發(fā)的優(yōu)秀實踐經(jīng)驗,內(nèi)容包含了大量詳實的實例:從Web開發(fā)基礎(chǔ),到JSF組件(RichFaces),再到純JavaScript框架(ExtJS),以及結(jié)合兩者優(yōu)點的ExtFaces,都詳細(xì)地進(jìn)行了分析和總結(jié),其中很多實踐解決方案和樣例代碼稍作修改就可以直接應(yīng)用于項目開發(fā)之中。 結(jié)合書中的內(nèi)容,讀者可以根據(jù)自己的項目的特點,采用書中的一種或者多種技術(shù)靈活地制定實際項目的解決方案。本書內(nèi)容廣泛,深入淺出,既適合開發(fā)人員作為多種Web UI技術(shù)的入門指導(dǎo),也適合架構(gòu)師作為技術(shù)選型的參考手冊。
書籍目錄
第Ⅰ部分 Web UI開發(fā)基礎(chǔ) 第1章 Web UI編程綜述 1.1 Web 2.0 介紹 1.1.1 Web的發(fā)展歷史 1.1.2 Web 2.0相關(guān)技術(shù) 1.1.3 SOA與Web 2.0 1.2 UI 編程技術(shù) 1.2.1 Rich Client Internet 編程 1.2.2 Ajax 編程 1.2.3 Ajax in JSF編程 1.3 本章小結(jié) 第2章 Ajax 基礎(chǔ)知識 2.1 Ajax的基本知識 2.1.1 Ajax基本概念 2.1.2 Ajax的基本特點 2.2 一切從瀏覽器說起 2.2.1互聯(lián)網(wǎng)和HTML的誕生 2.2.2 HTML的發(fā)展 2.3 DOM 簡介 2.3.1 HTML DOM 和BOM 2.3.2 DOM事件 2.3.3 DOM事件流 2.3.4 事件處理函數(shù) 2.4 CSS 2.4.1 CSS簡介 2.4.2 基本的CSS語法 2.4.3 CSS屬性 2.4.4 CSS選擇器 2.4.5 串聯(lián)(Cascading) 2.5 JavaScript簡介 2.5.1 JavaScript入門示例 2.5.2 JavaScript基本數(shù)據(jù)結(jié)構(gòu) 2.5.3 JavaScript的基本構(gòu)成 2.5.4 事件驅(qū)動及事件處理 2.6 XML簡介 2.6.1 XML的產(chǎn)生 2.6.2 XML的優(yōu)點 2.6.3 一個簡單的XML文檔 2.6.4 XML文檔的整體結(jié)構(gòu) 2.6.5 XML文檔的實質(zhì)內(nèi)容——元素 2.6.6 字符數(shù)據(jù)與實體引用 2.6.7 標(biāo)記 2.6.8 CDATA 2.6.9 注釋 2.7 JSON簡介 2.8 XMLHttpRequest對象簡介 2.8.1 XMLHttpRequest對象的屬性和事件 2.8.2 XMLHttpRequest對象的方法 2.8.3 發(fā)送請求和處理請求 2.9 本章小結(jié) 第3章 Ajax框架介紹 3.1 Prototype 3.1.1 什么是Prototype 3.1.2 Prototype的下載和引入 3.1.3 Prototype常用函數(shù)介紹 3.1.4 Prototype的Ajax功能 3.2 script.aculo.us 3.2.1 script.aculo.us 簡介 3.2.2 script.aculo.us 的引入和使用 3.2.3 script.aculo.us 的功能 3.3 jQuery 3.3.1 jQuery 簡介 3.3.2 jQuery的使用 3.4 Sarissa 3.4.1 Sarissa 介紹 3.4.2 Sarissa的使用 3.5 本章小結(jié)第Ⅱ部分 JSF應(yīng)用開發(fā) 第4章 JSF介紹 4.1 什么是JSF 4.1.1 JSF簡介 4.1.2 JSF的體系結(jié)構(gòu) 4.1.3 為什么要使用JSF 4.2 使用條件 4.3 配置JSF 4.3.1 下載 4.3.2 安裝配置 4.3.3 HelloWorld 4.4 JSF的元素 4.4.1 UI組件 4.4.2 JSF生命周期 4.4.3 數(shù)據(jù)轉(zhuǎn)換與驗證 4.4.4 JSF事件處理 4.4.5 JSF表達(dá)式語言 4.5 JSF與Spring結(jié)合 4.6 JSF解決方案 4.6.1 DataTable分頁 4.6.2 一般分頁 4.6.3 On-Demand分頁 4.6.4 Exception統(tǒng)一處理 4.6.5 Shale框架驗證 4.7 本章小結(jié) 第5章 Facelets 5.1 Facelets簡介 5.2 配置Facelets 5.2.1 下載 5.2.2 安裝和配置 5.2.3 Hello World示例 5.3 Facelets模板和擴(kuò)展機(jī)制 5.3.1 UI Component和UIInsert 5.3.2 Facelets include標(biāo)簽的的用法 5.4 Facelets自定義標(biāo)簽 5.5 本章小結(jié) 第6章 使用RichFaces 6.1 RichFaces簡介 6.2 使用條件 6.3 配置RichFaces 6.3.1 下載 6.3.2 安裝及配置 6.3.3 HelloWorld示例 6.3.4 RichFaces配置進(jìn)階 6.4 RichFaces的基本原理 6.4.1 簡介 6.4.2 RichFaces的體系架構(gòu) 6.4.3 如何發(fā)送Ajax請求 6.4.4 確定要發(fā)送的內(nèi)容 6.4.5 決定要重繪的區(qū)域 6.5 RichFaces開發(fā)工具介紹 6.5.1 Red Hat Developer Studio 6.5.2 Eclipse WTP 6.6 RichFaces常用組件介紹 6.6.1 Ajax日志 6.6.2 Ajax監(jiān)聽器 6.6.3 參數(shù) 6.6.4 按鈕 6.6.5 鏈接 6.6.6 Ajax狀態(tài) 6.6.7 擴(kuò)展Ajax事件 6.6.8 日歷控件 6.6.9 列表移動 6.6.10 可排序列表 6.6.11 下拉菜單 6.6.12 模式對話框 6.6.13 面板條 6.6.14 可滾動的數(shù)據(jù)表格 6.6.15 可折疊的面板 6.6.16 標(biāo)簽頁 6.6.17 工具提示 6.6.18 自動完成對話框 6.6.19 樹 6.6.20 內(nèi)容菜單 6.6.21 頁面效果 6.6.22 數(shù)據(jù)表格 6.7 優(yōu)化Ajax請求 6.7.1 優(yōu)化Ajax隊列 6.7.2 優(yōu)化數(shù)據(jù) 6.8 異常處理 6.8.1 Ajax請求錯誤處理 6.8.2 Session過期處理 6.9 局限和不足 6.10 本章小結(jié) 第7章 Seam入門 7.1 Seam簡介 7.2 配置Seam 7.2.1 下載 7.2.2 安裝和配置 7.2.3 HelloWorld 7.3 Seam與JSF 7.4 再談數(shù)據(jù)表格(dataTable) 7.4.1 單純RichFaces的解決方案 7.4.2 RichFaces + Seam的解決方案 7.5 本章小結(jié)第Ⅲ部分 Ext應(yīng)用開發(fā) 第8章 ExtJS框架的介紹和使用 8.1 JavaScript面向?qū)ο缶幊獭 ?.2 ExtJS簡介及第一個例子(HelloWorld) 8.3 ExtJS布局(layout) 8.4 嵌套布局(NestedLayout) 8.5 表單組件(Ext.form.FormPanel) 8.6 樹組件(Ext.tree.TreePanel) 8.7 對話框組件(Ext.Window) 8.8 表格組件(Ext.grid.GridPanel) 8.9 菜單組件(Ext.menu.Menu) 8.10 Utility組件 8.10.1 Ajax 組件 8.10.2 Template和XTemplate組件 8.10.3 DomHelper組件 8.11 國際化 8.12 開發(fā)工具 8.13 本章小結(jié) 第9章 DWR和JSON-RPC-Java的介紹及使用 9.1 DWR框架的介紹和使用 9.1.1 DWR基本概念 9.1.2 使用DWR 9.1.3 使用自定義對象 9.1.4 DWR的配置 9.2 JSON-RPC-Java框架的介紹和使用 9.2.1 基本概念 9.2.2 安裝和配置 9.3 DWR和JSON-RPC-Java的簡單對比 9.4 本章小結(jié)第Ⅳ部分 JSF與Ext的結(jié)合應(yīng)用 第10章 基于Ext的JSF組件——ExtFaces 10.1 ExtFaces簡介 10.1.1 ExtFaces的來源 10.1.2 ExtFaces采用的技術(shù) 10.1.3 JSF開發(fā)現(xiàn)狀 10.1.4 Ext和JSF的結(jié)合方案 10.2 ExtFaces原理 10.3 ExtFaces目標(biāo) 10.4 ExtFaces組件介紹 10.4.1 簡單組件 10.4.2 嵌套組件 10.5 開發(fā)計劃 10.6 本章小結(jié)
章節(jié)摘錄
第Ⅰ部分 Web UI開發(fā)基礎(chǔ) 第1章 Web UI編程綜述 1.1 Web 2.0介紹 在介紹web 2.0之前,還是讓我們從Web的發(fā)展歷史開始說起吧?! ?.1.1web的發(fā)展歷史 1.1.1.1從無到有 web是一種典型的分布式應(yīng)用架構(gòu)。web應(yīng)用中的每一次信息交換都要涉及客戶端和服務(wù)器端兩個層面。因此,Web開發(fā)技術(shù)大體上也可以被分為客戶端技術(shù)和服務(wù)器端技術(shù)兩大類。我們先來談?wù)効蛻舳思夹g(shù)的萌芽和演進(jìn)過程?! eb客戶端的主要任務(wù)是展現(xiàn)信息內(nèi)容,而HTML語言則是信息展現(xiàn)的最有效載體之一。作為一種實用的超文本語言,HTML的歷史最早可以追溯到20世紀(jì)40年代?! ?945年,vannevar Bush在一篇文章中闡述了文本和文本之間通過超級鏈接相互關(guān)聯(lián)的思想,并在文中給出了一種能實現(xiàn)信息關(guān)聯(lián)的計算機(jī)Memex的設(shè)計方案。Doug Engelban等人則在1960年前后,對信息關(guān)聯(lián)技術(shù)做了最早的實驗。與此同時,TedNelson正式將這種信息關(guān)聯(lián)技術(shù)命名為超文本(Hypertext)技術(shù)?! ?969年,IBM的Charles Goldfarb發(fā)明了可用于描述超文本信息的GML(GeneralizedMarkup Language)語言。1978到1986年間,在ANSI等組織的努力下,GML語言進(jìn)一步發(fā)展成為著名的標(biāo)準(zhǔn)通用標(biāo)記語言(Standard Generalized Markup Language,SGML)。 1989年,歐洲粒子物理研究所(European Council for Nuclear Research,CERN)的Tim Bemers-Lee意識到,與其簡單地引用其他人的工作,為什么不干脆鏈接呢?讀一篇文章時,科學(xué)家可以打開所引用的文章。超文本(Hypertext)當(dāng)時相當(dāng)流行,并利用了他先前在文檔和文本處理方面的研究成果。Tim Bemers-Lee同時感到SGML是描述超文本信息的一個上佳方案,但美中不足的是SGMI。過于復(fù)雜,不利于信息的傳遞和解析。于是,TimBemers-Lee對SGML語言做了大刀闊斧的簡化和完善,提出了SGML的一個子集,稱為超文本標(biāo)記語言(HyperText Markup Language,HTML)。TimBerhers-Lee不僅創(chuàng)建了一個稱為超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)的簡單協(xié)議,還發(fā)明了第一個Web瀏覽器,叫做WorldWideWeb。Tim Bemers-Lee提出的HTML獲得巨大的應(yīng)用,他本人也由此獲得了“互聯(lián)網(wǎng)之父”的稱號?! ?.1.1.2Web 1.0發(fā)展概述 在HTML提出之后,Web獲得了飛快的發(fā)展,下面從服務(wù)器端和客戶端兩個方面說起。 1.客戶端Web的發(fā)展 最初的HTML語言只能在瀏覽器中展現(xiàn)靜態(tài)的文本或圖像信息,這滿足不了人們對信息豐富性和多樣性的強(qiáng)烈需求——這件事情最終的結(jié)果是,由靜態(tài)技術(shù)向動態(tài)技術(shù)的轉(zhuǎn)變成為了Web客戶端技術(shù)演進(jìn)的永恒定律?! ∧艽鎯Α⒄宫F(xiàn)二維動畫的GIF圖像格式早在1989年就已發(fā)展成熟。Web出現(xiàn)后,GIF第一次為HTML頁面引入了動感元素。但更大的變革來源于1995年Java語言的問世。Java語言天生就具備的平臺無關(guān)的特點,讓人們一下子找到了在瀏覽器中開發(fā)動態(tài)應(yīng)用的捷徑。1996年,著名的Netscape瀏覽器在其2.0版中增加了對Java Applet和JavaScript的支持。Netscape的競爭對手,Microsoft的IE 3.0瀏覽器也在這一年開始支持.Java技術(shù)。現(xiàn)在,開發(fā)人員可以用Java和JavaScript語言開發(fā)豐富HTML頁面的功能了。順便說一句,JavaScript語言在所有客戶端開發(fā)技術(shù)中占有非常獨特的地位:它是一種以腳本方式運行的、簡化了的.Java語言,這也是腳本技術(shù)第一次在Web世界里嶄露頭角。為了用Microsoft的技術(shù)與JavaScript抗衡,Microsoft還為1996年的IE 3.0設(shè)計了另一種后來也聲名顯赫的腳本語言——VBScript語言。 真正讓HTML頁面表現(xiàn)更加豐富和強(qiáng)大的,則是CSS(Cascading Style Sheets)和DHTML(Dynamic HTML)技術(shù)。1996年年底,W3C提出了CSS的建議標(biāo)準(zhǔn),同年,IE 3.0引入了對CSS的支持。CSS大大提高了開發(fā)者對信息展現(xiàn)格式的控制能力。1997年的Netscape 4.0不但支持CSS,而且增加了許多Netscape公司自定義的動態(tài)HTML標(biāo)記,這些標(biāo)記在CSS的基礎(chǔ)上,讓HTML頁面中的各種要素相互交互。1997年,Microsoft發(fā)布了IE 4.0,并將動態(tài)HTML標(biāo)記、CSS和動態(tài)對象模型(DHTML Object Model)發(fā)展成了一套完整、實用、高效的客戶端開發(fā)技術(shù)體系,Microsoft稱其為DHTML。同樣是實現(xiàn)HTML頁面的動態(tài)效果,DHTML技術(shù)無須啟動Java虛擬機(jī)或其他腳本環(huán)境,可以在瀏覽器的支持下,獲得更好的展現(xiàn)效果和更高的執(zhí)行效率?! 榱嗽贖TML頁面中實現(xiàn)音頻、視頻等更為復(fù)雜的多媒體應(yīng)用,1996年的NetscaDe 2.0成功地引入了對QuickTime插件的支持,插件這種開發(fā)方式也迅速風(fēng)靡了瀏覽器的世界。在Windows平臺上,Microsoft將客戶端應(yīng)用集中在了20世紀(jì)90年代中期剛剛問世的COM和ActiveX身上。1996年,IE 3.0正式支持在HTML頁面中插入ActiveX控件的功能,這為其他廠商擴(kuò)展Web客戶端的信息展現(xiàn)方式開辟了一條自由之路。1999年,RealPlayer插件先后在Netscape和IE瀏覽器中取得了成功,與此同時,Microsoft將媒體播放軟件Media Player也被預(yù)裝到了各種Windows版本之中。同樣值得紀(jì)念的還有Flash插件的橫空出世:20世紀(jì)90年代初期,Jonathan Gay在Futurewave公司開發(fā)了一種名為Future Splash Animator的二維矢量動畫展示工具,1996年,Macromedia公司收購了FutureWave,并將Jonathan Gay的發(fā)明改名為我們熟悉的Flash。從此,F(xiàn)lash動畫成了Web開發(fā)者表現(xiàn)自我、展示個性的最佳方式?! 〕司帉慔TML頁面之外,客戶端應(yīng)用的開發(fā)者還可以利用一些成熟的技術(shù)將瀏覽器的功能添加到自己的應(yīng)用程序中。從1992年開始,W3C就免費向開發(fā)者提供libwww開發(fā)厙。借助libwww,我們可以自己編寫Web瀏覽器和Web搜索工具,也可以分析、編輯或顯示HTML頁面。1999年,Microsoft在IE 5.0中引入的HTAs(HTMLApplications)技術(shù)則允許我們直接將HTML頁面轉(zhuǎn)換為一個真正的應(yīng)用程序。從1997年的IE 4.0開始, Microsoft為開發(fā)者提供了WebBrowser控件和其他相關(guān)的COM接口,允許程序員在自己的程序中直接嵌入瀏覽器窗口,或調(diào)用各種瀏覽器的功能,如分析或編輯HTML頁面等。Windows 98及其后的Windows操作系統(tǒng)甚至還利用WSH(Windows Script Host)技術(shù)將原本只在瀏覽器中運行的JavaScript、VBScript變成了可以在Win32環(huán)境下使用的通用腳本語言,這些都極大地擴(kuò)展和增強(qiáng)了Web客戶端開發(fā)技術(shù)?! ?.服務(wù)器端技術(shù)的成熟與發(fā)展 與客戶端技術(shù)從靜態(tài)向動態(tài)的演進(jìn)過程類似,Web服務(wù)器端的開發(fā)技術(shù)也是由靜態(tài)向動態(tài)逐漸發(fā)展、完善起來的?! ∽钤绲腤eb服務(wù)器簡單地響應(yīng)瀏覽器發(fā)來的HTTP請求,并將存儲在服務(wù)器上的HTML文件返回給瀏覽器。一種名為SSl(Server Side Includes)的技術(shù)可以讓W(xué)eb服務(wù)器在返回HTML文件前,更新HTML文件的某些內(nèi)容,但其功能非常有限。第一種真正使服務(wù)器能根據(jù)運行時的具體情況,動態(tài)生成HTML頁面的技術(shù)是大名鼎鼎的CGI(Common Gateway Interface)技術(shù)。1993年,CGI 1.0的標(biāo)準(zhǔn)草案由NCSA(NationaI Center for Super computing Applications)提出; 以享受到信息檢索、信息交換、信息處理等更為便捷的信息服務(wù)?! ≡缙诘腃GI程序大多是編譯后的可執(zhí)行程序,其編程語言可以是C、C++、Pascal等任何通用的程序設(shè)計語言。為了簡化CGI程序的修改、編譯和發(fā)布過程,人們開始探尋用腳本語言實現(xiàn)CGI應(yīng)用的可行方式。在此方面,不能不提的是Larry Wall于1987年發(fā)明的Perl語言。Perl結(jié)合了C語言的高效,以及sh、awk等腳本語言的便捷,似乎天生就適用于CGI程序的編寫。1995年,第一個用Perl寫成的CGI程序問世。很快,Perl在CGI編程領(lǐng)域的風(fēng)頭就蓋過了它的前輩C語言。隨后,Python等著名的腳本語言也陸續(xù)加入了CGI編程語言的行列?! ?994年,Rasmus Lerdorf發(fā)明了專用于Web服務(wù)器端編程的PHP(Personal HomePage Tools)語言。與以往的CGI程序不同,PHP語言將HTML代碼和PHP指令合成為完整的服務(wù)器端動態(tài)頁面,Web應(yīng)用的開發(fā)者可以用一種更加簡便、快捷的方式實現(xiàn)動態(tài)Web功能?! ?996年,Microsoft借鑒PHP的思想,在其Web服務(wù)器IIS 3.0中引入了ASP技術(shù),ASP使用的腳本語言是我們熟悉的VBScript和JavaScript。借助Microsoft visualStudio等開發(fā)工具在市場上的成功,ASP迅速成為了Windows系統(tǒng)下Web服務(wù)器端的主流開發(fā)技術(shù)。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
企業(yè)級Web開發(fā)實戰(zhàn) PDF格式下載