第1篇 Struts基础应用
第1章 Java Web应用与Struts 初步 3
1.1 Java Web应用基础 3
1.1.1 Servlet与JSP组件简介 4
1.1.2 JavaBean在Java Web组件的应用 5
1.1.3 Web组件的3种关系 8
1.1.4 自定义标签与JSTL标签库 11
1.1.5 JSF技术简介 12
1.1.6 XML简介 16
1.2 MVC设计模式 16
1.2.1 理解MVC 16
1.2.2 MVC的实现模式 17
1.3 Struts设计模式 18
1.3.1 Struts实现MVC的机制 18
1.3.2 Struts工作流程 19
1.3.3 Struts的基本组件包 20
1.3.4 在Struts中与视图组件相关的标签 21
第2章 Struts开发环境的搭建与应用 22
2.1 需要提前安装的技术平台 22
2.1.1 JDK 1.5的安装与配置 22
2.1.2 Tomcat 5.5的安装 25
2.2 Struts开发环境安装 27
2.2.1 下载Struts类库 27
2.2.2 Tomcat服务器下安装Struts类库 27
2.3 Java开发工具搭建Struts环境 28
2.3.1 MyEclipse 5.0搭建Struts开发环境 28
2.3.2 JBuider 2006搭建Struts开发环境 33
2.4 Struts实现数据库系统的操作 41
2.4.1 Struts在SQL Server数据库下的操作 41
2.4.2 Struts在MySQL数据库下的操作 44
第3章 解析Struts配置文件 46
3.1 解析web.xml配置元素 46
3.1.1 ActionServlet类的配置元素 46
3.1.2 请求ActionServlet类的配置元素 47
3.1.3 部署Struts标签库路径的配置元素 48
3.1.4 其他常用元素的配置 48
3.1.5 Struts中web.xml文件中完整代码 49
3.2 解析struts-config.xml 51
3.2.1 数据源的配置元素 51
3.2.2 ActionForm类的配置元素 53
3.2.3 动态ActionForm的配置元素 55
3.2.4 异常的配置元素 58
3.2.5 全局转发的配置元素 61
3.2.6 Action类的配置元素 62
3.2.7 自定义控制器的配置元素 64
3.2.8 资源文件的配置元素 64
3.2.9 插件的配置元素 66
3.2.10 完整的struts-config.xml文件 67
第1篇 Struts基础应用
第1章 Java Web应用与Struts 初步 3
1.1 Java Web应用基础 3
1.1.1 Servlet与JSP组件简介 4
1.1.2 JavaBean在Java Web组件的应用 5
1.1.3 Web组件的3种关系 8
1.1.4 自定义标签与JSTL标签库 11
1.1.5 JSF技术简介 12
1.1.6 XML简介 16
1.2 MVC设计模式 16
1.2.1 理解MVC 16
1.2.2 MVC的实现模式 17
1.3 Struts设计模式 18
1.3.1 Struts实现MVC的机制 18
1.3.2 Struts工作流程 19
1.3.3 Struts的基本组件包 20
1.3.4 在Struts中与视图组件相关的标签 21
第2章 Struts开发环境的搭建与应用 22
2.1 需要提前安装的技术平台 22
2.1.1 JDK 1.5的安装与配置 22
2.1.2 Tomcat 5.5的安装 25
2.2 Struts开发环境安装 27
2.2.1 下载Struts类库 27
2.2.2 Tomcat服务器下安装Struts类库 27
2.3 Java开发工具搭建Struts环境 28
2.3.1 MyEclipse 5.0搭建Struts开发环境 28
2.3.2 JBuider 2006搭建Struts开发环境 33
2.4 Struts实现数据库系统的操作 41
2.4.1 Struts在SQL Server数据库下的操作 41
2.4.2 Struts在MySQL数据库下的操作 44
第3章 解析Struts配置文件 46
3.1 解析web.xml配置元素 46
3.1.1 ActionServlet类的配置元素 46
3.1.2 请求ActionServlet类的配置元素 47
3.1.3 部署Struts标签库路径的配置元素 48
3.1.4 其他常用元素的配置 48
3.1.5 Struts中web.xml文件中完整代码 49
3.2 解析struts-config.xml 51
3.2.1 数据源的配置元素 51
3.2.2 ActionForm类的配置元素 53
3.2.3 动态ActionForm的配置元素 55
3.2.4 异常的配置元素 58
3.2.5 全局转发的配置元素 61
3.2.6 Action类的配置元素 62
3.2.7 自定义控制器的配置元素 64
3.2.8 资源文件的配置元素 64
3.2.9 插件的配置元素 66
3.2.10 完整的struts-config.xml文件 67
第4章 控制器组件 69
4.1 控制器组件的流程机制 69
4.1.1 ActionServlet类 70
4.1.2 RequestProcessor类 71
4.1.3 Action类 74
4.1.4 ActionMapping类 76
4.1.5 ActionForward类 77
4.2 使用Struts内置的Action类 79
4.2.1 页面请求转发类 79
4.2.2 多个业务操作的类 83
4.2.3 SwitchAction类访问其他模块 87
4.3 Token令牌组件 89
4.3.1 Token令牌组件的原理 89
4.3.2 Token令牌组件的作用 89
4.3.3 Token相关的方法 90
4.3.4 其他代码说明 90
第5章 模型组件 94
5.1 在MVC设计模式中的模型 94
5.2 理解模型 95
5.2.1 模型的基本概念 95
5.2.2 概念模型 95
5.2.3 设计模型 96
5.3 业务逻辑层 97
5.3.1 业务逻辑层的简述 97
5.3.2 B/S多层体系结构 97
5.3.3 业务逻辑层在B/S多层体系结构中的作用 97
5.4 业务对象 98
5.4.1 业务对象的特征 98
5.4.2 业务对象的类型 98
5.4.3 业务对象的优点 99
5.4.4 业务逻辑实现代码 99
5.5 数据持久化层 101
5.5.1 数据持久化 101
5.5.2 数据访问对象 101
5.5.3 对象关系映射模式 106
第6章 视图组件 108
6.1 视图概述 108
6.2 Struts与视图 109
6.3 在视图中使用ActionForm类 109
6.4 ActionForm实践 110
6.4.1 创建ActionForm类 110
6.4.2 配置ActionForm类 111
6.4.3 访问ActionForm类 112
6.5 ActionForm类的使用技巧 113
6.5.1 ActionForm类与模型之间的关系 113
6.5.2 将ActionForm类的属性声明为String类型 113
6.5.3 实现跨页表单 113
6.6 视图组件本地化及国际化应用 119
6.6.1 国际化和本地化 119
6.6.2 Resource资源包 120
6.6.3 国际化方式 121
第2篇 Struts标签库应用
第7章 HTML标签库 127
7.1 HTML标签库的使用 127
7.2 页面初始化标签 128
7.2.1 html:html标签 128
7.2.2 html:base标签 128
7.3 创建页面链接的html:link标签 129
7.3.1 通过html:link标签链接到页面中的指定位置 129
7.3.2 使用html:link标签创建页面链接 130
7.3.3 使用html:link标签创建的链接传递参数 131
7.4 表单与基本表单元素标签 132
7.4.1 html:form表单标签 132
7.4.2 html:text文本域输入标签 133
7.4.3 html:password密码输入标签 134
7.4.4 html:textarea多行多列文本输入标签 134
7.4.5 html:hidden隐藏的文本域输入标签 134
7.4.6 html:submit提交按钮标签和html:reset复位按钮标签 134
7.4.7 html:cancel取消请求标签 138
7.5 下拉列表框标签 138
7.5.1 html:select标签 138
7.5.2 html:option标签 140
7.5.3 html:options标签 141
7.5.4 html:optionsCollection标签 146
7.6 单选按钮和检查框标签 148
7.6.1 html:radio单选按钮标签 148
7.6.2 html:checkbox检查框标签 149
7.6.3 html:multibox数组检查框标签 150
7.7 图片标签 153
7.7.1 html:img标签 153
7.7.2 html:image标签 153
7.8 文件上传标签html:file 156
7.9 errors和messages标签 159
7.9.1 html:errors标签 159
7.9.2 html:messages标签 163
第8章 Bean标签库 165
8.1 Bean标签库的使用 165
8.2 将指定对象定义为变量的标签 166
8.2.1 bean:define:定义指定对象为变量的标签 166
8.2.2 bean:cookie:定义Cookie信息为变量的标签 167
8.2.3 bean:header:定义HTTP请求中的标头信息为变量的标签 168
8.2.4 bean:parameter:定义请求中的参数为变量的标签 169
8.2.5 bean:page:定义JSP隐含对象为变量的标签 170
8.2.6 bean:size:将数组或集合大小定义为变量的标签 171
8.3 输出消息或Bean的属性值的标签 172
8.3.1 bean:message:输出资源文件中消息的标签 172
8.3.2 bean:write:输出指定对象的值的标签 174
8.4 获取Web应用资源的标签 175
8.4.1 bean:resource标签 175
8.4.2 bean:include标签 175
8.4.3 bean:struts标签 176
第9章 Logic标签库 178
9.1 Logic标签库的使用 178
9.2 条件判断标签 179
9.2.1 进行比较运算的标签 179
9.2.2 判断指定内容是否存在或为空的标签 181
9.3 字符串匹配的标签 188
9.4 进行循环遍历的标签logic:iterate 189
9.4.1 遍历由collection属性指定的集合 190
9.4.2 遍历由name属性指定的集合 192
9.5 流程控制标签 194
9.5.1 logic:redirect标签 194
9.5.2 logic:forward标签 194
第10章 Nested标签库 196
10.1 Nested标签库的使用 196
10.2 Nested标签库与其他标签库的关系 197
10.3 nested:nest标签的应用 198
10.4 nested:writeNesting标签的应用 199
10.5 nested:root标签的应用 200
第11章 Tiles标签库 205
11.1 通过include元素实现复合视图 205
11.2 通过tiles:insert标签实现复合式网页 208
11.3 简单Tiles模板实现复合视图 210
11.3.1 Tiles模板概述 210
11.3.2 tiles:insert标签 210
11.3.3 tiles:put标签 211
11.3.4 tiles:putList和tiles:add标签 212
11.3.5 tiles:useAttribute标签 213
11.4 基于XML文件与Tiles模板实现复合式网页 215
11.4.1 Tiles模板文件的描述 215
11.4.2 在Struts中使用Tiles模板描述文件 216
11.5 通过Struts中Action类来调用Tiles模板 218
11.6 Tiles模板扩展应用 220
第3篇 Struts典型实例
第12章 在线投票 227
12.1 实例运行结果 228
12.2 设计与分析 228
12.2.1 系统分析 228
12.2.2 工作流程图 228
12.2.3 类的分布 229
12.2.4 Web文件及文件夹架构 229
12.3 技术要点 229
12.4 开发过程 230
12.4.1 数据表结构 230
12.4.2 模型组件的实现 230
12.4.3 控制器组件的实现 233
12.4.4 配置XML文件 234
12.4.5 视图组件的实现 235
12.5 调试、发布与运行 238
12.5.1 调试 238
12.5.2 发布与运行 239
第13章 网站计数器 240
13.1 实例运行结果 241
13.2 设计与分析 241
13.2.1 系统分析 241
13.2.2 系统流程图 241
13.2.3 类的分布 241
13.2.4 web文件及文件夹架构 242
13.3 技术要点 242
13.4 开发过程 242
13.4.1 数据表结构 242
13.4.2 模型组件的实现 243
13.4.3 控制器组件的实现 247
13.4.4 配置XML文件 250
13.4.5 注册页面的实现 250
13.4.6 用户登录 251
13.4.7 显示用户登录及注册信息结果的页 251
15.4.8 显示用户信息 252
13.4.9 安全退出 253
13.5 调试、发布与运行 253
13.5.1 调试 253
13.5.2 发布与运行 254
第14章 统计网站流量图 255
14.1 实例运行结果 256
14.2 设计与分析 256
14.2.1 系统分析 256
14.2.2 工作流程图 256
14.2.3 类的分布 256
14.2.4 web文件及文件夹架构 257
14.4 技术要点 257
14.4.1 Graphics2D对象的属性 257
14.4.2 Graphics2D类的基本方法 258
14.5 开发过程 258
14.5.1 数据表结构 258
14.5.2 模型组件的实现 259
14.5.3 控制器组件的实现 263
14.5.4 配置XML文件 263
14.5.5 视图组件的实现 264
14.6 调试、发布与运行 266
14.6.1 调试 266
14.6.2 发布与运行 266
第15章 分页数据查询 267
15.1 实例运行结果 268
15.2 设计与分析 268
15.2.1 系统分析 268
15.2.2 工作流程图 268
15.2.3 类的分布 269
15.2.4 web文件及文件夹架构 269
15.3 技术要点 269
15.3.1 List类 269
15.3.2 ArrayList类 269
15.3.3 LinkedList类 269
15.4 开发过程 270
15.4.1 数据表结构 270
15.4.2 模型组件的实现 270
15.4.3 控制器组件的实现 272
15.4.4 配置XML文件 273
15.4.5 视图组件的实现 273
15.5 调试、发布与运行 276
15.5.1 调试 276
15.5.2 发布与运行 276
第16章 留言簿 277
16.1 实例运行结果 278
16.2 设计与分析 278
16.2.1 设计分析 278
16.2.2 工作流程图 278
16.2.3 类的分布 279
16.2.4 web文件及文件夹架构 279
16.3 技术要点 280
16.3.1 应用DispatchAction类的必要 280
16.3.2 DispatchAction类创建 280
16.3.3 DispatchAction类配置 280
16.4 开发过程 280
16.4.1 数据表结构 280
16.4.2 模型组件的实现 281
16.4.3 控制器组件的实现 285
16.4.4 配置XML文件 288
16.4.5 查看留言回复 289
16.4.6 发表留言 290
16.4.7 回复留言 291
16.5 调试、发布与运行 291
16.5.1 调试 291
16.5.2 发布与运行 292
第17章 权限管理 293
17.1 实例运行结果 294
17.2 设计与分析 294
17.2.1 系统分析 294
17.2.2 工作流程图 294
17.2.3 类的分布 295
17.2.4 web文件及文件夹架构 295
17.3 技术要点 295
17.3.1 PreparedStatement类的基本用法 296
17.3.2 PreparedStatement类的流程说明 296
17.3.3 PreparedStatement类的方法说明 296
17.4 开发过程 297
17.4.1 数据表结构 297
17.4.2 模型组件的实现 298
17.4.3 控制器组件的实现 303
17.4.4 配置XML文件 306
17.4.5 新用户注册 306
17.4.6 权限的管理 307
17.4.7 用户管理页面 311
17.5 调试、发布与运行 311
17.5.1 调试 311
17.5.2 发布与运行 312
第18章 Struts实现图片的上传与下载 313
18.1 实例运行结果 314
18.2 设计与分析 314
18.2.1 设计分析 314
18.2.2 功能流程图 314
18.2.3 类的分布 314
18.2.4 web文件及文件夹架构 315
18.3 技术要点 315
18.4 开发过程 315
18.4.1 数据表结构 315
18.4.2 模型组件的实现 316
18.4.3 控制器组件的实现 318
18.4.4 视图组件的实现 320
18.4.5 配置XML文件 322
18.5 发布与运行 322
第19章 Validator验证框架 323
19.1 实例运行结果 324
19.2 设计与分析 324
19.2.1 系统分析 324
19.2.2 工作流程图 324
19.2.3 类的分布 325
19.2.4 web文件及文件夹架构 325
19.3 技术要点 325
19.3.1 validator-rules.xml文件 325
19.3.2 valiation.xml文件 326
19.4 开发过程 327
19.4.1 模型组件UserForm类的实现 327
19.4.2 控制器组件CheckUserAction类的实现 328
19.4.3 配置ApplicationResources资源文件 328
19.4.4 配置XML文件 329
19.4.5 视图组件的实现 331
19.5 调试、发布与运行 333
19.5.1 调试 333
19.5.2 发布与运行 333
第4篇 Struts典型案例
第20章 基于Struts开发的网上企业办公自动化 337
20.1 需求分析 338
20.1.1 项目规划 338
20.1.2 系统功能结构图 338
20.2 数据库设计 339
20.2.1 数据表概要说明 339
20.2.2 数据表的结构 339
20.3 前期准备 344
20.3.1 配置应用Struts结构文件及数据库连接文件 344
20.3.2 配置web.xml文件 344
20.3.3 配置Struts标签库文件 345
20.4 网站总体设计 346
20.4.1 系统架构设计 346
20.4.2 类的分布架构设计 347
20.4.3 文件架构设计 348
20.4.4 网站首页运行效果图 348
20.5 公共类的编写 350
20.5.1 数据库的连接及操作方法类:DB 350
20.5.2 数据表信息类:Content 352
20.5.3 分页类:Page 352
20.5.4 类型转换类:Change 354
20.5.5 检查用户权限类:CheckUserAble 355
20.5.6 解决Struts中的中文乱码的类:FormToChinese 356
20.5.7 检查用户是否已经在线的公共类 356
20.6 登录模块 358
20.7 自定义标签的开发 365
20.7.1 如何开发及使用自定义标签 365
20.7.2 本例中office自定义标签的开发过程 366
20.8 收/发文管理模块 369
20.8.1 建立发文子模块 369
20.8.2 浏览发文子模块 372
20.8.3 删除发文子模块 379
20.9 会议管理模块 380
20.9.1 查看会议记录子模块 380
20.9.2 添加会议记录子模块 383
20.9.3 浏览会议的详细内容 384
20.9.4 删除会议子模块 386
20.10 公告管理模块 387
20.11 人力资源管理模块 390
20.11.1 浏览员工信息模块中的查询功能 391
20.11.2 个人信息子模块 393
20.12 文档管理 393
20.12.1 浏览文件详细内容 393
20.12.2 删除文件子模块 394
20.12.3 文件上传子模块 397
20.12.4 文件下载子模块 399
20.13 退出模块 401
20.14 疑难解答 402
第21章 基于Struts与IBatis开发的图书管理系统 403
21.1 需求分析 404
21.2 系统设计 404
21.2.1 项目规划 404
21.2.2 系统功能结构图 405
21.3 数据库设计 405
21.3.1 数据表概要说明 405
21.3.2 数据表关系概要说明 405
21.3.3 主要数据表的结构 406
21.4 网站总体设计 409
21.4.1 系统架构设计 409
21.4.2 类的分布架构设计 409
21.5 公共类的编写 410
21.5.1 中文字符转换类 410
21.5.2 对系统时间操作类 410
21.5.3 取得自动编号操作类 411
21.5.4 自动转码类 412
21.6 IBatis设计模式的介绍 412
21.6.1 IBatis设计模式的组成 412
21.6.2 构建IBatis设计模式的SQL Map配置代码 413
21.7 配置Struts 415
21.8 ActionForm类的编写及配置 417
21.8.1 管理员信息ActionForm类的代码 417
21.8.2 图书信息操作的ActionForm类 418
21.8.3 图书借阅信息操作的ActionForm类 418
21.9 对数据表操作持久类的编写 419
21.9.1 IBatis设计模式的SQL Map映射文件 419
21.9.2 IBatis基本组件 420
21.9.3 管理员信息表的操作 420
21.9.4 图书信息表的操作 426
21.9.5 图书借阅信息表的操作 429
21.10 图书管理系统总体架构 432
21.10.1 图书管理系统文件架构设计 432
21.10.2 图书管理系统首页设计 433
21.11 管理员功能模块 434
21.11.1 模块功能介绍 434
21.11.2 创建管理员的Action实现类 434
21.11.3 系统登录设计 434
21.11.4 PaginatedList类实现分页显示管理员列表 437
21.11.5 添加管理员信息 441
21.11.6 设置管理员权限 443
21.11.7 删除管理员信息 445
21.12 图书管理功能模块 446
21.12.1 图书管理功能模块 446
21.12.2 创建图书的Action实现类 446
21.12.3 查看图书信息列表 447
21.12.4 添加图书信息 448
21.12.5 修改图书信息 451
21.12.6 删除图书信息 452
21.13 图书借还管理功能模块 453
21.13.1 图书借还功能模块 453
21.13.2 创建图书借阅的Action实现类 453
21.13.3 图书借阅 454
21.13.4 图书归还 458
21.14 疑难问题分析与解决 459
21.4.1 映射对数据表操作的XML文件的路径错误 460
21.4.2 映射属性的错误操作 461
第22章 基于Seruts与Hibernate开发的新闻网络中心 462
22.1 需求分析 462
22.2 系统设计 463
22.3 数据库设计 464
22.3.1 数据表概要说明 464
22.3.2 数据表关系概要说明 464
22.3.3 主要数据表的结构 464
22.4 网站总体设计 465
22.4.1 系统架构设计 465
22.4.2 类的分布架构设计 466
22.5 公共类的编写 467
22.5.1 中文字符转换类 467
22.5.2 获取系统时间类 467
22.6 Hibernate数据库配置文件 468
22.7 ActionForm类的编写及配置 469
22.7.1 公告信息属性配置 470
22.7.2 后台管理员信息属性配置 471
22.7.3 新闻类别属性配置 472
22.7.4 新闻信息属性配置 472
22.8 对数据表操作持久类的编写 473
22.8.1 公告信息表操作的类 473
22.8.2 后台管理员表的类 477
22.8.3 新闻类别表操作的类 480
22.8.4 新闻表操作的类 482
22.9 网站后台主要功能设计 484
22.9.1 网站后台文件架构设计 484
22.9.2 网站后台首页设计 485
22.9.3 对新闻类别操作的设计 485
22.9.4 对新闻设计操作的设计 493
22.9.5 对公告信息设计 500
22.9.6 对后台管理员设计 502
22.10 网站前台主要功能设计 505
22.10.1 网站后台文件架构设计 505
22.10.2 前台首页设计 505
22.10.3 新闻展示设计 507
22.10.4 公告信息展示设计 510
22.10.5 辅助功能设计 512