首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

Spring Web Flow权威指南

2010-03-28 
基本信息·出版社:人民邮电出版社 ·页码:266 页 ·出版日期:2009年12月 ·ISBN:7115215936/9787115215932 ·条形码:9787115215932 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
Spring Web Flow权威指南 去商家看看
Spring Web Flow权威指南 去商家看看

 Spring Web Flow权威指南


基本信息·出版社:人民邮电出版社
·页码:266 页
·出版日期:2009年12月
·ISBN:7115215936/9787115215932
·条形码:9787115215932
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:图灵程序设计丛书·Java系列
·外文书名:The Definitive Guide to Spring Web Flow

内容简介 《Spring Web Flow权威指南》介绍了Spring Web Flow的构建系统Spring Jumpstart、Spring Web Flow架构和基础知识,并结合示例讲述了Spring Web Flow的高级概念、流执行管理和驱动,同时说明了如何测试流。
《Spring Web Flow权威指南》适合各层次Java Web开发人员阅读和参考。
作者简介 Erwin Vervaet,Spring Web Flow项目的创始人,比利时资深软件工程师,非常热衷于使用新的IT概念和工具。现为IT顾问。经营着自己的软件咨询公司Ervacon(http://www ervacon.com)。
编辑推荐 《Spring Web Flow权威指南》:Spring Web Flow创始人著作、体验全新的Web用户界面开发方式、深入剖析开源框架的设计与实现。
Spring Web Flow是著名的Spring框架的子项目。它解决了困扰Web应用程序开发人员的3个主要问题.即用户界面导航的控制、状态管理和模块化,极大地提高了生产效率,尤其适合需要复杂用户交互界面的Web应用程序。此外,它还借鉴了UML状态图思想的流定义方式,使得Web流的开发更加自然。
书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了Spring Web Flow的设计思想和实现方式。更能让读者掌握其核心本质。此外,书中还清楚地讲述了SpringWeb Flow 1和Spring Web Flow 2在设计和使用上的差异。
《Spring Web Flow权威指南》适合各层次Java Web开发人员阅读和使用。
目录
第1章 初识Spring Web Flow 1
1.1 自由浏览 3
1.2 可控导航 4
1.2.1 导航的控制 5
1.2.2 状态管理 8
1.2.3 模块化问题 10
1.3 传统解决方案 11
1.4 Spring Web Flow 14
1.5 小结 16

第2章 入门 17
2.1 下载Spring Web Flow 17
2.2 运行时需求 17
2.3 构建系统的集成 18
2.3.1 手工集成 18
2.3.2 与Ivy的集成 20
2.3.3 与Maven的集成 21
2.3.4 Spring Jumpstart 21
2.4 Hello World 24
2.5 开发环境中的Spring Web Flow 28
2.5.1 安装IDE 28
2.5.2 Eclipse中的“Hello World” 30
2.5.3 使用Spring IDE 32
2.6 给Hello World增添些趣味 33
2.7 小结 36

第3章 Spring Web Flow架构 37
3.1 语言 37
3.2 架构层 39
3.2.1 执行核心 40
3.2.2 执行引擎 42
3.2.3 执行者 43
3.2.4 测试支持 43
3.2.5 系统配置 44
3.3 小结 44

第4章 Spring Web Flow基础 45
4.1 设计流 45
4.1.1 UML状态图 46
4.1.2 第一个流定义 48
4.2 流生成器 50
4.2.1 XML流生成器 52
4.2.2 Java流生成器 53
4.2.3 选择合适的流生成器 55
4.3 定义流 56
4.3.1 流 56
4.3.2 状态 57
4.3.3 转移 60
4.3.4 流定义结构 63
4.4 流执行 63
4.4.1 流会话 65
4.4.2 流执行环境 66
4.4.3 请求环境 67
4.5 实现动作 72
4.5.1 AbstractAction 73
4.5.2 MultiAction 74
4.5.3 动作部署 76
4.6 基本状态类型 79
4.6.1 视图状态 80
4.6.2 动作状态 84
4.6.3 结束状态 85
4.7 流定义注册表 86
4.7.1 XML流定义注册表 88
4.7.2 Java流定义注册表 91
4.7.3 合并流定义注册表 91
4.8 小结 92

第5章 高级Web流概念 94
5.1 OGNL 94
5.1.1 通过示例学习OGNL 95
5.1.2 OGNL实战 98
5.2 转换服务 111
5.3 注解流定义工件 114
5.4 处理异常 115
5.5 视图选择 119
5.5.1 空字符串 120
5.5.2 viewName 120
5.5.3 redirect:viewName 120
5.5.4 externalRedirect:url 121
5.5.5 flowRedirect:flowId?input1=value&…&inputN=valueN 121
5.5.6 bean:id 122
5.5.7 自定义视图选择器 122
5.6 数据绑定和验证 123
5.7 子流 130
5.7.1 内联流 132
5.7.2 重温流会话 132
5.7.3 声明输入/输出契约 133
5.7.4 映射输入输出参数 136
5.7.5 增强“输入支付款”流 138
5.8 流的开始动作和结束动作 140
5.9 完整的“输入支付款”流定义 141
5.10 小结 144

第6章 流执行管理 145
6.1 流执行存储库介绍 145
6.2 流执行者 147
6.2.1 启动流执行 148
6.2.2 恢复流执行 149
6.2.3 刷新流执行 150
6.2.4 请求处理 151
6.2.5 配置流执行者 152
6.3 流执行存储库 155
6.3.1 对话管理 157
6.3.2 简单存储库 159
6.3.3 单键存储库 161
6.3.4 Continuation存储库 162
6.3.5 客户Continuation存储库 165
6.3.6 选择存储库 167
6.4 流执行监听器 167
6.4.1 监听器调用示例 170
6.4.2 监听器配置 173
6.5 小结 175

第7章 驱动流执行 176
7.1 流执行者集成 177
7.2 Spring Web Flow视图开发 178
7.2.1 模型数据 178
7.2.2 构建请求 180
7.3 宿主框架集成 184
7.3.1 Spring Web MVC 185
7.3.2 Spring Portlet MVC 186
7.3.3 Struts 187
7.3.4 JSF 190
7.4 小结 199

第8章 Spring Web Flow的测试 200
8.1 单元测试 200
8.1.1 MockRequestContext 201
8.1.2 MockRequestControlContext 201
8.1.3 MockExternalContext 201
8.1.4 MockParameterMap 201
8.1.5 MockFlowExecutionContext 201
8.1.6 MockFlowSession 201
8.1.7 MockFlowServiceLocator 201
8.1.8 使用Mock对象测试 202
8.2 流执行测试 203
8.2.1 测试Java流定义 203
8.2.2 测试XML流定义 204
8.2.3 测试“输入支付款”流 206
8.2.4 使用流执行监听器 209
8.3 集成测试 211
8.4 小结 213

第9章 示例应用程序 214
9.1 功能需求 214
9.2 下载和构建 215
9.3 领域模型 217
9.4 应用程序搭建 219
9.5 表现层 220
9.5.1 Spring Web MVC搭建 221
9.5.2 实现“输入支付款”用例 224
9.5.3 国际化 227
9.5.4 异常处理 228
9.5.5 页面布局 228
9.6 小结 229

第10章 真实用例 230
10.1 访问宿主环境 230
10.2 流定义的参数化 232
10.3 使用监听器 234
10.3.1 安全化流 234
10.3.2 全局后退转移 235
10.3.3 面包屑 237
10.4 负载测试和压力测试 238
10.5 Spring Web Flow和AJAX 240
10.6 小结 241

第11章 扩展Spring Web Flow 242
11.1 通用扩展点 242
11.1.1 使用Bean引用 242
11.1.2 扩展流定义结构 244
11.1.3 定制流生成器 248
11.2 数据库支持的对话管理器 249
11.3 流Servlet 255
11.4 构建Spring Web Flow 258
11.5 小结 260

后记 261
参考文献 265
……
序言 在企业级应用开发中,Java技术及其相关平台一直占据着巨大的市场份额。最近的权威市场调查表明,Java语言持续位列各种编程语言之榜首。而这其中,大多数又都是基于Web的应用程序。在活跃的Java开源社区,各种各样的开源框架不断推陈出新,使得各种新的应用需求得以实现,并推进企业应用开发技术的成熟和完善。
如果说前几年J2EE平台是企业级应用开发的重量级选择,那么这些年的后起之秀Spring无疑是轻量级产品的首选。重量与轻量之间,你到底会选择谁?在Spring诞生之前,人们一想到企业级应用开发,就会认为这样的应用开发只有选择重量级的平台才可靠,他们会认为诸如Struts这样的框架只适合于简单的web应用程序,而无法承担企业应用之重。不过,随J2EE技术而来的问题则是高额的开发费用和维护费用。现在我们更有理由相信我们需要减负,需要更具灵活性的开发过程、更简单的测试过程以及更前沿的技术,因此,所谓的敏捷开发和轻量级产品越来越引起人们的注意。
文摘 插图:


如果用户把对话中间的某一页面加入收藏夹将会发生什么?我们无法阻止将页面加入到收藏夹中,但是用户使用收藏的页面回到对话中间时,应用程序该如何响应呢?多数情况下,答案是:应用程序生成一个错误,通知用户对话已经过期或者结束了,可能的话重新开始一个对话。对话或者任务的进入点也许是可收藏的,但是收藏中间的页面通常情况下是不可行的。在其他情况下,将保持跟踪对话一段时间,这样用户在稍后可以重新继续该对话。
应用程序该如何处理刷新请求以及在浏览历史中后退或前进的请求?理想状况是,刷新请求是幂等的,反复使用不会产生其他的副作用,并且用户可以随意刷新页面。处理后退和前进则比较困难。
为了比较结果或者权衡做出何种选择,用户通常会对同一应用程序打开多个浏览器窗口,当然这种情形不太普遍。那么,对于这种情形,Web立用程序又该如何处理呢?一定要谨慎对待这种情况,避免互相干扰或者重复提交。
应用程序可以忽略这些问题,而仅在启动需要可控导航的过程时,提示用户不要使用浏览器的后退按钮。显然,这种处理方法不仅很幼稚而且相当不友好,由于用户在因特网上冲浪时,已经习惯了频繁单击后退按钮或刷新按钮。当发生错误的时候,web应用程序应当有能力以稳定而且可预知的方式来处理它。
对像内部网络中的应用程序而言,其用户群都是大家所熟悉的而且能有效地管理好,有时候可以避免这些问题。通过部署专有的或者自定义的Web浏览器,开发者可以完全禁用所有的导航辅助功能。而对于运行在因特网上的Web立用程序来说,这么做显然不可行,因为用户使用的浏览器各不相同。有些因特网Web应用程序通过在一个特殊的窗口中运行程序来模拟类似效果,这些特殊的窗口不包含按钮栏或者其他的装饰物。这能起到一定的作用,但是很容易被破坏,用户可以按键盘上的后退键或者鼠标的特定键后退到浏览历史的其他页面。
不完整的导航控制和用户无意中使用了浏览器的导航辅助功能还能导致wleb应用程序中的另一个大问题:危险的二次提交。
后记 我希望本书已经描绘出了Spring Web Flow清晰而详细的画面,而且能让你感觉到使用它是件多么令人兴奋的事情。学习一门新框架的最佳方式是去理解该框架所要解决的问题是什么。按照这种思维模式,我在本书开始首先解释了Spring Web Flow在实现其核心目标过程中所面临的挑战。
控制web应用程序中的用户导航。
管理与对话(用户在wleb应用程序中可能遇到的多步交互)相关的状态。
允许优雅的模块化和复用,从而能够实现从自容纳、粗粒度的模块中构建复杂的具有良好定义的输入输出契约的应用程序。
在面向自由浏览的无状态的万维网环境中,实现这些目标是一件非常困难的事情。Spl5rtgWeb Flow能够处理很多相关的问题,例如二次提交问题,并自动应用Web开发的最佳实践,如POST-REDIRECT-GET模式和同步令牌模式等。
Spring Web Flow是一个专注的工具,它作为Web MVC框架中的控制器组件,其目标定位是需要控制导航的用例。它能集成到多数框架中,例如 Spring Web MVC和JavaServer Faces,因而使用它的额外开销是非常低的。Spring Web Flow提倡基于POJO的编程模型,其自身就是一个轻量的框架,非常适合需要快速反馈周期和优秀测试支持的敏捷开发环境。
UML状态图能自然地翻译成用Spring Web Flow的流定义语言表达的Web流,因此,理解和学习流定义语言非常简单,而且它也架起了分析、设计和实现之间的桥梁。就运行时流执行管理而言,Spring Web Flow做了全部的繁重工作。你需要关心的就只是配置。
除了深入地讲解了Spring Web Flow的流定义语言和流执行管理系统,我也努力给出了Spring Web Flow架构的概况,让你能在更宽的环境下理解Spring Web Flow的概念和类。
和Spring框架一样,Spring Web Flow也有灵活的可扩展的设计。能够插入自定义的实现到许多的扩展点中使得该框架适合大多数的环境,并满足各种奇特的需求。
热点排行