目录 2
第1篇 入门篇 2
第1章 Java Web基础与Struts概览 2
1.1 Web应用基础 2
1.1.1 起点:Servlet/JSP 2
1.1.2 标记库(TagLib)技术 5
1.1.3 JSF(Java Server Faces)技术 8
1.1.4 XML技术 9
1.2 MVC模式 11
1.2.1 深入理解MVC 11
1.2.2 Java Web的实现模型 13
1.3 Struts与Web框架 14
1.3.1 Struts 14
1.3.2 其他MVC框架 16
1.4 方法与资源 16
1.4.1 Java Web之路 16
1.4.2 获取各种学习资源 17
1.5 本章小结 18
第2章 第1个例子:猜数字 19
2.1 Struts的业务流程 19
2.2 快速开始 20
2.2.1 JBuilder 2005的配置 20
2.2.2 创建工程和Web模块 21
2.2.3 CreateNumberActionForm和CreateNumberAction 23
2.2.4 JudgeActionForm和JudgeAction 26
2.2.5 Struts-config.xml文件 27
2.2.6 创建guess.jsp 28
2.2.7 创建资源文件 30
2.3 运行结果 31
2.4 本章小结 32
第2篇 Struts框架详解 34
第3章 配置文件:用户登录用例 34
3.1 建立示例应用 34
3.1.1 创建工程 34
3.2.1 Java Web应用配置文件概述 40
3.1.2 发布应用 40
3.2 Java Web应用配置文件:web.xml 40
3.2.2 <display-name>元素与<description>元素 42
3.2.3 <context-param>元素 43
3.2.4 <filter>元素与<filter-mapping>元素 44
3.2.5 <listener>元素 48
3.2.6 <servlet>元素与<servlet-mapping>元素 51
3.2.7 <session-config>元素 53
3.2.8 <mime-mapping>元素 53
3.2.9 <welcome-file-list>元素 54
3.2.10 <error-page>元素 54
3.2.12 其他元素 57
3.2.11 <taglib>元素 57
3.3 Struts配置文件:struts-config.xml 58
3.3.1 Struts配置文件概述 58
3.3.2 <data-sourse>元素 59
3.3.3 <form-beans>元素 61
3.3.4 <global-exceptions>元素 63
3.3.5 <global-forwards>元素 64
3.3.6 <action-mappings>元素 66
3.3.7 <controller>元素 68
3.3.8 <message-resources>元素 69
3.4 本章小结 70
3.3.9 <plug-in>元素 70
第4章 控制器 71
4.1 Struts的流程控制机制 71
4.1.1 Struts程序的初始化过程 71
4.1.2 Struts程序处理请求的一般过程 73
4.1.3 ActionServlet类 74
4.1.4 RequestProcessor类 75
4.1.5 Action类 79
4.2 使用Struts预定义的Action类 83
4.2.1 ForwardAction类和IncludeAction类 83
4.2.2 DispatchAction类和LookupDispatchAction类 85
4.2.3 SwitchAction类 90
4.3.2 BeanUtils类和PropertyUtils类 91
4.3 实用工具类 91
4.3.1 RequestUtils类和ResponseUtil类 91
4.3.3 常用的集合类 92
4.4 本章小结 93
第5章 模型组件 94
5.1 理解模型 94
5.1.1 模型的基本概念 94
5.1.2 概念模型与设计模型 94
5.1.3 模型驱动开发 97
5.2 业务逻辑层 98
5.2.1 业务逻辑层的定位 98
5.2.2 业务逻辑的离散与聚合 99
5.2.3 BO的概念与应用 100
5.2.4 业务逻辑实现示例 101
5.3 数据持久层 103
5.3.1 数据持久化 103
5.3.2 J2EE持久层框架 103
5.3.3 DAO:数据访问对象 104
5.3.4 ORM:对象关系映射工具 107
5.3.5 EJB与ORM 108
5.3.6 事务处理 114
5.4 业务和持久层重组 117
5.5 本章小结 118
6.1 视图概述 119
第6章 Struts视图组件 119
6.1.2 Struts视图组件中的JavaBean 120
6.1.1 Struts框架包中的视图 120
6.2 ActionForm运行机制 121
6.2.1 ActionForm原理 121
6.2.2 ActionForm与作用域 122
6.2.3 ActionForm生命周期 122
6.3 ActionForm实践 123
6.3.1 创建ActionForm 123
6.3.2 配置ActionForm 126
6.3.3 访问ActionForm 127
6.4.1 ActionForm与模型的关系 128
6.4 ActionForm应用技巧 128
6.4.2 将ActionForm的属性声明为String类型 129
6.4.3 ActionMessages和ActionErrors 129
6.4.4 实现跨页表单 131
6.5 使用动态ActionForm 138
6.5.1 配置动态ActionForm 138
6.5.2 访问动态ActionForm 139
6.5.3 动态ActionForm的表单验证 140
6.6 本章小结 140
7.1.1 本地化和国际化的概念 141
7.1.2 国际化的分类和特征 141
7.1 本地化与国际化 141
第7章 国际化与Struts 141
7.2 Java Web应用的中文问题 142
7.2.1 发送请求时的中文问题 143
7.2.2 Web容器中的编码问题 144
7.2.3 数据库中的中文问题 146
7.2.4 处理响应结果的中文问题 147
7.2.5 加密字符串的中文问题 147
7.2.6 XML文件中的中文编码问题 147
7.3 Java对国际化的支持 148
7.3.1 Locale类 148
7.3.3 多语言支持 151
7.3.2 Java资源包 151
7.4 Struts对国际化的支持 152
7.4.1 概述 152
7.4.2 Struts资源包 152
7.4.3 错误处理和异常信息的国际化 156
7.5 本章小结 157
第8章 Struts HTML标记库 158
8.1 基本HTML标记 158
8.1.1 <html:html>标记 159
8.1.2 <html:base>标记 159
8.1.3 <html:link>标记 160
8.1.4 <html:rewrite>标记 162
8.2 表单相关标记 163
8.1.5 <html:img>标记 163
8.2.1 <html:form>标记 164
8.2.2 <html:text>标记 165
8.2.3 <html:password>标记 165
8.2.4 <html:textarea>标记 166
8.2.5 <html:hidden>标记 166
8.2.6 <html:submit>标记 167
8.2.7 <html:reset>标记 167
8.2.8 <html:cancel>标记 168
8.3 页面选择相关标记 169
8.3.1 <html:checkbox>标记 169
8.3.2 <html:multibox>标记 170
8.3.3 <html:radio>标记 171
8.3.4 <html:select>标记 172
8.3.5 <html:option>标记 173
8.3.6 <html:options>标记 173
8.3.7 <html:optionsCollection>标记 174
8.4 其他重要标记 176
8.4.1 <html:file>标记 176
8.4.2 <html:errors>标记 179
8.4.3 <html:messages>标记 183
8.5 本章小结 184
9.1.1 <bean:header>标记 185
9.1 访问HTTP请求信息相关的标记及访问页面内各种参数的标记 185
第9章 Struts Bean标记库 185
9.1.2 <bean:parameter>标记 187
9.1.3 <bean:cookie>标记 189
9.1.4 <bean:page>标记 190
9.2 访问各种Web资源的标记 192
9.2.1 <bean:include>标记 192
9.2.2 <bean:message>标记 193
9.2.3 <bean:resource>标记 196
9.2.4 <bean:struts>标记 196
9.3 定义和输出各种JavaBean及其相应属性值的标记 197
9.3.1 <bean:define>标记 198
9.3.2 <bean:size>标记 199
9.3.3 <bean:write>标记 200
9.4 本章小结 203
第10章 Struts Logic标记库 204
10.1 Logic比较标记 204
10.2 <logic:iterate>标记 209
10.3 Match标记 212
10.4 Presence标记 213
10.5 Empty标记 216
10.6 转发和重定向标记 217
10.7 本章小结 217
11.1 <nested:nest>标记 218
第11章 Nested标记库 218
11.3 <nested:root>标记 228
11.2 <nested:writeNesting>标记 228
11.4 Nested标记库的其他标记 231
11.5 本章小结 232
第3篇 Struts进阶 234
第12章 多模块开发与Struts扩展 234
12.1 多模块开发 234
12.1.1 多模块Struts应用配置 234
12.1.2 通知控制器 235
12.1.3 在模块间转换 235
12.2.1 使用自定义的ActionServlet 237
12.2 使用定制的控制器 237
12.2.2 使用自定义的RequestProcessor 238
12.2.3 使用自定义的Action类 241
12.2.4 使用自定义的ActionForm基类 244
12.3 扩展视图组件 245
12.3.1 扩展Struts自定义标记 245
12.3.2 引入JSTL标记库 246
12.4 Struts插件 247
12.5 本章小结 251
第13章 使用Tiles组织页面 252
13.1 复合视图 252
13.2.1 使用JSP包含标签实现复合视图 254
13.2 复合视图的简单实现 254
13.2.2 使用<tiles:insert>标签实现复合视图 257
13.3 复合视图的Tiles实现 259
13.3.1 Tiles介绍 260
13.3.2 简单的模板实现 263
13.3.3 模板加组件实现 265
13.3.4 Tiles组件的组合 267
13.3.5 Tiles组件的扩展 269
13.4 本章小结 271
第14章 Validator验证框架 272
14.1 Validator框架概述 272
14.2.1 在struts-config.xml中配置Validator 273
14.2 Validator的安装与配置 273
14.2.2 validator-rules.xml的配置 274
14.2.3 validation.xml的配置 278
14.2.4 Validator与ActionForm 282
14.3 Validator框架应用实践 285
14.3.1 配置struts-config.xml文件 285
14.3.2 配置validation.xml文件 286
14.3.3 配置消息资源 288
14.3.4 运行程序 288
14.4 自定义的验证规则 289
14.5 Validator应用进阶 290
14.5.1 Validator的国际化 291
14.5.2 在跨页表单中使用Validator 293
14.5.3 在Validator框架中使用JavaScnpt 299
14.5.4 使用validWhen设计复杂的验证 302
14.6 本章小结 304
第15章 异常处理 305
15.1 Java的异常处理机制 305
15.1.1 Java异常 305
15.1.2 方法调用栈 305
15.1.3 登记的和未登记的异常 308
15.1.4 异常处理的性能问题 309
15.1.5 系统异常和应用异常 309
15.1.6 使用异常链 309
15.1.7 处理多个异常 312
15.2 Struts框架的异常处理机制 313
15.2.1 Struts框架异常处理机制概述 314
15.2.2 Struts框架异常处理机制的细节 314
15.3 可声明的与可编程的异常处理 320
15.3.1 使用可声明的异常处理 320
15.3.2 使用可编程的异常处理 329
15.4 其他Struts异常问题 333
15.4.1 自定义标记中的异常 333
15.4.2 异常处理的国际化 333
15.5 本章小结 334
16.2.1 一个简单的例子 336
16.2 配置和使用Log4j 336
第16章 Struts与Log4j 336
16.1 Log4j概述 336
第4篇 Struts与开源软件 336
16.2.2 Log4j的配置文件 339
16.2.3 在代码中使用记录日志 342
16.3 本章小结 343
第17章 Struts与Ant 344
17.1 Ant概述 344
17.2 安装运行 345
17.2.1 Ant安装配置 345
17.2.2 HelloWorld实例 345
17.2.3 Web应用结构 346
17.2.4 ant运行命令 347
17.3 build.xml的基本结构 348
17.4 Ant任务 350
17.4.1 常用内置任务 350
17.4.2 扩展可选任务 352
17.5 完整的build.xml例子 353
17.6 深入build.xml 355
17.6.1 Project 355
17.6.2 Targets 356
17.6.3 Tasks 356
17.6.5 Token Filters 357
17.6.4 Properties 357
17.6.6 Path-like Structures 358
17.6.7 命令行变量 359
17.6.8 References 360
17.7 Eclipse 3中使用Ant 361
17.8 JBuilder 2005中使用Ant 362
17.9 本章小结 364
第18章 Struts与JUnit 365
18.1 JUnit概述 365
18.2 JUnit安装运行 365
18.2.1 安装配置 365
18.2.2 基本测试HelloWorld 366
18.2.3 JUnit的3种结果界面 367
18.3 测试Struts应用 368
18.3.1 StrutsTestCase简介 368
18.3.2 创建测试类 369
18.3.3 定义测试target 370
18.3.4 运行测试 371
18.4 在JBuilder 2005中执行测试 371
18.5 在Eclipse 3.0中执行测试 373
18.6 本章小结 375
19.1 Hibernate简介 376
19.1.1 Hibernate Hello Word应用 376
第19章 Struts与Hibernate 376
19.1.2 理解Hibernate架构 381
19.1.3 Hibernate的核心接口 381
19.1.4 Hibernate基本配置 383
19.1.5 对象标识符号 384
19.1.6 Hibernate映射类型 385
19.1.7 高级映射 386
19.1.8 Hibernate检索方式 390
19.2 结合Struts框架与Hibernate 390
19.2.1 应用模型设计 391
19.2.2 代码实现 392
19.2.3 配置 403
19.3 本章小结 405
第20章 Struts与Lucene 407
20.1 Lucene介绍 407
20.2 用Lucene检索文本 409
20.3 Lucene Web应用实例 412
20.3.1 实例概述 412
20.3.2 选择文档集合 414
20.3.3 建立索引 414
20.3.4 查找索引 417
20.3.5 访问 418
20.4 建立索引 419
20.5 搜索索引 429
20.6 删除索引 432
20.7 Lucene的分词与过滤器结构 435
20.8 本章小结 438
第5篇 项目开发实战 442
第21章 DigitStore综合应用 442
21.1 系统需求 442
21.1.1 需求概述 442
21.1.2 主要用例说明 443
21.2 系统架构设计 444
21.3 业务实体设计 445
21.3.1 设计域模型 445
21.3.2 设计数据模型 447
21.3.3 创建对象/关系映射文件 452
21.4 业务逻辑设计 456
21.4.1 数据层设计 456
21.4.2 服务层设计 464
21.5 Action和ActionForm设计 465
21.5.1 自定义Action基类 465
21.5.2 自定义ActionForm基类 466
21.6 本章小结 468
第22章 系统功能模块设计与实现 469
22.1 注册与登录 469
22.1.1 注册 469
22.1.2 登录 475
22.1.3 小结 480
22.2 商品浏览 480
22.2.1 浏览Category 480
22.2.2 浏览Product 485
22.2.3 浏览Item 488
22.2.4 小结 489
22.3 购物车结构 489
22.3.1 基本商品Item 490
22.3.2 购物车里的一个商品条目CartItem 493
22.3.3 购物车Cart 494
22.3.4 购物车容器 498
22.4 添加商品 499
22.5 浏览购物车 502
22.5.1 购物车页面Cart.jsp 502
22.5.2 浏览购物车 504
22.6 删除商品 506
22.7 更新购物车 508
22.8 账单处理 509
22.8.1 生成账单 509
22.8.2 生成订单 513
22.8.3 订单处理与其他功能 518
22.9 本章小结 519
参考文献 520