第1章 Struts简介 1
1.1 Struts概述 1
1.2 MVC设计模式 2
1.2.1 Model 2的出现 3
1.2.2 应用层—表示层之间的去耦合 3
1.2.3 Struts与MVC 4
1.3 Struts的获取 5
1.3.1 Struts包简介 5
1.3.2 Struts的运行环境 6
1.4 运行Struts样例程序 7
1.4.1 部署struts-blank样例 7
1.4.2 部署struts-cookbook包 7
1.4.3 部署struts-el-example包 8
1.4.4 部署struts-examples包 9
1.4.5 部署struts-faces-example 1包 9
1.4.6 部署struts-faces-example 2包 10
1.4.7 部署struts-mailreader包 10
1.4.8 部署struts-scripting-mailreader包 10
1.5 实例讲解——搭建使用Struts的开发环境 11
小结 14
习题 15
第2章 Struts入门 16
2.1 编写Action 16
2.2 编写第一个页面 19
2.2.1 设置文件的编码格式 19
2.2.2 对国际化的支持 20
2.2.3 编写JSP页面 22
2.3 配置Action和Forward 23
2.3.1 配置web.xml文件 23
2.3.2 配置Struts的配置文件 24
2.4 编译、部署和测试Struts应用程序 25
2.5 Struts使用小结 29
2.6 实例讲解——电子商务后台登录程序 30
小结 35
习题 35
第3章 Struts框架结构 36
3.1 JSP开发模式 36
3.1.1 Model 1 36
3.1.2 Model 2 37
3.1.3 Model 2x 38
3.2 Struts结构 39
3.2.1 控制器(Controller) 40
3.2.2 模(Model) 40
3.2.3 视图(View) 40
3.3 Struts概述 40
3.3.1 ActionServlet类 41
3.3.2 Action类 41
3.3.3 ActionForm类 42
3.3.4 ActionMappings类 42
3.3.5 ActionMapping类 43
3.3.6 Error类 43
3.4 基于Struts进行开发 43
3.5 实例讲解——电子商务产品展示程序 44
小结 52
习题 52
第4章 使用Eclipse和MyEclipse开发Struts应用程序 53
4.1 Eclipse和MyEclipse简介 53
4.1.1 Eclipse简介 53
4.1.2 MyEclipse简介 55
4.2 安装与配置 56
4.3 开发步骤 57
4.3.1 创建Web项目 57
4.3.2 添加新的类库 59
4.3.3 添加Struts组件 59
4.3.4 编辑Struts配置文件 60
4.3.5 进行Struts开发 62
4.4 实例讲解——构建电子商务程序的开发环境 70
小结 73
习题 73
第5章 用户界面开发基础 75
5.1 用户界面开发模式 75
5.1.1 服务器页面 77
5.1.2 JSP 77
5.2 使用Struts开发JSP 78
5.2.1 HTML标记库 78
5.2.2 Bean标记库 83
5.3 数据分页显示 85
5.3.1 原理讲解 86
5.3.2 具体实现 86
5.4 表达式语言 92
5.4.1 表达式语言简介 92
5.4.2 变量的作用域 93
5.4.3 隐式对象 93
5.5 XML界面的输出 94
5.5.1 实现原理 95
5.5.2 开发方法 95
5.6 实例讲解——电子商务系统设计 97
小结 103
习题 103
第6章 使用多样性的Action 104
6.1 Action概述 104
6.2 分类Action 105
6.2.1 IncludeAction 105
6.2.2 ForwardAction 106
6.2.3 DispatchAction 107
6.3 文件上传和下载的实现 112
6.3.1 文件上传功能的实现 112
6.3.2 文件下载功能的实现 117
6.4 实例讲解——电子商务后台产品发布程序 118
小结 124
习题 124
第7章 Validator的使用 126
7.1 Validator框架概述 126
7.1.1 简介 127
7.1.2 安装和配置 127
7.2 使用Validator验证用户输入 129
7.2.1 修改ActionForm的父类 129
7.2.2 配置ActionForm 129
7.2.3 配置ActionForm中属性的验证规则 130
7.2.4 初始化资源信息 134
7.3 自定义验证规则 135
7.4 JavaScript和Validator 137
7.5 使用正则表达式进行验证 138
7.6 用Struts解决重复提交问题 139
7.6.1 Struts解决重复提交的原理 139
7.6.2 避免重复响应用户的实现 140
7.6.3 使用JavaScript解决用户重复提交的问题 144
7.7 实例讲解——电子商务前台用户注册流程 146
小结 151
习题 152
第8章 JSF的开发 153
8.1 JSF概述 153
8.1.1 JSF简介 153
8.1.2 JSF的获取和配置 154
8.2 JSF的导航开发 155
8.2.1 简单的例程 155
8.2.2 简单的导航 157
8.2.3 导航规则设置 159
8.3 JSF Expression Language 161
8.4 国际化信息 163
8.5 可管理的Bean 165
8.5.1 Backing Beans 165
8.5.2 Bean的配置与设定 166
8.5.3 Bean中的List和Map类型属性 168
8.6 事件驱动的界面开发 170
8.6.1 动作事件 170
8.6.2 即时事件 173
8.6.3 值变事件 174
8.6.4 Phase事件 176
8.7 实例讲解——利用JSF框架开发电子商务前台程序 178
小结 181
习题 181
第9章 Hibernate简介 182
9.1 持久化技术简介 182
9.1.1 软件体系架构简介 182
9.1.2 持久层技术方案 184
9.1.3 Java对象持久化 186
9.2 ORM概述 186
9.3 Hibernate概述 187
9.4 Hibernate的组成结构 188
9.4.1 Hibernate Core 188
9.4.2 Hibernate Tools 189
9.4.3 Hibernate Annotations 189
9.5 实例讲解——运行Hibernate样例程序 190
小结 193
习题 193
第10章 Hibernate入门 194
10.1 开发概述 194
10.1.1 第一个class 195
10.1.2 映射文件 198
10.1.3 Hibernate配置 200
10.1.4 用Maven构建 201
10.1.5 启动和辅助类 205
10.1.6 加载并存储对象 207
10.2 关联映射 211
10.2.1 映射Person类 211
10.2.2 单向Set-based的关联 213
10.2.3 使关联工作 214
10.2.4 值类型的集合 215
10.2.5 双向关联 216
10.2.6 使双向连起来 217
10.3 实例讲解——使用Hibernate重构电子商务持久层 218
小结 226
习题 227
第11章 Hibernate的体系结构 228
11.1 Hibernate的体系结构简介 228
11.1.1 体系架构概述 228
11.1.2 Hibernate核心组件 231
11.2 实例生命周期 231
11.2.1 Transient(瞬态) 231
11.2.2 Persistent(持久态) 232
11.2.3 Detached(脱管态) 233
11.3 API简介 234
11.3.1 Session接口 234
11.3.2 SessionFactory接口 237
11.3.3 Configuration类 237
11.3.4 Query接口 238
11.3.5 Criteria接口 238
11.3.6 Transaction接口 239
11.4 实例讲解——使用Hibernate开发产品搜索功能 240
小结 243
习题 243
第12章 Hibernate的映射技巧 244
12.1 手动配置映射文件 244
12.1.1 Doctype元素 244
12.1.2 〈hibernate-mapping〉元素 245
12.1.3 〈class〉元素 247
12.1.4 〈id〉元素 250
12.1.5 〈discriminator〉元素 252
12.1.6 〈version〉元素 253
12.1.7 〈timestamp〉元素 254
12.1.8 〈property〉元素 254
12.2 映射集合类 256
12.2.1 集合类的映射 256
12.2.2 集合外键 257
12.2.3 集合元素 258
12.2.4 索引集合类 258
12.2.5 值集合与多对多关联 259
12.2.6 一对多关联 260
12.3 实体对象关联关系映射 260
12.3.1 单向关联 261
12.3.2 使用连接表的单向关联 262
12.3.3 双向关联 264
12.3.4 使用连接表的双向关联 266
12.3.5 更复杂的关联映射 268
12.4 映射继承 269
12.4.1 每个具体类一张表 269
12.4.2 每个类分层结构一张表 271
12.4.3 每个子类一张表 272
12.5 实例讲解——电子商务中进行订单管理 273
小结 277
习题 277
第13章 Hibernate的事务处理、缓存及性能优化 278
13.1 事务处理 278
13.1.1 Hibernate中的事务处理 279
13.1.2 长对话 280
13.1.3 数据库的隔离级别 281
13.2 两级缓存概述 282
13.2.1 什么是缓存 282
13.2.2 Hibernate一级缓存 283
13.2.3 二级缓存 284
13.2.4 Hibernate查询方法与缓存的关系 290
13.3 性能优化 291
13.3.1 设计阶段的考虑问题 292
13.3.2 批量插入、更新和删除 292
13.4 实例讲解——电子商务客户管理的开发 294
小结 297
习题 297
第14章 Spring简介 298
14.1 简介 298
14.1.1 Spring特点 299
14.1.2 应用场景 300
14.2 什么是IoC 302
14.3 面向切面的编程方法 303
14.3.1 AOP概念 303
14.3.2 Spring AOP的功能和目标 305
14.3.3 AOP代理 305
14.4 Spring框架概述 306
14.5 实例讲解——在电子商务程序中加入Spring 307
小结 309
习题 309
第15章 Spring的核心技术 311
15.1 IoC容器和Bean 311
15.2 使用资源 314
15.2.1 Resource接口 315
15.2.2 Resource的实现 316
15.2.3 ResourceLoader接口 317
15.2.4 资源小结 318
15.3 数据绑定 318
15.3.1 BeanWrapper类 318
15.3.2 设置和获取属性值以及嵌套属性 319
15.3.3 内建的PropertyEditor实现 320
15.4 实例讲解——用Spring来管理电子商务系统中的订单 322
小结 325
习题 325
第16章 Spring的数据访问 326
16.1 与JDBC的整合 326
16.1.1 Spring JDBC简介 327
16.1.2 Spring JDBC核心包的使用 328
16.1.3 Spring JDBC数据源包 337
16.1.4 Spring JDBC对象包 337
16.2 与Hibernate的整合 338
16.2.1 利用Spring的IoC容器创建SessionFactory 339
16.2.2 DAO的开发 342
16.2.3 Hibernate的事务管理 344
16.2.4 OpenSessionInView模式 346
16.3 事务控制 347
16.3.1 事务管理的框架 347
16.3.2 声明式事务管理 349
16.3.3 编程式事务管理 351
16.4 实例讲解——电子商务系统中业务逻辑层与数据层的整合 352
小结 356
习题 356
第17章 Spring MVC入门 357
17.1 MVC简介 357
17.2 脱离Struts的MVC框架 358
17.3 使用Spring MVC进行工作 359
17.3.1 Spring MVC简介 359
17.3.2 配置DispatcherServlet 360
17.3.3 创建自己的控制器 360
17.3.4 页面视图的实现 365
17.3.5 配置控制器的映射 368
17.4 实例讲解——构造新的电子商务程序表示层程序 373
小结 375
习题 375
第18章 Spring的Web集成 376
18.1 多视图输出 376
18.1.1 视图和视图解析器 376
18.1.2 准备集成 377
18.1.3 JSP和JSTL的使用 378
18.1.4 Excel文件的输出 379
18.1.5 PDF的输出 381
18.1.6 XSLT的使用 382
18.1.7 视图集成技术小结 384
18.2 Web框架集成 384
18.2.1 通用配置 384
18.2.2 Struts集成 385
18.3 实例讲解——导出电子商务应用系统的订单 388
小结 391
习题 391
参考文献 392