书刊介绍
《Struts2技术内幕:深入解析Struts架构设计与实现原理》内容简介
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2的技术内幕提供了大量真知灼见。同样重要的是,《Struts2技术内幕:深入解析Struts2架构设计与实现原理》还深入挖掘并分析了Struts2源代码实现中蕴含的大量值得称道的编程技巧和设计模式,这对开发者从Struts2的设计原理上去掌握和悟透Web层开发的要点和本质提供了绝佳的指导。
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》主要分为3大部分,内容安排具有极强的逻辑推理性,章和章之间互相呼应且互为印证。知识准备篇首先介绍了获取、阅读和调试Struts2源代码的方法,以及Struts2源代码的组织形式;然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和HTTP请求处理主线进行了深入的剖析,然后对Struts2的扩展机制进行了解读和抽象。
海报: 陆舟(downpour)资深Java技术专家,1擅长企业级Java应用开发和JavacWeb应用开发,1对Struts、Spring和Seam等开源Java框架有十分深入的研究,1积累了丰富的经验.a在Java和Web开发社区非常活跃,1撰写了大量与JavaEE相关的技术文章,1其著名的“忘记李刚,1一步一步跟我学Struts2”系列技术文章广受好评,1在ITeye等技术社区留下了深远的影响.a此外,1他还是开源技术的积极倡导者和推动者,1参与过Spring中文文档重要章节的翻译,1为众多开源框架在国内的普及和发展做出了很大贡献.作品目录
Struts2技术内幕:深入解析Struts架构设计与实现原理
前言
为什么写本书
本书面向的读者
本书的主要内容
致谢
第一部分
知识准备篇
第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、策略(Strategy)模式
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、小结
后记