《Seam Framework Web开发宝典》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Michael Juntao Yuan,(美)Jacob Orshalick,(美)Thomas Heute著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302225256
  • 页数:400 页
图书介绍:本书包括使用Seam的对话模型、事务管理以及其他改进功能;增强安全、执行端到端验证以及提供自定义异常处理页面;利用Seam 2.x中新的多层缓存机制来开发高度可伸缩的应用程序;使用JBPM业务流程来改进页面流。

第Ⅰ部分 Seam入门 3

第1章 Seam的定义 3

1.1 集成和增强Java EE框架 4

1.2 能够理解ORM的Web框架 5

1.3 支持有状态的Web应用程序 5

1.4 为Web 2.0做好准备 6

1.5 通过双向依赖注入实现POJO服务 7

1.6 惯例优先原则 7

1.7 避免滥用XML 7

1.8 为方便测试而设计 8

1.9 优秀的工具支持 8

1.10 开始编写代码 9

第2章 Seam Hello World 10

2.1 创建数据模型 11

2.2 将数据模型映射到Web表单 12

2.3 处理Web事件 12

2.4 导航到下一个页面 13

2.5 EJB3 bean接口和强制性方法 14

2.6 有关Seam编程模型的更多知识 15

2.6.1 Seam内置组件 15

2.6.2 测试的简便性 16

2.6.3 基于getter/setter方法的双向注入 16

2.6.4 避免过多的双向注入 16

2.6.5 通过EntityManager访问数据库 17

2.7 配置和打包 18

2.7.1 WAR文件 20

2.7.2 Seam组件JAR包 21

2.8 Seam应用程序的简易性 23

第3章 推荐使用的JSF增强功能 24

3.1 Facelets简介 25

3.1.1 使用Facelets的原因 25

3.1.2 使用Facelets的Hello World示例 26

3.1.3 使用Facelets作为模板引擎 27

3.1.4 数据列表组件 30

3.2 Seam对JSF的增强 30

3.2.1 Seam UI标记 31

3.2.2 Seam的JSF表达式语言增强 32

3.2.3 表达式语言的使用范围 33

3.2.4 Seam过滤器 33

3.2.5 有状态的JSF 33

3.3 添加对Facelets和Seam UI的支持 34

3.4 对PDF文档、电子邮件和富文本的支持 35

3.4.1 生成PDF报表 36

3.4.2 基于模板的电子邮件 38

3.4.3 富文本的显示 40

3.5 国际化 41

第4章 无需EJB3的Seam 43

4.1 仅使用POJO的Seam应用程序示例 43

4.2 配置 44

4.3 打包 46

4.4 使用POJO的折中 48

第5章 快速应用程序开发工具 49

5.1 先决条件 49

5.2 快速教程 50

5.2.1 设置seam-gen 50

5.2.2 生成骨架应用程序 53

5.2.3 理解配置文件 54

5.2.4 开发应用程序 56

5.2.5 构建和部署 56

5.2.6 运行测试用例 58

5.3 使用IDE 58

5.3.1 NetBeans 58

5.3.2 Eclipse 61

5.3.3 JBoss Tools与JBoss Developer Studio 62

5.4 从数据库生成CRUD应用程序 64

5.5 seam-gen命令参考 65

第Ⅱ部分 简化有状态应用程序开发第6章 Seam有状态框架简介 69

6.1 ORM的正确用法 69

6.2 更好的性能 71

6.3 更好的浏览器导航支持 72

6.4 更少的内存泄漏 73

6.5 高粒度组件生命周期 73

6.6 减少样板代码 74

第7章 组件编程思想 76

7.1 有状态组件 77

7.1.1 有状态实体bean 78

7.1.2 有状态的会话bean 79

7.2 管理有状态组件 80

7.2.1 有状态组件的生命周期 80

7.2.2 工厂方法 82

7.2.3 管理器组件 84

7.3 通过XML配置组件 85

7.4 页面导航流 87

第8章 对话 88

8.1 对话的定义 88

8.1.1 默认对话作用域 89

8.1.2 显示JSF消息 90

8.2 长期运行对话 92

8.2.1 Hotel Booking示例简介 92

8.2.2 长期运行对话的生命周期 95

8.2.3 对话超时 96

8.3 管理长期运行对话 97

8.3.1 注解方法 97

8.3.2 导航方法 98

8.3.3 启动长期运行对话 99

8.3.4 对话内部 102

8.3.5 结束长期运行对话 104

8.3.6 链接和按钮 107

8.4 新领域 109

第9章 工作区和并发对话 110

9.1 工作区的定义 110

9.2 工作区管理 113

9.2.1 工作区切换器 113

9.2.2 跨工作区传递对话 115

9.2.3 管理对话ID 116

9.3 自然对话 117

9.3.1 通过链接启动自然对话 117

9.3.2 重定向到自然对话 119

9.3.3 恢复自然对话 121

9.3.4 重写到用户友好URL 122

9.4 工作区超时 122

9.5 无状态Web中的桌面特性 124

第10章 嵌套对话 125

10.1 需要嵌套对话的原因 125

10.2 延续对话 126

10.2.1 理解嵌套对话上下文 127

10.2.2 嵌套对话 128

10.3 对话栈 130

10.3.1 管理对话栈 131

10.3.2 显示面包屑路径 134

10.3.3 嵌套对话超时 134

10.4 细粒度状态管理 134

第11章 事务与持久化 135

11.1 Seam托管事务 136

11.1.1 事务属性 137

11.1.2 强制事务回滚 138

11.2 原子对话(Web事务) 139

11.2.1 管理持久化上下文 140

11.2.2 Seam托管持久化上下文 142

11.2.3 每个对话一个事务 146

第Ⅲ部分 整合Web与数据组件 151

第12章 验证输入数据 151

12.1 表单验证基础 151

12.2 用于实体bean的验证注解 153

12.3 触发验证操作 154

12.4 在Web表单上显示错误消息 156

12.5 使用自定义JSF验证器 158

第13章 可单击数据表 159

13.1 实现可单击数据表 160

13.1.1 显示数据表 160

13.1.2 将选中的对象注入到事件处理程序中 161

13.1.3 在数据表中使用扩展EL 162

13.2 Seam数据绑定框架 162

第14章 利用事件解耦组件 164

14.1 观察者模式 164

14.2 组件驱动的事件 166

14.2.1 声明式引发事件 167

14.2.2 观察事件 169

14.2.3 事件处理和Events API 170

第15章 可收藏网页 172

15.1 使用页面参数 173

15.2 以Java为中心的方法 176

15.2.1 从HTTP GET请求中获得查询参数 176

15.2.2 为页面加载数据 177

15.2.3 进一步处理已收藏页面 178

15.3 RESTful Web服务 179

第16章 Seam CRUD应用程序框架 181

16.1 DAO 181

16.2 Seam CRUD DAO是POJO 182

16.3 声明式Seam DAO组件 182

16.3.1 使用实体对象的简化名称 184

16.3.2 检索并显示实体对象 184

16.3.3 初始化新的实体实例 185

16.3.4 成功消息 185

16.4 查询 186

16.4.1 动态查询 187

16.4.2 显示多页查询结果 188

第17章 适当地处理错误 191

17.1 不采用标准servlet错误处理页面方法的原因 192

17.2 设置异常过滤器 192

17.3 异常注解 193

17.4 使用pages.xml来处理系统异常 194

17.5 调试信息页面 196

17.5.1 Facelets调试页面 196

17.5.2 Seam调试页面 197

第18章 Seam安全框架 199

18.1 验证与用户角色 200

18.2 声明式访问控制 203

18.2.1 页面访问控制 203

18.2.2 UI组件 204

18.2.3 组件访问控制 205

18.2.4 类型安全的角色注解 207

18.3 身份管理 208

18.3.1 使用JpaIdentityStore 208

18.3.2 使用LdapIdentityStore 214

18.4 其他安全功能 216

18.4.1 简化SSL 216

18.4.2 使用CAPCHA来区分人类和计算机 217

第Ⅳ部分 Seam对AJAX的支持 223

第19章 自定义AJAX UI组件 223

19.1 具有自动完成功能的文本输入示例 224

19.2 功能丰富的输入控件示例 227

19.3 可滚动数据表 227

19.4 在Seam中使用RichFaces 229

19.5 其他JSF组件库 229

第20章 让已有组件支持AJAX 231

20.1 AJAX验证器示例 231

20.2 编程式AJAX 233

20.3 AJAX按钮 236

20.4 AJAX容器 237

20.5 其他好用的工具 238

20.6 在Seam中使用Ajax4jsf组件库 238

20.7 Ajax4jsf组件库的优缺点 239

第21章 在Seam中直接集成JavaScript 240

21.1 AJAX验证器示例(重装上阵) 240

21.1.1 服务器端组件 241

21.1.2 在Web页面上触发JavaScript事件 242

21.1.3 执行AJAX调用 243

21.2 AJAX进度条 244

21.2.1 Seam组件 245

21.2.2 在JavaScript中访问Seam组件 246

21.3 在Seam应用程序中集成Dojo工具箱 248

21.3.1 视觉效果小部件 248

21.3.2 输入小部件 249

第Ⅴ部分 业务流程和规则 255

第22章 基于规则的安全框架 255

22.1 基于规则的访问控制 255

22.2 基于规则的权限配置 256

22.3 简单的访问规则 257

22.4 按实例配置访问规则 259

22.5 保护实体 261

第23章 在Web应用程序中集成业务规则 264

23.1 嵌入式规则 264

23.1.1 基于规则的行为 264

23.1.2 应用规则 266

23.2 通用规则 267

23.2.1 工作内存 267

23.2.2 使用工作内存 269

23.2.3 可动态更新的规则 269

23.3 构建和部署 270

23.4 结论 271

第24章 管理业务流程 272

24.1 jBPM的概念和术语 273

24.2 应用程序用户和jBPM角色 275

24.3 创建业务流程 277

24.3.1 定义流程 277

24.3.2 创建业务流程实例 279

24.3.3 将数据对象绑定在流程作用域中 280

24.4 任务管理 281

24.4.1 实现任务的业务逻辑 281

24.4.2 指定要处理的任务 283

24.4.3 在UI中选择任务 284

24.5 基于业务流程的页面导航流 286

24.6 jBPM库和配置 289

第25章 集成业务流程和规则 291

25.1 流程 291

25.2 规则 293

25.3 结论 294

第Ⅵ部分 Seam应用程序测试 297

第26章 单元测试 297

26.1 一个简单的TestNG测试用例 298

26.2 模拟双向依赖注入 300

26.3 模拟数据库和事务 301

26.4 加载测试基础结构 303

第27章 集成测试 306

27.1 模拟JSF交互 307

27.2 使用JSF EL表达式 308

27.3 事务型数据源 309

第Ⅶ部分 生产部署 313

第28章 使用生产数据库 313

28.1 安装和设置数据库 313

28.2 安装数据库驱动程序 315

28.3 定义数据源 315

28.4 配置持久化引擎 315

28.5 关于Tomcat 316

第29章 Java EE 5.0部署 318

29.1 JBoss应用服务器4.0.5版本 318

29.2 JBoss应用服务器4.2.x和5.x系列版本 318

29.3 GlassFish 319

第30章 性能调整和集群 323

30.1 单台服务器上的性能调整 323

30.1.1 避免按值调用 324

30.1.2 JVM选项 324

30.1.3 减少日志记录 325

30.1.4 对HTTP线程池进行性能调整 325

30.1.5 选择在客户端还是服务器端保存状态 327

30.1.6 使用生产数据源 327

30.1.7 使用二级数据库缓存 328

30.1.8 谨慎使用数据库事务 330

30.2 利用服务器集群实现可伸缩性和故障转移 330

30.2.1 粘性会话的负载平衡 331

30.2.2 状态复制 331

30.2.3 故障转移体系结构 332

第Ⅷ部分 新兴技术 335

第31章 Web应用程序中周期性作业的调度 335

31.1 简单的周期性事件 335

31.2 配置Quartz调度器服务 337

31.3 调度cron作业 339

31.4 在启动时进行作业调度 339

31.5 结论 341

第32章 利用多层缓存提高可伸缩性 342

32.1 多层缓存 343

32.2 通过Seam集成缓存提供程序 344

32.3 Seam中简化的缓存实现 347

第33章 Seam对Groovy的支持 350

33.1 Groovy实体 351

33.2 Groovy操作 353

33.3 与Groovy的集成 355

第34章 Web Beans简介 357

34.1 定义Web Beans组件 357

34.2 组件注入 359

34.3 生产者方法 361

34.4 上下文模型 363

34.5 组件原型 366

34.6 实现横切行为 368

34.7 总结 369

附录A 安装和部署JBoss应用服务器 371

附录B 将示例应用程序用作模板 373

附录C Maven的使用 387

附录D 直接访问Hibernate API 397