标题：Struts与Ajgx高级程序设计
图书信息
出版社: 人民邮电出版社; 第1版 (2008年2月1日)
丛书名: 图灵程序设计丛书·Java系列
平装: 409页
正文语种: 简体中文
开本: 16
ISBN: 9787115172273
条形码: 9787115172273
尺寸: 23 x 18.6 x 2 cm
重量: 621 g
作者简介
John Carnell，全球领先的企业信息化解决方案和培训服务供应商NetChange公司的总裁。他对基于组件开发的软件解决方案有深入的研究，在业界颇负盛名。
内容简介
《Struts与Ajgx高级程序设计》主要内容：StrutsMVCWeb框架的使用方法，可以帮助读者解决在日常Web应用程序开发中遇到的各种难题。不合理的设计会导致对Struts框架的长期依赖，这会使代码复用变得非常复杂。《Struts与Ajgx高级程序设计》基于Struts1.2版对此类问题给出了专业的解决方案。《Struts与Ajgx高级程序设计》的重点在于如何发现常见的设计错误(反模式)以及如何使用Struts来解决这些问题。《Struts与Ajgx高级程序设计》内容丰富，信息全面，主要内容包括模式和反模式、Struts基础及其高级知识、Tiles框架、日志和调试、elocity模板引擎、Struts和Ajax等。通过《Struts与Ajgx高级程序设计》，读者不仅能够深入地了解Struts的工作原理，而且还能掌握处理日常开发中遇到的问题的有效方法。
目录
第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