出版时间:2012-1 出版社:机械工业出版社 作者:陆舟
Tag标签:无
前言
为什么写本书 在基于Java的Web开发领域,Apache旗下的Struts无疑具有非常重要的地位。从历史上看,Struts是出现较早的Web层解决方案,它借助Apache的影响力积累了大量的客户群体。在之后的岁月中,Struts吸收合并了另外一个开源社区的精品Webwork2成为Struts2,借助Webwork2先进的设计理念和优雅的实现及原先Struts社区积累的人气,打造成新一代的Web开发解决方案。 无疑,Struts2赢得了众多开发者的认同,也赢得了市场。目前,Struts2已经成为Web开发解决方案的一股重要力量,并拥有庞大的开发者社群。 对开发者来说,随着Web开发技术的不断革新,往往都需要一个优秀的框架作为程序开发的骨架,并在这个基础上完成Web层所赋予的任务。而Struts2,向我们提供了一个完整的Web层设计和开发的思路,为我们展示了许多Web层设计和开发的最佳实践。可以说,使用Struts2作为解决方案,已经成为绝大多数Web开发者的首选。 Struts2的源码中,不仅包含了优秀的Web层设计理念,而且蕴含了许多编程技巧和设计模式。通过本书,读者可以加深对Web开发职责的理解,从而提高自己的开发水平,拓展自己的技术视野。除此之外,本书所介绍的一些哲学观点,相信也能成为读者重新思考Web开发的重要借鉴。 本书面向的读者 1.学习 Java语言和Java EE技术的中高级读者 对这部分读者来说,Struts2和XWork的核心设计思想以及建立在此基础之上的源代码,是极佳的学习Java和Java EE技术的参考资料。 2.Struts2的研究和开发人员 对这部分读者来说,本书的内容能够帮助他们加深对Struts2和XWork设计原理的哲学理解,并成为他们定制和扩展Struts2框架的宝贵参考资料。 3.开源软件爱好者 在本书中,我们不仅提供了Struts2的学习方法,还向大家介绍了一整套完整的开源软件的学习方法,可以帮助这部分读者提高使用开源软件的效率和质量。 4.平台开发人员和架构师 Struts2蕴含的深刻的软件设计理念,可以提高这部分读者对软件架构的认识和设计能力。
内容概要
本书由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。
本书以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2的技术内幕提供了大量真知灼见。同样重要的是,本书还深入挖掘并分析了Struts2源代码实现中蕴含的大量值得称道的编程技巧和设计模式,这对开发者从Struts2的设计原理上去掌握和悟透Web层开发的要点和本质提供了绝佳的指导。
本书主要分为3大部分,内容安排具有极强的逻辑推理性,章和章之间互相呼应且互为印证。知识准备篇首先介绍了获取、阅读和调试Struts2源代码的方法,以及Struts2源代码的组织形式;然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和HTTP请求处理主线进行了深入的剖析,然后对Struts2的扩展机制进行了解读和抽象。
作者简介
陆舟(downpour),资深Java技术专家,擅长企业级Java应用开发和Java
Web应用开发,对Struts、Spring和Seam等开源Java框架有十分深入的研究,积累了丰富的经验。在Java和Web开发社区非常活跃,撰写了大量与Java
EE相关的技术文章,其著名的“忘记李刚,一步一步跟我学Struts2”系列技术文章广受好评,在ITeye等技术社区留下了深远的影响。此外,他还是开源技术的积极倡导者和推动者,参与过Spring中文文档重要章节的翻译,为众多开源框架在国内的普及和发展做出了很大贡献。
书籍目录
前言
第一部分 知识准备篇
第1章 厉兵秣马——开发环境准备
1.1 准备源代码阅读环境
1.1.1 安装与配置JDK
1.1.2 安装Eclipse与源码调试
1.1.3 安装与配置Web服务器
1.1.4 在Eclipse中使用Jetty搭建Web开发环境
1.2 获取Struts2
1.2.1 Struts2的相关资源下载
1.2.2 Struts2项目的目录组织结构
1.3 Struts2源码的初步研究
1.3.1 源码的组织形式
1.3.2 调试Struts2源码
1.4 小结
第2章 固本清源——Web开发浅谈
2.1 面向对象浅谈
2.1.1 对象构成模型
2.1.2 对象关系模型
2.1.3 面向对象编程的基本观点
2.2 框架的本质
2.3 最佳实践
2.4 Web开发的基本模式
2.4.1 分层开发模式
2.4.2 MVC模式
2.5 表示层的困惑
2.6 如何学习开源框架
2.7 小结
第3章 提纲挈领——Struts2概览
3.1 Struts2的来世今生
3.2 Struts2面面观
3.2.1 Struts2的运行环境
3.2.2 Struts2的应用场景
3.2.3 Struts2的核心技术
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 小结
第二部分 核心技术篇
第4章 源头活水——Struts2中的设计模式
4.1 ThreadLocal模式
4.1.1 线程安全问题的由来
4.1.2 ThreadLocal模式的实现机理
4.1.3 ThreadLocal模式的应用场景
4.1.4 ThreadLocal模式的核心元素
4.2 装饰(Decorator)模式
4.2.1 装饰模式的定义
4.2.2 装饰模式的构成要素
4.2.3 装饰模式的应用案例
4.3 策略(Strategry)模式
4.3.1 策略模式的定义
4.3.2 策略模式的应用场景
4.3.3 策略模式的深入思考
4.4 构造(Builder)模式
4.4.1 构造模式的核心要素
4.4.2 构造模式的应用场景
4.4.3 对象构造步骤
4.5 责任链(Chain Of Responsibility)模式
4.5.1 责任链模式的定义
4.5.2 责任链模式的逻辑意义
4.6 小结
第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容器的存储结构
5.3.2 XWork容器的实现机理
5.4 统一的容器操作接口——ObjectFactory
5.5 小结
第6章 灵丹妙药——OGNL,数据流转的催化剂
6.1 架起数据沟通的桥梁——表达式引擎
6.1.1 数据流转的困境
6.1.2 数据访问的困境
6.1.3 表达式引擎
6.2 强大的OGNL
6.2.1 深入OGNL的API
6.2.2 OGNL三要素
6.2.3 OGNL的基本操作
6.2.4 深入this指针
6.2.5 有关#符号的三种用途
6.3 深入OGNL内部
6.3.1 深入OgnlContext
6.3.2 深入OGNL的计算规则
6.3.3 深入OGNL的扩展方式
6.4 小结
第7章 别具匠心——XWork设计原理
7.1 请求-响应的哲学
7.1.1 请求-响应的基本概念
7.1.2 请求-响应的实现模式
7.1.3 分歧和职责
7.2 数据流和控制流
7.2.1 再谈MVC
7.2.2 数据载体的战争
7.2.3 控制流的细节
7.3 XWork概览
7.3.1 XWork的宏观视图
7.3.2 XWork的微观视图
7.4 小结
第8章 庖丁解牛——XWork元素详解
8.1 深入XWork宏观视图
8.1.1 数据流体系
8.1.2 控制流体系
8.2 数据流体系——相互依存
8.2.1 ActionContext——一个平行世界
8.2.2 ValueStack——对OGNL的扩展
8.2.3 深入ValueStack的实现
8.2.4 形影不离、相互依存的Actioncontext与ValueStack
8.3 控制流体系——有条不紊
8.3.1 Action——革命性突破
8.3.2 Interceptor——腾飞的翅膀
8.3.3 ActionInvocation——核心调度
8.3.4 ActionProxy——执行窗口
8.4 交互体系——水乳交融
8.4.1 数据环境的生命周期
8.4.2 三军会师之地
8.4.3 Action交互体系
8.5 小结
第三部分 运行主线篇
第9章 包罗万象——Struts2初始化主线
9.1 配置元素与初始化主线
9.1.1 从入口程序开始
9.1.2 初始化主线的核心驱动力
9.1.3 初始化主线的构成元素
9.2 核心分发器——Dispatcher
9.2.1 核心分发器的核心驱动作用
9.2.2 核心分发器的数据结构
9.3 配置元素的加载器(Provider)
9.3.1 配置元素加载器的作用
9.3.2 容器加载器——ContainerProvider
9.3.3 事件映射加载器——PackageProvider
9.4 配置元素的构造器(Builder)
9.4.1 容器构造器——ContainerBuilder
9.4.2 事件映射构造器——PackageConfig.Builder
9.5 配置元素的管理类
9.5.1 配置管理元素——Configuration
9.5.2 配置操作接口——ConfigurationManager
9.6 Struts2初始化主线详解
9.6.1 核心分发器的初始化
9.6.2 容器的初始化
9.7 小结
第10章 井然有序——与Http请求的战斗
10.1 制定作战计划
10.1.1 战斗资源
10.1.2 战斗进程
10.2 第一战场——Http请求的预处理阶段
10.2.1 三探入口程序
10.2.2 Http请求预处理类——PrepareOperations
10.2.3 Http请求的执行类——ExecuteOperations
10.3 第二战场——XWork处理阶段
10.3.1 执行控制权的移交
10.3.2 ActionInvocation调度的再分析
10.4 小结
第11章 展翅高飞——让视图放开手脚
11.1 视图(View)概述
11.1.1 视图表现技术
11.1.2 视图的本质
11.1.3 视图的职责
11.2 深入Result机制
11.2.1 Result的不同视角
11.2.2 Result职责分析
11.3 标签库,永恒的争论话题
11.3.1 标签库产生的初衷
11.3.2 标签库,毒药还是解药
11.3.3 标签库的发展趋势
11.3.4 标签的分类
11.4 数据访问的哲学
11.4.1 不要问我从哪里来
11.4.2 不要问我长什么样
11.5 小结
第12章 三头六臂——Struts2的扩展机制
12.1 程序扩展机制的深入思考
12.1.1 插件模式的基本概念
12.1.2 常见的插件模式
12.1.3 插件模式的利弊分析
12.2 Struts2的插件模式
12.2.1 深入Struts2插件
12.2.2 Struts2插件分类
12.2.3 Struts2的插件加载机制
12.3 小结
后记
章节摘录
版权页:插图:
媒体关注与评论
Struts2是一个高度成熟的Web开发框架,无论是稳定性还是可靠性都经过了市场的经验,几乎已成为Web开发领域的事实标准。Struts2框架本身的使用并不难,难的是通过理解它的实现原理来更好地指导基于框架的Web应用开发。本书以Struts2的源代码为依托,以分析它的架构设计与实现原理为手段,深刻揭示了Struts2框架背后的设计哲学和Web层的设计理念思想。不仅能从宏观和微观上帮助读者透彻认识Struts2框架的实现原理和实现细节,而且能更好地利用Struts2进行Web应用开发。强烈推荐! ——51CTO(中国领先的IT技术社区)目前主流的Web开发框架是Struts2和SpringMVC,相比较而言,我个人比较偏爱Struts2。基于Webwork内核的Struts2最早是由天才程序员Richard Oberg开发的,Richard也是JBoss的首任架构师,AOP领域的开拓者之一。Struts2的核心框架Xwork本身是一个非常精致小巧的IoC容器,其AOP的实现方式也有众多精巧之处值得细细品味。本书作者陆舟是ITeye(原JavaEye)的资深会员之一,在Java Web开发版块非常活跃,是我所知道的国内对Struts2掌握程度非常深入的几个人之一。尤为难得的是,他写技术文章的逻辑性极强,对Struts2的整个架构和体系的介绍可谓有条不紊,滴水不漏。我个人特别喜欢本书对XWork框架和OGNL表达式语言浓墨重彩的剖析,因为XWork和OGNL是Struts2最为精华的部分,也是很多人掌握不好的地方。对于希望全面和深入掌握Struts2的朋友,我强烈推荐这本书。 ——范凯(Robbin) ITEye创始人/CSDN产品总监Spring、Struts和Hibernate这三大框架是从事企业级Java应用开发的程序员必须掌握的。一名合格的Java程序员要能够掌握框架的功能、配置与使用,优秀的Java程序员能要够理解框架的设计思想和实现原理。本书通过源代码深入分析了Struts2框架的实现原理,不仅能让读者知其然,还能让读者知其所以然,是Java程序员从合格走向优秀的一本不可多得的参考书。 ——周志明(IcyFenix) 资深Java技术专家/畅销书《深入理解Java虚拟机:JVM高级特性与最佳实践》作者
编辑推荐
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》编辑推荐:透过源代码对Struts2的架构设计、实现原理和设计哲学进行了全面而透彻的剖析,从Struts2的源代码中提炼出优秀Web层的设计理念和最佳实践,深入分析源代码,中蕴含的大量编程技巧和设计模式。自从2005年Apache宣布将原Strutsl社区与Webwork社区进行整合并着力打造新一代的MVC框架Struts2开始,Struts2就凭借来自于Webwork的独特技术优势和Apache强大的社区力量迅速成为整个Web开发领域最流行的开发框架。Struts2及其核心依赖XWork的设计思想独树一帜,提供了一系列具有革命性意义的Web开发解决方案。XWork小巧的容器结构、对于命令模式独特的实现机制、插件扩展模型的设计以及Struts2对于Web请求的处理方式,对所有的Web开发都有特别的指导意义。在《Struts2技术内幕:深入解析Struts2架构设计与实现原理》中,我们将Struts2的源码分析作为贯穿整《Struts2技术内幕:深入解析Struts2架构设计与实现原理》的逻辑主线,其主要目的不仅仅是为了向读者展示Struts2的设计原理和设计思想,更为重要的是希望通过Struts2的源码总结出Web开发中的最佳实践。因此,《Struts2技术内幕:深入解析Struts2架构设计与实现原理》使用了大量的篇幅为读者撇清众多Web开发中极易混淆的概念,并以源码为基础将这些概念与Web开发的方法论结合在一起。相信对于想深入了解Struts2实现内幕和Web开发细节的广大程序员有极佳的指导和借鉴作用。
图书封面
图书标签Tags
无
评论、评分、阅读与下载