译者序 1
前言 1
致谢 1
作者简介 1
第1章 高级动态Web内容生成 1
1.1 Web应用中的数据验证 1
1.1.1 服务器端验证和资源的高效使用 2
1.1.2 客户端数据验证 3
1.1.3 服务器端验证的必要性 4
1.1.4 常见的客户端数据验证 4
1.1.5 客户端验证的操作 4
1.1.6 动态生成客户端JavaScript代码 14
1.1.7 使用JSP动态生成XML 21
1.2 小结 25
习题 26
第2章 国际化和本地化 27
2.1 关于支持国际化的应用 27
2.2 国际化和本地化 28
2.3 利用Java平台的国际化功能 30
2.3.1 本地化环境的概念 30
2.3.2 维护本地化环境信息 31
2.4 小结 56
习题 57
第3章 JSP调试技术 58
3.1 调试科学 58
3.2 编译时捕获bug 60
3.3 使用调试系统与生产系统 63
3.4 使用System.out.println()测量代码 64
3.5 使用日志系统 66
3.5.1 通过servlet容器记录日志 66
3.5.2 利用JDK日志记录器记录日志 68
3.5.3 用Log4j记录日志 74
3.5.4 使用标记库记录日志 79
3.6 使用工具进行调试 82
3.6.1 设置断点 82
3.6.2 检查变量和设置观察点 84
3.6.3 单步跟踪代码 85
3.6.4 远程调试 86
3.7 在生产环境中调试代码 87
3.7.1 预编译JSP的调试 87
3.7.2 在负载情况下调试 87
3.7.3 向日志文件增加上下文信息 88
3.7.4 增加日志过滤器 90
3.8.1 增加信息作为响应注释 91
3.8.2 侦查应用 91
3.8 查找间歇问题 91
3.9 避免并发问题 95
3.10 小结 95
习题 95
第4章 JSP在Web应用领域的角色 96
4.1 什么是Web应用? 96
4.2 Web应用的目录结构 96
4.3 部署描述文件 97
4.4 使用Web归档文件 105
4.5 开发和部署策略 105
4.6 Tomcat的打包和部署 106
4.7 小结 110
习题 110
第5章 Web框架 112
5.1 什么是框架? 113
5.2 框架的好处 113
5.3.1 应用框架 114
5.3 框架类型 114
5.3.2 持久性框架 115
5.3.3 工具框架 115
5.4 WebWork 116
5.5 Spring框架 126
5.5.1 Spring MVC的主要组件 127
5.5.2 使用Spring的示例 128
5.6 小结 145
习题 146
第6章 Struts框架 147
6.1 Struts介绍 147
6.1.1 Struts简介 148
6.1.2 控制器:动作和表单 149
6.1.4 视图 157
6.1.3 模型 157
6.1.5 示例应用 174
6.2 小结 188
习题 188
第7章 使用Tiles的布局管理 189
7.1 Tiles介绍 189
7.1.1 什么是Tiles框架? 189
7.1.2 Tiles术语 191
7.1.3 安装Tiles 191
7.2 tile作用域 195
7.3 定义 195
7.4 Tiles标记 197
7.4.1 insert 197
7.4.2 definition 198
7.4.3 put 198
7.4.7 getAsString 199
7.4.6 get 199
7.4.5 add 199
7.4.4 putList 199
7.4.8 useAttribute 200
7.4.9 importAttribute 200
7.4.10 initComponentDefinitions 200
7.5 向Tiles传递参数 201
7.6 高级Tiles 202
7.6.1 定义和继承 202
7.6.2 嵌套tile 205
7.7 Tiles和Struts 211
7.7.1 使用Struts配置Tiles 211
7.7.2 作为动作转发的Tiles定义 211
7.7.3 从Struts向Tiles传递值 213
7.8 小结 217
习题 218
8.1 配置JSF项目 219
第8章 JSF 219
8.2 JSF入门 220
8.2.1 使用支撑bean 222
8.2.2 托管bean 223
8.2.3 控制导航 224
8.2.4 防止直接访问Faces JSP文件 226
8.3 JSF生命周期 226
8.3.2 应用请求值 227
8.3.1 恢复视图 227
8.3.3 处理验证 228
8.3.4 更新模型值 228
8.3.5 调用应用 228
8.3.6 呈现响应 228
8.4 验证数据 228
8.4.1 使用标准验证器 231
8.4.2 创建自己的验证器 232
8.5 转换数据 239
8.5.1 标准转换器 244
8.5.2 实现转换器接口 246
8.6 用监听者处理事件 248
8.7 JSF与Struts 250
8.8 小结 251
习题 251
第9章 J2EE中的JSP 252
9.1 J2EE概述 252
9.1.1 什么是J2EE? 252
9.1.2 容器的功能 254
9.2 J2EE技术 254
9.2.1 J2EE API 254
9.2.2 J2EE平台体系结构 256
9.2.3 JSP开发情况 257
9.3 结合JSP使用J2EE组件 258
9.3.1 servlet 259
9.3.2 JNDI 263
9.3.3 JDBC 266
9.4 EJB 269
9.4.1 EJB的好处 269
9.4.2 EJB的限制 269
9.4.3 EJB类型 270
9.4.4 会话bean 271
9.4.5 实体bean 271
9.4.6 消息驱动bean 272
9.4.7 Timer服务 272
9.5 小结 273
习题 273
第10章 安全 274
10.1 安全领域 274
10.1.1 认证 275
10.1.2 授权 276
10.1.4 机密性 278
10.2 数据完整性和机密性 278
10.1.3 数据完整性 278
10.3 认证 283
10.3.1 HTTP基本认证 283
10.3.2 基于表单的认证 288
10.3.3 客户端证书认证 293
10.4 授权 297
10.4.1 容器 297
10.4.2 编程式授权 297
10.5 小结 301
习题 301
11.1 性能概念 302
11.1.1 度量的内容 302
第11章 性能 302
11.1.2 用户的角度 303
11.1.3 如何度量性能 303
11.1.4 性能测试后的工作 305
11.2 使用JMeter测试性能 306
11.2.1 安装JMeter 306
11.2.2 JMeter概念 306
11.3 性能调优技巧 311
11.3.1 开发时的措施 311
11.3.2 部署时的措施 314
11.4 小结 319
第12章 最佳实践和工具 321
12.1 开发方法 321
12.1.1 瀑布和迭代方法 321
12.1.2 统一开发过程 323
12.1.3 极限编程 323
12.1.5 特性驱动开发 324
12.1.4 测试驱动开发 324
12.2 开发工具 325
12.2.1 版本控制工具 325
12.2.2 构建工具 325
12.2.3 测试工具 325
12.2.4 日志工具 326
12.2.5 保证编码标准的工具 326
12.3 Apache Ant 326
12.3.1 安装Ant 327
12.3.2 Ant概念 327
12.3.3 其他资源 335
12.4 CVS 335
12.4.1 安装CVS 335
12.4.2 CVS概念 336
12.4.3 连接到CVS服务器 336
12.4.4 登记代码 337
12.4.5 检查代码 338
12.4.6 比较多个修订之间的修改 338
12.4.7 其他资源 338
12.5 JUnit 338
12.5.1 安装JUnit 339
12.5.2 JUnit概念 339
12.5.3 其他资源 344
12.6 HttpUnit 344
12.6.1 安装HttpUnit 344
12.6.2 HttpUnit概念 345
12.6.3 其他资源 348
12.7 Web开发的最佳实践 348
12.7.1 遵循好的JSP编码实践 348
12.7.2 分离应用逻辑和表示 348
12.7.3 在适当的时候使用设计模式 348
12.7.5 早期测试和集成 349
12.7.4 使用框架开发应用 349
12.8 小结 350
习题 350
第13章 JSP项目:购物车应用 351
13.1 书店项目 351
13.1.1 项目特点 351
13.1.2 用例 352
13.1.3 初始分析 352
13.2 应用设计 353
13.2.1 数据库设计 353
13.2.2 定义关键实体对象 355
13.3 开发环境和配置 373
13.3.1 目录结构 373
13.3.2 Tomcat 374
13.3.3 Ant 374
13.3.5 Hibernate 379
13.3.4 数据库 379
13.3.6 Struts、Validator和Tiles 384
13.3.7 web.xml 385
13.4 应用 386
13.4.1 应用布局:Tiles 386
13.4.2 购物车状态 388
13.4.3 显示种类列表 389
13.4.4 显示图书列表 391
13.4.5 向购物车增加一本书 394
13.4.6 管理购物车 396
13.4.7 结账 402
13.5 小结 413
习题 413
附录A JSP语法参考 414
附录B JSP表达式语言参考 428
附录C JSTL参考 437