第1章 配置开发环境 1
1.1安装JDK 1
1.1.1获得JDK安装软件 1
1.1.2安装JDK 2
1.1.3检查JDK的安装结果 2
1.2 Eclipse初探 4
1.2.1Eclipse的发布版本 5
1.2.2安装和配置Eclipse 6
1.2.3运行Eclipse 6
1.2.4Eclipse集成环境概述 7
1.2.5使用Eclipse开发第一个Java程序 8
1.3Tomcat 12
1.3.1获得Tomcat 12
1.3.2安装和配置Tomcat 13
1.3.3启动Tomcat 13
1.3.4在Eclipse中配置Tomcat 14
1.4安装Oracle 16
1.5小结 19
第2章 Struts 2入门 20
2.1 Struts 2简介 20
2.1.1了解Struts 2 21
2.1.2获得Struts 2 23
2.1.3运行Struts 2的样例程序 25
2.2 Struts 2的第一个应用 26
2.2.1构建Hello World程序 26
2.2.2实现用户登录功能 37
2.3小结 44
第3章 深入Struts 2 45
3.1Struts 2的处理流程 45
3.2StrutsPrepareAndExecuteFilter 48
3.2.1StrutsPrepareAndExecuteFilter的作用 48
3.2.2StrutsPrepareAndExecuteFilter的配置 50
3.3 Struts 2的配置文件 51
3.3.1 package元素 54
3.3.2 include元素 55
3.3.3 bean元素 56
3.3.4 constant元素 60
3.4 Struts 2中常量的配置 60
3.4.1 Struts 2中常量配置的优先级 60
3.4.2 Struts 2中常量的配置方法 61
3.4.3 Struts 2中的可配置参数 62
3.5 Struts 2中的ValueStack 67
3.5.1OGNL 67
3.5.2OgnlValueStack的基本应用 77
3.6 Struts 2中的类型转换 84
3.6.1转换器的定义 85
3.6.2Struts 2中的类型转换机制 86
3.6.3转换器的注册 86
3.6.4Struts 2所提供的类型转换器 96
3.6.5Struts 2对Collection和 Map的类型转换 97
3.6.6为集合对象建立索引 101
3.6.7类型转换中的错误处理 101
3.7小结 103
第4章 Struts 2的视图核心技术 104
4.1 Stuts 2的标签库 104
4.1.1 Struts 2标签库概述 104
4.1.2 Struts 2标签的配置 105
4.1.3 Struts 2标签的语法 106
4.1.4 Struts 2标签的功能 109
4.2 Struts 2的主题和模板 136
4.2.1 Struts 2的主题 136
4.2.2 Struts 2的模板 139
4.3 Ajax在Struts 2中的应用 141
4.3.1 Ajax的核心技术 142
4.3.2 Struts 2对于Ajax的支持 153
4.4小结 157
第5章 Struts 2的后台核心技术 158
5.1 Action的开发 158
5.1.1 Action介绍 158
5.1.2 Action的基本开发技巧 162
5.2 Action的配置 167
5.2.1 Action的基本配置 167
5.2.2 Action的高级配置 172
5.3 Struts 2中的拦截器 174
5.3.1Struts 2所提供的拦截器 175
5.3.2拦截器的配置 177
5.3.3使用自己的拦截器 180
5.3.4拦截器的使用技巧 180
5.4 Action的处理结果 181
5.4.1 Struts 2所提供的处理结果 182
5.4.2扩展的处理结果 186
5.4.3处理结果的定义 186
5.4.4定义自己的处理结果 187
5.4.5处理结果的使用技巧 192
5.5小结 193
第6章 Struts 2的其他核心技术 194
6.1文件的上传和下载 194
6.1.1文件的上传 194
6.1.2文件的下载 203
6.2 Struts 2的国际化 207
6.2.1资源文件概述 208
6.2.2资源文件的使用 209
6.2.3 Struts 2中的多语言 210
6.2.4如何实现用户语言的切换 213
6.3 Struts 2的输入校验 214
6.3.1输入校验的方法 215
6.3.2Struts 2的内建校验器 216
6.3.3校验器的注册 217
6.3.4校验规则的定义 218
6.4 Struts 2的扩展 224
6.5小结 224
第7章 Hibernate简介 225
7.1持久化技术 225
7.2持久层技术 225
7.3持久层技术的实现 228
7.4ORM概述 230
7.5Hibernate简介 230
7.6获得Hibernate 231
7.6.1 Hibernate Core 231
7.6.2 Hibernate Shards 232
7.6.3 Hibernate Search 232
7.6.4 Hibernate Tools 23
7.6.5 Hibernate Metamodel Generator 23
7.7 Hibernate Core软件包的组成 23
7.8小结 234
第8章 Hibernate入门 235
8.1项目的体系结构 235
8.2项目开发概述 236
8.2.1功能介绍 237
8.2.2应用的主要技术 239
8.2.3开发步骤和方法 240
8.3开发博客管理系统 240
8.3.1创建一个新项目 241
8.3.2分析和建模 241
8.3.3实现域模型 245
8.3.4编写数据库脚本 257
8.3.5定义映射文件 259
8.3.6编写Hibernate的配置文件 262
8.3.7Hibernate工具类的实现 269
8.3.8Hibernate Filter的实现 280
8.3.9定义和实现系统的异常 285
8.3.10定义和实现DAO 287
8.3.11完成用户注册和登录功能 317
8.3.12博客管理功能的实现 328
8.3.13博客主页的实现 340
8.4小结 347
第9章 深入Hibernate 348
9.1 Hibernate的体系结构 348
9.1.1 Hibernate在应用程序中的位置 348
9.1.2 Hibernate运行时的体系结构 349
9.2 Hibernate实体对象的生命周期 351
9.2.1 Transient(瞬态) 351
9.2.2 Persistent(持久态) 352
9.2.3 Detached(游离态) 353
9.2.4实体对象的状态转换 354
9.3 Hibernate API简介 361
9.3.1 Configuration类 361
9.3.2 SessionFactory接口 362
9.3.3 Session接口 362
9.3.4 Transaction接口 367
9.3.5 Query接口 368
9.3.6 Criteria接口 377
9.4小结 381
第10章 Hibernate映射技巧 382
10.1映射文件的配置 382
10.1.1 <hibemate-mapping> 382
10.1.2 <class> 384
10.1.3 <id> 387
10.1.4 <property> 389
10.2集合类的映射 391
10.2.1Java的集合类 391
10.2.2集合类的使用 395
10.3实体对象关联关系的映射 399
10.3.1一对一关联关系的映射 400
10.3.2一对多关联关系的映射 404
10.3.3多对一关联关系的映射 405
10.3.4多对多关联关系的映射 405
10.4实体对象继承的映射 407
10.4.1每个具体类一张表 407
10.4.2每个类分层结构一张表 410
10.4.3每个子类一张表 411
10.4.4对象继承的映射方法总结 413
10.5映射中的inverse和cascade 414
10.5.1inverse属性 414
10.5.2cascade属性 417
10.5.3inverse与cascade的区别 418
10.6小结 418
第11章 Hibernate高级技巧 419
11.1 Hibernate的事务处理 419
11.1.1事务的基本概念 419
11.1.2数据库的隔离级别 420
11.1.3Hibernate中的事务处理 421
11.1.4并发控制 422
11.2 Hibernate的缓存 430
11.2.1什么是缓存 430
11.2.2一级缓存 430
11.2.3二级缓存 431
11.2.4Hibernate查询方法与缓存的关系 439
11.3Hibernate的性能优化 440
11.3.1设计阶段考虑的问题 440
11.3.2批量插入、更新和删除数据 441
11.3.3提升数据库查询的性能 443
11.4小结 446
第12章Spring简介 447
12.1 Spring简介 447
12.1.1容器 447
12.1.2何谓“轻量级” 448
12.1.3轻量级容器的现状 449
12.2控制反转 449
12.3依赖注入 450
12.4面向切面的编程 451
12.5Spring框架简介 453
12.6获得Spring 455
12.7小结 455
第13章 Spring的核心技术 456
13.1 IoC容器 456
13.1.1 IoC容器和Bean 456
13.1.2 Bean的基本配置 462
13.1.3 Bean的其他特性 484
13.2资源 489
13.2.1 Resource接口 490
13.2.2 Resource的实现 490
13.2.3 ResourceLoader接口 491
13.2.4资源小结 492
13.3数据绑定功能 492
13.3.1数据绑定对象 492
13.3.2数据绑定中的类型转换 496
13.3.3实现自定义的PropertyEditor 497
13.3.4数据绑定功能小结 501
13.4面向切面的编程 501
13.4.1AOP的思想和本质 501
13.4.2AOP的基本概念 502
13.4.3Spring AOP的功能 503
13.4.4基于配置的AOP 504
13.4.5基于@AspectJ的AOP 511
13.5小结 517
第14章 基于Spring的数据访问 518
14.1事务管理 518
14.1.1事务管理的框架 518
14.1.2声明式事务管理 520
14.1.3注解式事务管理 522
14.2使用JDBC访问数据库 523
14.2.1 Spring JDBC简介 524
14.2.2 Spring JDBC核心包的使用 524
14.2.3 Spring JDBC数据源包 532
14.2.4 Spring JDBC对象包 532
14.2.5 Spring JDBC支持包 532
14.3使用Hibernate访问数据库 534
14.3.1Hibernate数据库访问流程 534
14.3.2利用Spring的IoC容器创建SessionFacto 535
14.3.3DAO的开发 538
14.3.4Hibernate的事务管理 540
14.3.5OpenSessionInView模式 541
14.4小结 542
第15章 Spring MVC入门 543
15.1简介 543
15.2构建项目 543
15.3使用Spring的MVC 544
15.3.1Spring MVC简介 545
15.3.2配置DispatcherServlet 546
15.3.3创建自己的控制器 547
15.3.4页面视图的实现 548
15.3.5配置控制器的映射 549
15.3.6增加业务逻辑 552
15.3.7增加前台提交数据的处理功能 559
15.3.8数据保存功能的实现 575
15.4小结 581
第16章 Spring的Web集成 582
16.1视图集成技术 582
16.1.1视图和视图解析器 582
16.1.2集成前的准备工作 582
16.1.3JSP和JSTL的使用 585
16.1.4XSLT的使用 586
16.1.5PDF的输出 588
16.1.6Excel文件的输出 590
16.1.7视图集成技术小结 592
16.2 Web框架集成技术 592
16.2.1通用配置 592
16.2.2Struts 2.x集成 593
16.3小结 594
第17章 使用Struts 2+Spring+Hibernate架构开发订货系统 595
17.1Web应用的体系结构 596
17.1.1表示层 596
17.1.2持久层 597
17.1.3业务层 597
17.1.4域模型层 598
17.2项目初始化 598
17.3开发订货系统 599
17.3.1域模型层的开发 599
17.3.2持久层的配置 603
17.3.3业务层的开发和配置 605
17.3.4UI层的实现 615
17.4小结 629