第1章 Java EE运行及开发环境 1
1.1案例场景 2
1.1.1创建问候程序 2
1.1.2我们现在能做的 2
1.2 JDK的下载、安装及设置 3
1.2.1 JDK的下载与安装 3
1.2.2 JDK环境变量的配置 6
1.3 Tomcat的下载、安装及设置 7
1.3.1 Tomcat的下载与安装 7
1.3.2 Tomcat的基本配置 9
1.3.3 Tomcat服务器页面 10
1.3.4 Tomcat的数据源配置 11
1.4 Eclipse的下载、安装及设置 12
1.4.1 Eclipse的下载与安装 12
1.4.2熟悉Eclipse开发环境 12
1.5开发第一个Java EE应用:HelloWorld 15
1.5.1开始创建第一个Java EE应用:HelloWorld 15
1.5.2熟悉HelloWorld应用框架 15
1.6回到案例场景 18
1.6.1基本思路 18
1.6.2代码演练 20
1.7本章小结与习题 20
1.7.1重点回顾 20
1.7.2课后练习 20
第2章 JSP和Servlet 21
2.1案例场景 22
2.1.1图书馆管理系统应用——读者登录模块 22
2.1.2我们现在能做的 23
2.2开发第一个JSP+Servlet应用 23
2.2.1创建工程 24
2.2.2编码 24
2.2.3部署 26
2.3认识JSP 26
2.3.1 JSP的工作原理 27
2.3.2 JSP注释 27
2.3.3 JSP声明 28
2.3.4 JSP表达式 29
2.3.5 JSP的3个编译指令 30
2.3.6 JSP的7个动作指令 31
2.3.7 JSP的9个内置对象 32
2.4认识Servlet 35
2.4.1 Servlet的开发 35
2.4.2 Servlet的配置 36
2.4.3 Servlet的生命周期 37
2.4.4使用Servlet作为控制器 37
2.4.5 load-on-startup Servlet 38
2.4.6自定义标签库 39
2.4.7预处理用户请求:Filter 41
2.4.8使用Listener 43
2.5回到案例场景 45
2.5.1基本思路 45
2.5.2代码演练 45
2.6本章小结与习题 48
2.6.1重点回顾 48
2.6.2课后练习 48
第3章 SQL与JDBC 49
3.1案例场景 50
3.1.1图书馆管理系统应用——增加读者模块 50
3.1.2我们现在能做的 50
3.2 SQL 52
3.2.1 SQL概述 52
3.2.2数据操纵语言 52
3.2.3使用SQL 53
3.3 JDBC 56
3.3.1 JDBC概述 56
3.3.2 JDBC驱动程序 56
3.3.3使用JDBC读取数据 57
3.4回到案例场景 62
3.4.1基本思路 62
3.4.2代码演练 62
3.5本章小结与习题 66
3.5.1重点回顾 66
3.5.2课后练习 66
第4章 Struts框架入门 67
4.1案例场景 68
4.1.1创建Struts问候程序 68
4.1.2我们现在能做的 68
4.2 MVC框架 70
4.2.1熟悉模型1与模型2 71
4.2.2 MVC设计模式 71
4.3 Struts基础 72
4.3.1 Struts的起源 73
4.3.2 Struts的体系结构 73
4.3.3 Struts的下载与安装 74
4.4认识Struts的核心组件 74
4.4.1 Struts的工作原理 74
4.4.2视图组件 75
4.4.3模型组件 76
4.4.4控制器组件 76
4.4.5 struts-config.xml和web.xml 77
4.5创建Struts问候程序 78
4.5.1执行流程 78
4.5.2 JSP的实现 79
4.5.3 MessageResources和Application.properties文件 80
4.5.4 ActionForm对象 80
4.5.5数据校验 81
4.5.6创建模型组件 81
4.5.7 Action对象 81
4.5.8创建常量文件 82
4.5.9配置webxml和struts-config.xml文件 83
4.5.10发布与执行问候程序 83
4.6回到案例场景 84
4.6.1基本思路 84
4.6.2代码演练 84
4.7本章小结与习题 87
4.7.1重点回顾 87
4.7.2课后练习 88
第5章 Struts进阶 89
5.1案例场景 90
5.1.1图书馆管理系统应用——改善读者登录模块 90
5.1.2我们现在能做的 91
5.2 Struts的配置 95
5.2.1配置ActionServlet 95
5.2.2配置ActionForm 96
5.2.3配置Action 97
5.2.4配置ActionMapping 98
5.2.5配置ActionForward 98
5.3 DispatchAction类 99
5.4 Struts国际化 100
5.4.1为什么需要国际化 100
5.4.2认识Struts国际化组件 100
5.4.3访问资源包的方式 102
5.5使用Struts标签库 102
5.5.1使用Struts标签的基本配置 103
5.5.2使用HTML标签库 104
5.5.3使用Bean标签库 105
5.5.4使用Logic标签库 105
5.6回到案例场景 106
5.6.1基本思路 106
5.6.2代码演练 107
5.7本章小结与习题 111
5.7.1重点回顾 112
5.7.2课后练习 112
第6章 Struts提高 113
6.1案例场景 114
6.1.1图书馆管理系统应用——读者信息注册模块 114
6.1.2我们现在能做的 115
6.2使用动态ActionForm 120
6.2.1 配置动态ActionForm 120
6.2.2在Action中访问动态ActionForm 120
6.3 Struts验证框架——Validator 121
6.3.1安装和配置Validator框架 121
6.3.2认识Validator框架和ActionForm 123
6.3.3创建第一个使用Validator框架的示例 124
6.3.4创建自定义验证规则 128
6.4 Tiles框架 129
6.4.1认识Tiles框架 129
6.4.2采用基本的JSP语句创建复合式网页 130
6.4.3采用JSP的include指令创建复合式网页 131
6.4.4采用<tiles:insert>标签创建复合式网页 133
6.4.5采用Tiles模板创建 133
复合式网页 133
6.5回到案例场景 135
6.5.1基本思路 135
6.5.2代码演练 135
6.6本章小结与习题 140
6.6.1重点回顾 140
6.6.2课后练习 140
第7章 初识Hibernate框架 141
7.1案例场景 142
7.1.1问候程序 142
7.1.2我们现在能做的 142
7.2认识ORM 146
7.2.1为什么需要ORM 146
7.2.2流行的ORM框架 146
7.3安装Hibernate 147
7.3.1下载与安装Hibernate 147
7.3.2 Hibernate发布包介绍 148
7.4认识Hibernate 149
7.4.1 Hibernate框架结构 149
7.4.2 Hibernate配置文件 149
7.4.3 Configuration与SessionFactory 151
7.4.4 Session类 151
7.4.5对象关联关系 152
7.4.6 Hibernate映射 152
7.4.7 Hibernate工作原理 154
7.5第一个Hibernate应用 154
7.5.1创建数据库 155
7.5.2配置环境 155
7.5.3配置数据库连接 156
7.5.4开发持久对象 156
7.5.5编写映射文件 156
7.5.6编写业务逻辑 157
7.5.7运行测试 158
7.5.8常见问题解决 159
7.6回到案例场景 159
7.6.1基本思路 159
7.6.2代码演练 160
7.7本章小结与习题 163
7.7.1重点回顾 163
7.7.2课后练习 163
第8章 Hibernate查询 165
8.1案例场景 166
8.1.1图书馆管理系统应用——图书信息检索模块 166
8.1.2我们现在能做的 167
8.2 Hibernate的数据检索策略 169
8.2.1立即检索 170
8.2.2延迟检索 171
8.2.3预先检索 172
8.2.4批量检索 173
8.3 Hibernate的数据查询方式 175
8.3.1 HQL方式 176
8.3.2 QBC方式 176
8.3.3原生SQL方式 177
8.4 Hibernate的关联查询 177
8.4.1一对一关联关系的使用 177
8.4.2一对多、多对一关系的使用 178
8.4.3多对多的使用 180
8.5 Hibernate过滤 182
8.5.1 Session过滤 182
8.5.2 Filter过滤 182
8.6回到案例场景 183
8.6.1基本思路 183
8.6.2代码演练 184
8.7本章小结与习题 188
8.7.1重点回顾 188
8.7.2课后练习 188
第9章 Hibernate性能优化 189
9.1案例场景 190
9.1.1图书馆管理系统应用——归还图书模块 190
9.1.2我们现在能做的 191
9.2 Hibernate事务与并发 196
9.2.1什么是事务与并发 196
9.2.2 Hibernate中的事务处理 196
9.2.3在Hibernate中使用JTA事务 198
9.2.4并发控制 199
9.3 Hibernate缓存 201
9.3.1缓存原理 201
9.3.2在Hibernate应用中使用一级缓存 201
9.3.3在Hibernate应用中使用二级缓存 202
9.3.4在Hibernate应用中使用第三方缓存 203
9.4回到案例场景 205
9.4.1基本思路 205
9.4.2代码演练 206
9.5本章小结与习题 211
9.5.1重点回顾 212
9.5.2课后练习 212
第10章 Spring框架入门 213
10.1案例场景 214
10.1.1问候程序 214
10.1.2我们现在能做的 214
10.2 Spring框架基础 216
10.2.1认识Spring框架 216
10.2.2 Spring框架特点 216
10.2.3 Spring框架核心架构 217
10.3建立Spring开发环境 218
10.3.1下载Spring框架 218
10.3.2 Spring发布包与软件包 219
10.3.3创建Spring应用环境 220
10.4 Bean的装配 221
10.4.1 Bean基本配置 221
10.4.2为Bean添加属性 222
10.4.3简化配置 223
10.5理解Spring的核心——IoC 224
10.5.1控制反转 224
10.5.2依赖注入的3种方式 225
10.6 BeanFactory与ApplicationContext 227
10.6.1认识BeanFactory 227
10.6.2使用ApplicationContext 228
10.7回到案例场景 229
10.7.1基本思路 229
10.7.2代码演练 230
10.8本章小结与习题 231
10.8.1重点回顾 231
10.8.2课后练习 231
第11章 Spring AOP 233
11.1案例场景 234
11.1.1图书馆管理系统应用——日志输出 234
11.1.2我们现在能做的 234
11.2 AOP基础 235
11.2.1 AOP与OOP 236
11.2.2 AOP的核心概念 236
11.2.3 Java动态代理与AOP 237
11.2.4 Spring AOP简介 239
11.3使用Spring的通知 240
11.3.1 BeforeAdvice 240
11.3.2 AfterReturningAdvice 241
11.3.3 MethodInterceptor 242
11.3.4 ThrowAdvice 243
11.4使用Spring的切入点 244
11.4.1静态切入点 244
11.4.2动态切入点 246
11.5 Spring AOP的代理工厂 246
11.5.1选择合适的代理 246
11.5.2 ProxyFactory 247
11.5.3 ProxyFactoryBean 247
11.6回到案例场景 249
11.6.1基本思路 249
11.6.2代码演练 250
11.7本章小结与习题 252
11.7.1重点回顾 252
11.7.2课后练习 252
第12章 Spring与Java EE持久化数据访问 253
12.1案例场景 254
12.1.1图书馆管理系统应用——删除管理员模块 254
12.1.2我们现在能做的 254
12.2 Spring对DAO模式的支持 260
12.2.1统一的数据访问异常 260
12.2.2通用的数据访问模板及抽象支持类 261
12.3 Spring的JDBC 262
12.3.1为什么需要JdbcTemplate 262
12.3.2通过JdbcDaoSupport使用JdbcTemplate 263
12.3.3 JdbcTemplate提供的常用数据操作方法 263
12.4 Spring中的事务处理 265
12.4.1对事务的理解 265
12.4.2 Spring事务处理概述 265
12.4.3编程式事务处理 266
12.4.4声明式事务处理 267
12.4.5标注式事务处理 268
12.5回到案例场景 269
12.5.1基本思路 269
12.5.2代码演练 272
12.6本章小结与习题 276
12.6.1重点回顾 276
12.6.2课后练习 276
第13章 Spring与Struts、Hibernate框架的整合基础 277
13.1案例场景 278
13.1.1图书馆管理系统应用——维护图书馆信息模块 278
13.1.2我们现在能做的 278
13.2 Spring与Struts整合的3种方式 279
13.2.1使用WebApplicationContext 279
13.2.2继承Spring的ActionSupport 280
13.2.3将Struts的Action托管给Spring 281
13.3 Spring和Hibernate的整合 282
13.3.1 Spring对Hibernate的支持 282
13.3.2管理SessionFactory 282
13.3.3 Hibernate的DAO实现 284
13.3.4使用HibernateTemplate 284
13.3.5管理Hibernate事务 285
13.4在Eclipse中构建SSH整合框架体系 286
13.5回到案例场景 293
13.5.1基本思路 293
13.5.2代码演练 294
13.6本章小结与习题 301
13.6.1重点回顾 301
13.6.2课后练习 301
第14章 AJAX与DWR 303
14.1案例场景 304
14.1.1图书馆管理系统应用——完善用户注册应用 304
14.1.2我们现在能做的 304
14.2创建第一个AJAX应用 305
14.2.1创建工程 305
14.2.2编码 306
14.2.3运行与测试 308
14.3 AJAX技术 308
14.3.1概述 309
14.3.2 AJAX构成 309
14.3.3理解第一个AJAX应用 310
14.4 DWR框架 313
14.4.1概述 313
14.4.2 DWR框架原理 313
14.4.3 DWR框架的下载与安装 313
14.4.4使用DWR框架 314
14.5回到案例场景 317
14.5.1基本思路 317
14.5.2代码演练 319
14.6本章小结与习题 324
14.6.1重点回顾 324
14.6.2课后练习 324
第15章 图书馆管理系统 325
15.1关于图书馆管理系统 326
15.2系统功能解析 326
15.2.1管理员登录与退出 327
15.2.2系统管理 329
15.2.3图书管理 330
15.2.4读者管理 331
15.2.5借还管理 333
15.2.6信息搜索 334
15.2.7读者登录与修改信息 335
15.2.8图书续借 336
15.3系统数据库设计 336
15.3.1数据库分析 336
15.3.2实体关系分析 339
15.3.3数据库实现 340
15.4系统框架搭建 345
15.4.1工程目录结构 345
15.4.2创建工程 346
15.5系统代码实现 347
15.5.1数据库连接的实现 348
15.5.2工具类的实现 349
15.5.3管理员登录与退出实现 353
15.5.4系统管理实现 361
15.5.5图书管理实现 372
15.5.6读者管理实现 394
15.5.7借还管理实现 413
15.5.8前台功能实现 424
15.6系统背后的思考 436
15.7本章小结 438
第16章 敏捷开发常用工具 439
16.1案例场景 440
16.1.1图书馆管理系统应用的扩充 440
16.1.2我们现在能做的 440
16.2 Ant 工具 442
16.2.1概述 442
16.2.2 Ant的安装 442
16.2.3使用Ant 443
16.2.4 Ant在项目中的应用 446
16.2.5在Eclipse中使用Ant 448
16.3 JUnit单元测试工具 450
16.3.1 JUnit的安装 451
16.3.2编写测试类 451
16.3.3在Eclipse中使用JUnit 453
16.4 CVS版本控制工具 456
16.4.1认识版本控制 456
16.4.2 CVS服务器的安装与配置 456
16.4.3在Eclipse中安装并配置CVS客户端 457
16.4.4多用户使用CVS常见问题及解决方案 462
16.5 Log4j日志工具 463
16.5.1认识Log4j的基本概念 463
16.5.2 Log4j的配置及应用 463
16.6回到案例场景 466
16.6.1基本思路 466
16.6.2代码演练 468
16.7本章小结与习题 470
16.7.1重点回顾 470
16.7.2课后练习 470