第1章 Java EE运行及开发环境 1
视频时长:30分钟
Java EE 5平台的目的在于为开发者提供一系列强大的API,同时减少开发时间,降低应用复杂性并且提高应用的性能。
——Eric Jendrock, Jennifer Ball
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
视频时长:60分钟
Servlet作为一种标准功能来支持J2EE规范,如果没有这种可伸缩的Servlet,则那些应用服务器开发商将丧失竞争力。——Jason Hunter,William Crawford(美)
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
视频时长:66分钟
不同的厂商由不同的“提供者”(驱动)来实现JDBC API,使开发人员与实际的数据库实现方式隔离(理论上属于松散耦合)。——Ted Neward
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
视频时长:35分钟
Struts已经成为利用Servlet和JSP技术构建Web应用程序的最流行的表示框架包,它推动形成了基于Model-View-Controller(MVC)设计模式(通常称为Model 2方式)的应用程序架构。——Craig McClanahan
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 配置web.xml和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
视频时长:63分钟
尽管所有的客户端界面都应当国际化和本地化,但这对于Web应用尤其重要,因为Web具有全球化的本质特性。——Debbie Carson,Ian Evans,Scott Fordin
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
视频时长:43分钟
动态ActionForm听起来像是漫画中的超级英雄,不过它并不能在方法调用中一飞冲天。不管怎样,它可以极大地减轻开发Struts应用的苦役。 同样,Struts验证框架可以代劳许多惯常的表单验证工作,而使您专注于业务逻辑。——James Turner,Kevin Bedell
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 采用标签创建复合式网页 133
6.4.5 采用Tiles模板创建复合式网页 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
视频时长:60分钟
基于ORM平台Hibernate的开放对象模型架构满足了客户在运行时不需要对应用源代码进行任何改动就可以按照最终用户的实际需求设置应用的需求。——Enterra Inc
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
视频时长:156分钟
和Hibernate的ORM映射一样,Hibernate Search帮助用户实现了业务90%的工作,并且使用户专注于余下更为困难的业务实现部分。——Ryan Slobojan
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
视频时长:78分钟
到目前为止,我还没有在Hibernate的层面上发现任何问题,我是说我们甚至都没有优化查询。我们使用的就是Hibernate自动生成的东西,性能也非常好。——InfoQ首席架构师Alexandru Popescu
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
视频时长:54分钟
一把锤子可以做出很多东西,可能是个板凳,也可能是件艺术作品,这都取决于您如何去做。——Bram Smeets,Seth Ladd
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
视频时长:85分钟
AOP试图帮助程序员分离关注点,尤其是横向切面关注点(Cross-Cutting Concerns)。——Vigil Bose
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
视频时长:70分钟
Spring有一整套数据访问框架,整合了各种各样的数据访问技术。帮助您摆脱持久化代码中烦人的数据访问,您可以依赖Spring处理低级数据访问工作,而把精力集中到数据应用的工作中。——Craig Walls,Ryan Breidenbach
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
视频时长:62分钟
Spring的定位是Java EE Application Framework,也就是为快速化的Web应用开发提供基础的技术架构。当Spring与Struts和Hibernate等项目结合以后,将会极大提升开发效率。
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
视频时长:60分钟
Jesse James Garrett为“跨浏览器异步富客户端动态HTML客户服务技术”,取了一个简洁而干脆的名字:AJAX。——Dava Crane
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
视频时长:160分钟
现代图书馆的管理也可称做图书馆科学管理。科学管理是图书馆现代化的前提和条件,是图书馆生存发展的依据,是图书馆整体效益得到最大限度发挥的保证。
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
视频时长:50分钟
为一种团队软件开发模式,敏捷开发就是一种人为艺术,一种个体和团队相互作用而形成的人为艺术。——James Shore
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
展开
基于上述现状,我们组织一批各应用领域的一线开发人员,策划推出“开发入行真功夫” 系列,力求以新的、实用的、全面的角度介绍各种开发技术,紧密跟踪当前国内最实用、最热门的编程技术,希望能真正提高广大徘徊在职业大门之外的学习者的编程知识水平与开发实践技能,为其进入这一关乎国力的行业铺设一条高速公路。
本系列面向具有相关就业方向的编程学习者,在内容上力求紧密结合实践,在体例上力求科学而新颖,在思想上力求宣扬主流设计理念。具体而言,本书具有以下独特的优点:
(1) 面向实际问题,案例驱动。
(2) 面向最新版本,满足程序员对新技术及时掌握的需求。
(3) 面向“入行”者,注重实践与工程化理论相结合。
(4) 配DVD光盘一张,收录教学视频、面试题库、就业指南、源码中心、习题解答等宝贵资料。
(5) 规范代码质量,强化读本的标注功能。
通过对本系列图书的学习,初学者可快速掌握到编程语法,并能够对实际开发流程有较深刻的理解;对于那些急需提升应用开发能力的程序员来说,其可作为专家指导,提供有益的帮助和参考;本系列同样适合于具有实际开发经验的中高级程序员,书中实例具体翔实,非常值得广大高级程序员进行讨论和借鉴。