出版時間:2012-1 出版社:機(jī)械工業(yè)出版社 作者:陸舟
Tag標(biāo)簽:無
前言
為什么寫本書 在基于Java的Web開發(fā)領(lǐng)域,Apache旗下的Struts無疑具有非常重要的地位。從歷史上看,Struts是出現(xiàn)較早的Web層解決方案,它借助Apache的影響力積累了大量的客戶群體。在之后的歲月中,Struts吸收合并了另外一個開源社區(qū)的精品Webwork2成為Struts2,借助Webwork2先進(jìn)的設(shè)計理念和優(yōu)雅的實現(xiàn)及原先Struts社區(qū)積累的人氣,打造成新一代的Web開發(fā)解決方案?! o疑,Struts2贏得了眾多開發(fā)者的認(rèn)同,也贏得了市場。目前,Struts2已經(jīng)成為Web開發(fā)解決方案的一股重要力量,并擁有龐大的開發(fā)者社群?! ﹂_發(fā)者來說,隨著Web開發(fā)技術(shù)的不斷革新,往往都需要一個優(yōu)秀的框架作為程序開發(fā)的骨架,并在這個基礎(chǔ)上完成Web層所賦予的任務(wù)。而Struts2,向我們提供了一個完整的Web層設(shè)計和開發(fā)的思路,為我們展示了許多Web層設(shè)計和開發(fā)的最佳實踐??梢哉f,使用Struts2作為解決方案,已經(jīng)成為絕大多數(shù)Web開發(fā)者的首選。 Struts2的源碼中,不僅包含了優(yōu)秀的Web層設(shè)計理念,而且蘊(yùn)含了許多編程技巧和設(shè)計模式。通過本書,讀者可以加深對Web開發(fā)職責(zé)的理解,從而提高自己的開發(fā)水平,拓展自己的技術(shù)視野。除此之外,本書所介紹的一些哲學(xué)觀點(diǎn),相信也能成為讀者重新思考Web開發(fā)的重要借鑒?! ”緯嫦虻淖x者 1.學(xué)習(xí) Java語言和Java EE技術(shù)的中高級讀者 對這部分讀者來說,Struts2和XWork的核心設(shè)計思想以及建立在此基礎(chǔ)之上的源代碼,是極佳的學(xué)習(xí)Java和Java EE技術(shù)的參考資料?! ?.Struts2的研究和開發(fā)人員 對這部分讀者來說,本書的內(nèi)容能夠幫助他們加深對Struts2和XWork設(shè)計原理的哲學(xué)理解,并成為他們定制和擴(kuò)展Struts2框架的寶貴參考資料。 3.開源軟件愛好者 在本書中,我們不僅提供了Struts2的學(xué)習(xí)方法,還向大家介紹了一整套完整的開源軟件的學(xué)習(xí)方法,可以幫助這部分讀者提高使用開源軟件的效率和質(zhì)量?! ?.平臺開發(fā)人員和架構(gòu)師 Struts2蘊(yùn)含的深刻的軟件設(shè)計理念,可以提高這部分讀者對軟件架構(gòu)的認(rèn)識和設(shè)計能力。
內(nèi)容概要
本書由國內(nèi)極為資深的Struts2技術(shù)專家(網(wǎng)名:downpour)親自執(zhí)筆,iteye兼CSDN產(chǎn)品總監(jiān)范凱(網(wǎng)名:robbin)以及51CTO等技術(shù)社區(qū)鼎力推薦。
本書以Struts2的源代碼為依托,通過對Struts2的源代碼的全面剖析深入探討了Struts2的架構(gòu)設(shè)計、實現(xiàn)原理、設(shè)計理念與設(shè)計哲學(xué),對從宏觀上和微觀上去了解Struts2的技術(shù)內(nèi)幕提供了大量真知灼見。同樣重要的是,本書還深入挖掘并分析了Struts2源代碼實現(xiàn)中蘊(yùn)含的大量值得稱道的編程技巧和設(shè)計模式,這對開發(fā)者從Struts2的設(shè)計原理上去掌握和悟透Web層開發(fā)的要點(diǎn)和本質(zhì)提供了絕佳的指導(dǎo)。
本書主要分為3大部分,內(nèi)容安排具有極強(qiáng)的邏輯推理性,章和章之間互相呼應(yīng)且互為印證。知識準(zhǔn)備篇首先介紹了獲取、閱讀和調(diào)試Struts2源代碼的方法,以及Struts2源代碼的組織形式;然后厘清了Web開發(fā)中極易混淆的一些重要概念,以及Struts2的核心技術(shù)、宏觀視圖、微觀元素、配置元素等,提綱挈領(lǐng)地對Struts2進(jìn)行了多角度的講解。核心技術(shù)篇首先分析了Struts2中多種具有代表性的設(shè)計模式,然后對Struts2中的精華——OGNL表達(dá)式引擎和XWork框架的原理及機(jī)制進(jìn)行了全面深入的分析和講解。運(yùn)行主線篇首先對Struts2的兩大運(yùn)行主線——初始化主線和HTTP請求處理主線進(jìn)行了深入的剖析,然后對Struts2的擴(kuò)展機(jī)制進(jìn)行了解讀和抽象。
作者簡介
陸舟(downpour),資深Java技術(shù)專家,擅長企業(yè)級Java應(yīng)用開發(fā)和Java
Web應(yīng)用開發(fā),對Struts、Spring和Seam等開源Java框架有十分深入的研究,積累了豐富的經(jīng)驗。在Java和Web開發(fā)社區(qū)非?;钴S,撰寫了大量與Java
EE相關(guān)的技術(shù)文章,其著名的“忘記李剛,一步一步跟我學(xué)Struts2”系列技術(shù)文章廣受好評,在ITeye等技術(shù)社區(qū)留下了深遠(yuǎn)的影響。此外,他還是開源技術(shù)的積極倡導(dǎo)者和推動者,參與過Spring中文文檔重要章節(jié)的翻譯,為眾多開源框架在國內(nèi)的普及和發(fā)展做出了很大貢獻(xiàn)。
書籍目錄
前言
第一部分 知識準(zhǔn)備篇
第1章 厲兵秣馬——開發(fā)環(huán)境準(zhǔn)備
1.1 準(zhǔn)備源代碼閱讀環(huán)境
1.1.1 安裝與配置JDK
1.1.2 安裝Eclipse與源碼調(diào)試
1.1.3 安裝與配置Web服務(wù)器
1.1.4 在Eclipse中使用Jetty搭建Web開發(fā)環(huán)境
1.2 獲取Struts2
1.2.1 Struts2的相關(guān)資源下載
1.2.2 Struts2項目的目錄組織結(jié)構(gòu)
1.3 Struts2源碼的初步研究
1.3.1 源碼的組織形式
1.3.2 調(diào)試Struts2源碼
1.4 小結(jié)
第2章 固本清源——Web開發(fā)淺談
2.1 面向?qū)ο鬁\談
2.1.1 對象構(gòu)成模型
2.1.2 對象關(guān)系模型
2.1.3 面向?qū)ο缶幊痰幕居^點(diǎn)
2.2 框架的本質(zhì)
2.3 最佳實踐
2.4 Web開發(fā)的基本模式
2.4.1 分層開發(fā)模式
2.4.2 MVC模式
2.5 表示層的困惑
2.6 如何學(xué)習(xí)開源框架
2.7 小結(jié)
第3章 提綱挈領(lǐng)——Struts2概覽
3.1 Struts2的來世今生
3.2 Struts2面面觀
3.2.1 Struts2的運(yùn)行環(huán)境
3.2.2 Struts2的應(yīng)用場景
3.2.3 Struts2的核心技術(shù)
3.3 多視角透析Struts2
3.3.1 透視鏡——Struts2的宏觀視圖
3.3.2 顯微鏡——Struts2的微觀元素
3.4 Struts2的配置元素
3.4.1 Struts2配置詳解
3.4.2 Struts2配置元素定義
3.4.3 Struts2配置元素的分類
3.5 小結(jié)
第二部分 核心技術(shù)篇
第4章 源頭活水——Struts2中的設(shè)計模式
4.1 ThreadLocal模式
4.1.1 線程安全問題的由來
4.1.2 ThreadLocal模式的實現(xiàn)機(jī)理
4.1.3 ThreadLocal模式的應(yīng)用場景
4.1.4 ThreadLocal模式的核心元素
4.2 裝飾(Decorator)模式
4.2.1 裝飾模式的定義
4.2.2 裝飾模式的構(gòu)成要素
4.2.3 裝飾模式的應(yīng)用案例
4.3 策略(Strategry)模式
4.3.1 策略模式的定義
4.3.2 策略模式的應(yīng)用場景
4.3.3 策略模式的深入思考
4.4 構(gòu)造(Builder)模式
4.4.1 構(gòu)造模式的核心要素
4.4.2 構(gòu)造模式的應(yīng)用場景
4.4.3 對象構(gòu)造步驟
4.5 責(zé)任鏈(Chain Of Responsibility)模式
4.5.1 責(zé)任鏈模式的定義
4.5.2 責(zé)任鏈模式的邏輯意義
4.6 小結(jié)
第5章 生命之源——XWork中的容器
5.1 容器,對象生命周期管理的基石
5.1.1 對象的生命周期管理
5.1.2 容器(Container)的引入
5.1.3 容器(Container),不是容器(Collection)
5.2 XWork容器概覽
5.2.1 XWork容器的定義
5.2.2 XWork容器的管轄范圍
5.2.3 XWork容器操作詳解
5.3 深入淺出XWork容器
5.3.1 XWork容器的存儲結(jié)構(gòu)
5.3.2 XWork容器的實現(xiàn)機(jī)理
5.4 統(tǒng)一的容器操作接口——ObjectFactory
5.5 小結(jié)
第6章 靈丹妙藥——OGNL,數(shù)據(jù)流轉(zhuǎn)的催化劑
6.1 架起數(shù)據(jù)溝通的橋梁——表達(dá)式引擎
6.1.1 數(shù)據(jù)流轉(zhuǎn)的困境
6.1.2 數(shù)據(jù)訪問的困境
6.1.3 表達(dá)式引擎
6.2 強(qiáng)大的OGNL
6.2.1 深入OGNL的API
6.2.2 OGNL三要素
6.2.3 OGNL的基本操作
6.2.4 深入this指針
6.2.5 有關(guān)#符號的三種用途
6.3 深入OGNL內(nèi)部
6.3.1 深入OgnlContext
6.3.2 深入OGNL的計算規(guī)則
6.3.3 深入OGNL的擴(kuò)展方式
6.4 小結(jié)
第7章 別具匠心——XWork設(shè)計原理
7.1 請求-響應(yīng)的哲學(xué)
7.1.1 請求-響應(yīng)的基本概念
7.1.2 請求-響應(yīng)的實現(xiàn)模式
7.1.3 分歧和職責(zé)
7.2 數(shù)據(jù)流和控制流
7.2.1 再談MVC
7.2.2 數(shù)據(jù)載體的戰(zhàn)爭
7.2.3 控制流的細(xì)節(jié)
7.3 XWork概覽
7.3.1 XWork的宏觀視圖
7.3.2 XWork的微觀視圖
7.4 小結(jié)
第8章 庖丁解?!猉Work元素詳解
8.1 深入XWork宏觀視圖
8.1.1 數(shù)據(jù)流體系
8.1.2 控制流體系
8.2 數(shù)據(jù)流體系——相互依存
8.2.1 ActionContext——一個平行世界
8.2.2 ValueStack——對OGNL的擴(kuò)展
8.2.3 深入ValueStack的實現(xiàn)
8.2.4 形影不離、相互依存的Actioncontext與ValueStack
8.3 控制流體系——有條不紊
8.3.1 Action——革命性突破
8.3.2 Interceptor——騰飛的翅膀
8.3.3 ActionInvocation——核心調(diào)度
8.3.4 ActionProxy——執(zhí)行窗口
8.4 交互體系——水乳交融
8.4.1 數(shù)據(jù)環(huán)境的生命周期
8.4.2 三軍會師之地
8.4.3 Action交互體系
8.5 小結(jié)
第三部分 運(yùn)行主線篇
第9章 包羅萬象——Struts2初始化主線
9.1 配置元素與初始化主線
9.1.1 從入口程序開始
9.1.2 初始化主線的核心驅(qū)動力
9.1.3 初始化主線的構(gòu)成元素
9.2 核心分發(fā)器——Dispatcher
9.2.1 核心分發(fā)器的核心驅(qū)動作用
9.2.2 核心分發(fā)器的數(shù)據(jù)結(jié)構(gòu)
9.3 配置元素的加載器(Provider)
9.3.1 配置元素加載器的作用
9.3.2 容器加載器——ContainerProvider
9.3.3 事件映射加載器——PackageProvider
9.4 配置元素的構(gòu)造器(Builder)
9.4.1 容器構(gòu)造器——ContainerBuilder
9.4.2 事件映射構(gòu)造器——PackageConfig.Builder
9.5 配置元素的管理類
9.5.1 配置管理元素——Configuration
9.5.2 配置操作接口——ConfigurationManager
9.6 Struts2初始化主線詳解
9.6.1 核心分發(fā)器的初始化
9.6.2 容器的初始化
9.7 小結(jié)
第10章 井然有序——與Http請求的戰(zhàn)斗
10.1 制定作戰(zhàn)計劃
10.1.1 戰(zhàn)斗資源
10.1.2 戰(zhàn)斗進(jìn)程
10.2 第一戰(zhàn)場——Http請求的預(yù)處理階段
10.2.1 三探入口程序
10.2.2 Http請求預(yù)處理類——PrepareOperations
10.2.3 Http請求的執(zhí)行類——ExecuteOperations
10.3 第二戰(zhàn)場——XWork處理階段
10.3.1 執(zhí)行控制權(quán)的移交
10.3.2 ActionInvocation調(diào)度的再分析
10.4 小結(jié)
第11章 展翅高飛——讓視圖放開手腳
11.1 視圖(View)概述
11.1.1 視圖表現(xiàn)技術(shù)
11.1.2 視圖的本質(zhì)
11.1.3 視圖的職責(zé)
11.2 深入Result機(jī)制
11.2.1 Result的不同視角
11.2.2 Result職責(zé)分析
11.3 標(biāo)簽庫,永恒的爭論話題
11.3.1 標(biāo)簽庫產(chǎn)生的初衷
11.3.2 標(biāo)簽庫,毒藥還是解藥
11.3.3 標(biāo)簽庫的發(fā)展趨勢
11.3.4 標(biāo)簽的分類
11.4 數(shù)據(jù)訪問的哲學(xué)
11.4.1 不要問我從哪里來
11.4.2 不要問我長什么樣
11.5 小結(jié)
第12章 三頭六臂——Struts2的擴(kuò)展機(jī)制
12.1 程序擴(kuò)展機(jī)制的深入思考
12.1.1 插件模式的基本概念
12.1.2 常見的插件模式
12.1.3 插件模式的利弊分析
12.2 Struts2的插件模式
12.2.1 深入Struts2插件
12.2.2 Struts2插件分類
12.2.3 Struts2的插件加載機(jī)制
12.3 小結(jié)
后記
章節(jié)摘錄
版權(quán)頁:插圖:
媒體關(guān)注與評論
Struts2是一個高度成熟的Web開發(fā)框架,無論是穩(wěn)定性還是可靠性都經(jīng)過了市場的經(jīng)驗,幾乎已成為Web開發(fā)領(lǐng)域的事實標(biāo)準(zhǔn)。Struts2框架本身的使用并不難,難的是通過理解它的實現(xiàn)原理來更好地指導(dǎo)基于框架的Web應(yīng)用開發(fā)。本書以Struts2的源代碼為依托,以分析它的架構(gòu)設(shè)計與實現(xiàn)原理為手段,深刻揭示了Struts2框架背后的設(shè)計哲學(xué)和Web層的設(shè)計理念思想。不僅能從宏觀和微觀上幫助讀者透徹認(rèn)識Struts2框架的實現(xiàn)原理和實現(xiàn)細(xì)節(jié),而且能更好地利用Struts2進(jìn)行Web應(yīng)用開發(fā)。強(qiáng)烈推薦! ——51CTO(中國領(lǐng)先的IT技術(shù)社區(qū))目前主流的Web開發(fā)框架是Struts2和SpringMVC,相比較而言,我個人比較偏愛Struts2?;赪ebwork內(nèi)核的Struts2最早是由天才程序員Richard Oberg開發(fā)的,Richard也是JBoss的首任架構(gòu)師,AOP領(lǐng)域的開拓者之一。Struts2的核心框架Xwork本身是一個非常精致小巧的IoC容器,其AOP的實現(xiàn)方式也有眾多精巧之處值得細(xì)細(xì)品味。本書作者陸舟是ITeye(原JavaEye)的資深會員之一,在Java Web開發(fā)版塊非常活躍,是我所知道的國內(nèi)對Struts2掌握程度非常深入的幾個人之一。尤為難得的是,他寫技術(shù)文章的邏輯性極強(qiáng),對Struts2的整個架構(gòu)和體系的介紹可謂有條不紊,滴水不漏。我個人特別喜歡本書對XWork框架和OGNL表達(dá)式語言濃墨重彩的剖析,因為XWork和OGNL是Struts2最為精華的部分,也是很多人掌握不好的地方。對于希望全面和深入掌握Struts2的朋友,我強(qiáng)烈推薦這本書?! 秳P(Robbin) ITEye創(chuàng)始人/CSDN產(chǎn)品總監(jiān)Spring、Struts和Hibernate這三大框架是從事企業(yè)級Java應(yīng)用開發(fā)的程序員必須掌握的。一名合格的Java程序員要能夠掌握框架的功能、配置與使用,優(yōu)秀的Java程序員能要夠理解框架的設(shè)計思想和實現(xiàn)原理。本書通過源代碼深入分析了Struts2框架的實現(xiàn)原理,不僅能讓讀者知其然,還能讓讀者知其所以然,是Java程序員從合格走向優(yōu)秀的一本不可多得的參考書?! 苤久?IcyFenix) 資深Java技術(shù)專家/暢銷書《深入理解Java虛擬機(jī):JVM高級特性與最佳實踐》作者
編輯推薦
《Struts2技術(shù)內(nèi)幕:深入解析Struts2架構(gòu)設(shè)計與實現(xiàn)原理》編輯推薦:透過源代碼對Struts2的架構(gòu)設(shè)計、實現(xiàn)原理和設(shè)計哲學(xué)進(jìn)行了全面而透徹的剖析,從Struts2的源代碼中提煉出優(yōu)秀Web層的設(shè)計理念和最佳實踐,深入分析源代碼,中蘊(yùn)含的大量編程技巧和設(shè)計模式。自從2005年Apache宣布將原Strutsl社區(qū)與Webwork社區(qū)進(jìn)行整合并著力打造新一代的MVC框架Struts2開始,Struts2就憑借來自于Webwork的獨(dú)特技術(shù)優(yōu)勢和Apache強(qiáng)大的社區(qū)力量迅速成為整個Web開發(fā)領(lǐng)域最流行的開發(fā)框架。Struts2及其核心依賴XWork的設(shè)計思想獨(dú)樹一幟,提供了一系列具有革命性意義的Web開發(fā)解決方案。XWork小巧的容器結(jié)構(gòu)、對于命令模式獨(dú)特的實現(xiàn)機(jī)制、插件擴(kuò)展模型的設(shè)計以及Struts2對于Web請求的處理方式,對所有的Web開發(fā)都有特別的指導(dǎo)意義。在《Struts2技術(shù)內(nèi)幕:深入解析Struts2架構(gòu)設(shè)計與實現(xiàn)原理》中,我們將Struts2的源碼分析作為貫穿整《Struts2技術(shù)內(nèi)幕:深入解析Struts2架構(gòu)設(shè)計與實現(xiàn)原理》的邏輯主線,其主要目的不僅僅是為了向讀者展示Struts2的設(shè)計原理和設(shè)計思想,更為重要的是希望通過Struts2的源碼總結(jié)出Web開發(fā)中的最佳實踐。因此,《Struts2技術(shù)內(nèi)幕:深入解析Struts2架構(gòu)設(shè)計與實現(xiàn)原理》使用了大量的篇幅為讀者撇清眾多Web開發(fā)中極易混淆的概念,并以源碼為基礎(chǔ)將這些概念與Web開發(fā)的方法論結(jié)合在一起。相信對于想深入了解Struts2實現(xiàn)內(nèi)幕和Web開發(fā)細(xì)節(jié)的廣大程序員有極佳的指導(dǎo)和借鑒作用。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載