书籍详情
Struts与Ajgx高级程序设计
作者:(美国)Rob Harrop,John Carnell 著;龚波 译
出版社:人民邮电出版社
出版时间:2008-02-01
ISBN:9787115172273
定价:¥59.00
购买这本书可以去
内容简介
本书详细介绍了Struts MVC Web 框架的使用方法,可以帮助读者解决在日常Web 应用程序开发中遇到的各种难题。不合理的设计会导致对Struts 框架的长期依赖,这会使代码复用变得非常复杂。本书基于Struts 1.2 版对此类问题给出了专业的解决方案。本书的重点在于如何发现常见的设计错误(反模式)以及如何使用Struts 来解决这些问题。本书内容丰富,信息全面,主要内容包括模式和反模式、Struts 基础及其高级知识、Tiles 框架、日志和调试、elocity 模板引擎、Struts 和Ajax 等。通过本书,读者不仅能够深入地了解Struts 的工作原理,而且还能掌握处理日常开发中遇到的问题的有效方法。 本书适合于所有具备一定开发经验并掌握JSP、servlet 以及Struts 基础知识的高级读者阅读。
作者简介
John Carnell,全球领先的企业信息化解决方案和培训服务供应商NetChange公司的总裁。他对基于组件开发的软件解决方案有深入的研究,在业界颇负盛名。
目录
第1章 我们做错了什么:Web反模式解释 1
1.1 本书主要内容 2
1.2 本章主要内容 3
1.3 Web应用程序开发面临的挑战 4
1.3.1 企业服务 5
1.3.2 应用服务 6
1.4 模式和反模式介绍 7
1.4.1 Web应用程序反模式 8
1.4.2 Concern Slush 9
1.4.3 Tier Leakage 11
1.4.4 Hardwired 13
1.4.5 Validation Confusion 15
1.4.6 Tight-Skins 17
1.4.7 Data Madness 18
1.5 反模式、JOS框架以及经济学 20
1.6 小结 24
第2章 Struts基础 25
2.1 JavaEdge应用程序架构 26
2.1.1 设计 26
2.1.2 使用Struts实现MVC模式 28
2.1.3 起步:JavaEdge源代码树 30
2.1.4 Command模式的作用 40
2.2 构造表示层 44
2.2.1 JavaEdge主页 45
2.2.2 Bean标签 48
2.2.3 逻辑标签 57
2.2.4 迭代式标签 58
2.2.5 条件式标签 58
2.2.6 移动式标签 61
2.3 小结 62
第3章 使用Struts的表单表示和验证机制 64
3.1 表单验证的问题 64
3.2 使用Struts进行表单验证 65
3.3 使用Struts实现表单验证 67
3.3.1 struts-config.xml文件 68
3.3.2 Struts ActionForm类 69
3.3.3 使用数据预先填充ActionForm 75
3.3.4 其他预先填充技术 78
3.3.5 正确地预先填充表单 79
3.3.6 验证表单数据 80
3.4 Struts HTML标签库 88
3.4.1 建立Struts HTML表单 90
3.4.2 使用文本和文本域输入字段 92
3.4.3 下拉列表、复选框和单选框 93
3.4.4 创建更加动态的ActionForm 95
3.4.5 ActionForm和业务逻辑 101
3.5 小结 106
第4章 使用Struts管理业务逻辑 107
4.1 业务逻辑反模式和Struts 107
4.1.1 Concern Slush和Struts 108
4.1.2 Tier Leakage和Struts 113
4.1.3 分离业务逻辑和Struts 115
4.2 实现设计模式 117
4.2.1 实现Business Delegate模式 117
4.2.2 实现Service Locator模式 122
4.2.3 继续研究服务定位器 130
4.2.4 EJB和Struts 134
4.3 处理Action类中的异常 140
4.3.1 Struts 1.0.x的异常处理 141
4.3.2 Struts 1.1和以后版本的异常处理 143
4.3.3 重新编写ApplicationException类 143
4.3.4 设置struts-config.xml文件 144
4.3.5 编写定制的ExceptionHandler 146
4.4 小结 149
第5章 使用ObjectRelational Bridge实现数据访问层的架构 151
5.1 开发数据访问策略 152
5.1.1 JavaEdge应用程序的数据访问模型 153
5.1.2 值对象 158
5.1.3 JavaEdge值对象 159
5.1.4 使用O/R映射工具 162
5.1.5 设置对象/关系映射 165
5.1.6 使用哪个序列管理器 174
5.2 使用OJB 180
5.2.1 数据检索:一个简单的例子 185
5.2.2 数据检索:一个更复杂的范例 187
5.2.3 使用OJB存储数据 189
5.2.4 使用OJB删除数据 190
5.3 集成前面的代码 191
5.4 小结 194
第6章 使用Tiles框架创建灵活的前端应用 196
6.1 Tiles框架是什么 197
6.2 启用Struts 1.1版本以使用Tiles 198
6.2.1 配置Tiles插件 199
6.2.2 tiles-defs.xml文件 201
6.2.3 添加Tiles TLD 201
6.2.4 第一个Tiles模板 201
6.3 Tiles定义是什么 204
6.4 Tiles定义:基于JSP的方法 205
6.4.1 覆写Tiles定义的属性值 207
6.4.2 在Tiles定义中使用哑值 207
6.4.3 JSP Tiles定义的劣势 208
6.4.4 分析tiles-defs.xml文件 209
6.4.5 使用Tiles定义的继承性 209
6.4.6 扩展Tiles定义 212
6.4.7 修改template.jsp文件 213
6.4.8 给tiles-defs.xml文件添加一个新的定义 214
6.4.9 修改.homePage定义 215
6.5 把Tiles定义映射到Action Forwards 216
6.6 小结 219
第7章 动态表单和Struts验证框架 221
7.1 动态表单简介 222
7.1.1 定义postStoryForm Struts表单bean 222
7.1.2 实现postStoryDynaForm.java类 223
7.1.3 关于BeanUtils和上述代码的思考 228
7.2 Jakarta Commons Validator框架 231
7.2.1 Validator框架设置 231
7.2.2 实现必填字段验证 232
7.2.3 maxlength验证规则 235
7.3 在ActionForm类中使用Validator框架 237
7.3.1 编写自己的验证规则 239
7.3.2 实现粗俗性规则 239
7.3.3 向validator-rules.xml文件添加粗俗性检查规则 243
7.3.4 Struts验证和潜在的长期后果 245
7.3.5 在表单中实现粗俗性规则 246
7.3.6 不使用Java的ActionForm 247
7.3.7 何时使用Validator框架 247
7.4 小结 248
第8章 使用XDoclet加速Struts开发 250
8.1 安装XDoclet 251
8.2 XDoclet到底是什么 252
8.2.1 从XDoclet到源代码及其之间的步骤 255
8.2.2 可用的XDoclet标签 256
8.2.3 分析一个XDoclet标签 257
8.3 集成Ant和XDoclet 258
8.4 XDoclet和Struts 262
8.4.1 声明Struts表单bean 262
8.4.2 声明Struts动作 263
8.4.3 XDoclet和Java继承 264
8.4.4 声明应用程序异常 264
8.4.5 使用 webdoclet ... / 构建strutsconfig.xml文件 266
8.4.6 XDoclet和Validator框架 267
8.4.7 从Ant生成Validator标签 270
8.5 小结 272
第9章 日志和调试 274
9.1 为什么使用日志 275
9.2 简单的Web应用程序日志 276
9.2.1 ServletContext提供的日志 276
9.2.2 使用Commons Logging 277
9.3 Java 1.4日志API 281
9.3.1 Apache log4j 284
9.3.2 使用log4j和Cmmons Logging 285
9.3.3 日志继承 289
9.3.4 日志性能 292
9.3.5 日志最佳实践 292
9.3.6 JBoss和log4j 296
9.3.7 在JavaEdge应用程序中集成日志 297
9.3.8 Web层的日志 303
9.3.9 使用JBoss和Eclipse调试Struts应用程序 305
9.3.10 调试JavaEdge应用程序 306
9.3.11 快速部署能力 307
9.3.12 调试Struts框架 308
9.4 小结 308
第10章 Velocity模板引擎 309
10.1 模板引擎是什么 309
10.2 开始行动 310
10.2.1 Velocity类和VelocityContext类 311
10.2.2 Velocity引擎语言 312
10.2.3 变量 313
10.2.4 访问变量 313
10.2.5 变量值 313
10.2.6 JavaBean属性 318
10.2.7 算术 318
10.2.8 指令 319
10.2.9 宏 327
10.2.10 Struts和Velocity 328
10.3 使用Velocity的最佳实践 335
10.3.1 使用宏 335
10.3.2 知道何时使用#parse指令,何时使用#include指令 335
10.3.3 使用JavaBean属性名称 335
10.4 小结 335
第11章 扩展Struts框架 336
11.1 扩展Action和ActionForm 336
11.1.1 向自己的动作提供通用服务 337
11.1.2 干涉动作执行 341
11.2 扩展RequestProcessor 343
11.2.1 创建RequestProcessor 343
11.2.2 使用RequestProcessor,而不使用Filter 344
11.2.3 使用RequestProcessor验证本地访问 347
11.3 创建配置Bean 347
11.4 再次研究RequestProcessor 349
11.5 创建一个插件 353
11.5.1 新闻列表服务基础 353
11.5.2 NewsletterManager 353
11.5.3 NewsletterTask 357
11.5.4 NewsletterPlugIn 358
11.5.5 配置插件 361
11.6 小结 362
第12章 Struts和Ajax 363
12.1 Ajax解密 363
12.1.1 在Google中使用Ajax 363
12.1.2 在Yahoo中使用Ajax 364
12.2 在哪些地方应该使用Ajax 364
12.2.1 Ajax和Web 2.0 364
12.2.2 Ajax和SOA 364
12.3 Ajax内部机制 365
12.3.1 Ajax请求-答复循环 365
12.3.2 XMLHttpRequest对象 366
12.4 Ajax和Struts 367
12.4.1 Cities.jsp文件 367
12.4.2 GetCitiesNamesAction 370
12.4.3 CitiesDAO 371
12.5 小结 372
附录A JavaEdge设置和安装 373
附录B Struts开发工具 380
附录C Struts和Strecks 407
1.1 本书主要内容 2
1.2 本章主要内容 3
1.3 Web应用程序开发面临的挑战 4
1.3.1 企业服务 5
1.3.2 应用服务 6
1.4 模式和反模式介绍 7
1.4.1 Web应用程序反模式 8
1.4.2 Concern Slush 9
1.4.3 Tier Leakage 11
1.4.4 Hardwired 13
1.4.5 Validation Confusion 15
1.4.6 Tight-Skins 17
1.4.7 Data Madness 18
1.5 反模式、JOS框架以及经济学 20
1.6 小结 24
第2章 Struts基础 25
2.1 JavaEdge应用程序架构 26
2.1.1 设计 26
2.1.2 使用Struts实现MVC模式 28
2.1.3 起步:JavaEdge源代码树 30
2.1.4 Command模式的作用 40
2.2 构造表示层 44
2.2.1 JavaEdge主页 45
2.2.2 Bean标签 48
2.2.3 逻辑标签 57
2.2.4 迭代式标签 58
2.2.5 条件式标签 58
2.2.6 移动式标签 61
2.3 小结 62
第3章 使用Struts的表单表示和验证机制 64
3.1 表单验证的问题 64
3.2 使用Struts进行表单验证 65
3.3 使用Struts实现表单验证 67
3.3.1 struts-config.xml文件 68
3.3.2 Struts ActionForm类 69
3.3.3 使用数据预先填充ActionForm 75
3.3.4 其他预先填充技术 78
3.3.5 正确地预先填充表单 79
3.3.6 验证表单数据 80
3.4 Struts HTML标签库 88
3.4.1 建立Struts HTML表单 90
3.4.2 使用文本和文本域输入字段 92
3.4.3 下拉列表、复选框和单选框 93
3.4.4 创建更加动态的ActionForm 95
3.4.5 ActionForm和业务逻辑 101
3.5 小结 106
第4章 使用Struts管理业务逻辑 107
4.1 业务逻辑反模式和Struts 107
4.1.1 Concern Slush和Struts 108
4.1.2 Tier Leakage和Struts 113
4.1.3 分离业务逻辑和Struts 115
4.2 实现设计模式 117
4.2.1 实现Business Delegate模式 117
4.2.2 实现Service Locator模式 122
4.2.3 继续研究服务定位器 130
4.2.4 EJB和Struts 134
4.3 处理Action类中的异常 140
4.3.1 Struts 1.0.x的异常处理 141
4.3.2 Struts 1.1和以后版本的异常处理 143
4.3.3 重新编写ApplicationException类 143
4.3.4 设置struts-config.xml文件 144
4.3.5 编写定制的ExceptionHandler 146
4.4 小结 149
第5章 使用ObjectRelational Bridge实现数据访问层的架构 151
5.1 开发数据访问策略 152
5.1.1 JavaEdge应用程序的数据访问模型 153
5.1.2 值对象 158
5.1.3 JavaEdge值对象 159
5.1.4 使用O/R映射工具 162
5.1.5 设置对象/关系映射 165
5.1.6 使用哪个序列管理器 174
5.2 使用OJB 180
5.2.1 数据检索:一个简单的例子 185
5.2.2 数据检索:一个更复杂的范例 187
5.2.3 使用OJB存储数据 189
5.2.4 使用OJB删除数据 190
5.3 集成前面的代码 191
5.4 小结 194
第6章 使用Tiles框架创建灵活的前端应用 196
6.1 Tiles框架是什么 197
6.2 启用Struts 1.1版本以使用Tiles 198
6.2.1 配置Tiles插件 199
6.2.2 tiles-defs.xml文件 201
6.2.3 添加Tiles TLD 201
6.2.4 第一个Tiles模板 201
6.3 Tiles定义是什么 204
6.4 Tiles定义:基于JSP的方法 205
6.4.1 覆写Tiles定义的属性值 207
6.4.2 在Tiles定义中使用哑值 207
6.4.3 JSP Tiles定义的劣势 208
6.4.4 分析tiles-defs.xml文件 209
6.4.5 使用Tiles定义的继承性 209
6.4.6 扩展Tiles定义 212
6.4.7 修改template.jsp文件 213
6.4.8 给tiles-defs.xml文件添加一个新的定义 214
6.4.9 修改.homePage定义 215
6.5 把Tiles定义映射到Action Forwards 216
6.6 小结 219
第7章 动态表单和Struts验证框架 221
7.1 动态表单简介 222
7.1.1 定义postStoryForm Struts表单bean 222
7.1.2 实现postStoryDynaForm.java类 223
7.1.3 关于BeanUtils和上述代码的思考 228
7.2 Jakarta Commons Validator框架 231
7.2.1 Validator框架设置 231
7.2.2 实现必填字段验证 232
7.2.3 maxlength验证规则 235
7.3 在ActionForm类中使用Validator框架 237
7.3.1 编写自己的验证规则 239
7.3.2 实现粗俗性规则 239
7.3.3 向validator-rules.xml文件添加粗俗性检查规则 243
7.3.4 Struts验证和潜在的长期后果 245
7.3.5 在表单中实现粗俗性规则 246
7.3.6 不使用Java的ActionForm 247
7.3.7 何时使用Validator框架 247
7.4 小结 248
第8章 使用XDoclet加速Struts开发 250
8.1 安装XDoclet 251
8.2 XDoclet到底是什么 252
8.2.1 从XDoclet到源代码及其之间的步骤 255
8.2.2 可用的XDoclet标签 256
8.2.3 分析一个XDoclet标签 257
8.3 集成Ant和XDoclet 258
8.4 XDoclet和Struts 262
8.4.1 声明Struts表单bean 262
8.4.2 声明Struts动作 263
8.4.3 XDoclet和Java继承 264
8.4.4 声明应用程序异常 264
8.4.5 使用 webdoclet ... / 构建strutsconfig.xml文件 266
8.4.6 XDoclet和Validator框架 267
8.4.7 从Ant生成Validator标签 270
8.5 小结 272
第9章 日志和调试 274
9.1 为什么使用日志 275
9.2 简单的Web应用程序日志 276
9.2.1 ServletContext提供的日志 276
9.2.2 使用Commons Logging 277
9.3 Java 1.4日志API 281
9.3.1 Apache log4j 284
9.3.2 使用log4j和Cmmons Logging 285
9.3.3 日志继承 289
9.3.4 日志性能 292
9.3.5 日志最佳实践 292
9.3.6 JBoss和log4j 296
9.3.7 在JavaEdge应用程序中集成日志 297
9.3.8 Web层的日志 303
9.3.9 使用JBoss和Eclipse调试Struts应用程序 305
9.3.10 调试JavaEdge应用程序 306
9.3.11 快速部署能力 307
9.3.12 调试Struts框架 308
9.4 小结 308
第10章 Velocity模板引擎 309
10.1 模板引擎是什么 309
10.2 开始行动 310
10.2.1 Velocity类和VelocityContext类 311
10.2.2 Velocity引擎语言 312
10.2.3 变量 313
10.2.4 访问变量 313
10.2.5 变量值 313
10.2.6 JavaBean属性 318
10.2.7 算术 318
10.2.8 指令 319
10.2.9 宏 327
10.2.10 Struts和Velocity 328
10.3 使用Velocity的最佳实践 335
10.3.1 使用宏 335
10.3.2 知道何时使用#parse指令,何时使用#include指令 335
10.3.3 使用JavaBean属性名称 335
10.4 小结 335
第11章 扩展Struts框架 336
11.1 扩展Action和ActionForm 336
11.1.1 向自己的动作提供通用服务 337
11.1.2 干涉动作执行 341
11.2 扩展RequestProcessor 343
11.2.1 创建RequestProcessor 343
11.2.2 使用RequestProcessor,而不使用Filter 344
11.2.3 使用RequestProcessor验证本地访问 347
11.3 创建配置Bean 347
11.4 再次研究RequestProcessor 349
11.5 创建一个插件 353
11.5.1 新闻列表服务基础 353
11.5.2 NewsletterManager 353
11.5.3 NewsletterTask 357
11.5.4 NewsletterPlugIn 358
11.5.5 配置插件 361
11.6 小结 362
第12章 Struts和Ajax 363
12.1 Ajax解密 363
12.1.1 在Google中使用Ajax 363
12.1.2 在Yahoo中使用Ajax 364
12.2 在哪些地方应该使用Ajax 364
12.2.1 Ajax和Web 2.0 364
12.2.2 Ajax和SOA 364
12.3 Ajax内部机制 365
12.3.1 Ajax请求-答复循环 365
12.3.2 XMLHttpRequest对象 366
12.4 Ajax和Struts 367
12.4.1 Cities.jsp文件 367
12.4.2 GetCitiesNamesAction 370
12.4.3 CitiesDAO 371
12.5 小结 372
附录A JavaEdge设置和安装 373
附录B Struts开发工具 380
附录C Struts和Strecks 407
猜您喜欢