第1章 初识Java 1
1.1 Java语言的诞生和发展 2
1.1.1 Java语言的诞生 2
1.1.2 Java语言的发展 2
1.2 Java语言的特点 2
1.2.1 简单性 2
1.2.2 面向对象 2
1.2.3 分布式 3
1.2.4 解释型 3
1.2.5 健壮安全性 3
1.2.6 体系结构中立 3
1.2.7 可移植性 3
1.2.8 高性能 3
1.2.9 多线程 3
1.3 搭建JaVa语言的开发环境 3
1.3.1 JDK简介 4
1.3.2 安装JDK 6.0 4
1.3.3 配置环境变量 6
1.3.4 测试配置环境变量 7
第2章 简单了解Java程序 9
2.1 认识Java程序 10
2.2 第一个Java程序 10
2.2.1 解释第一个Java程序 10
2.2.2 在EditPlus 3中编写第一个Java程序 10
2.2.3 在DOS窗口中编译与运行 11
2.2.4 在EditPlus 3中编译与运行 13
2.3 Java标识符 14
2.4 Java关键字 15
2.5 为Java程序添加注释 16
2.5.1 单行注释 16
2.5.2 多行注释 16
2.5.3 文档注释 17
2.6 初学者编写Java程序应注意的问题 18
2.7 本章实例 18
2.8 小结 20
第3章 Java语法基础 21
3.1 编码规范 22
3.1.1 Java命名规范 22
3.1.2 代码编写规则 22
3.2 数据类型 22
3.2.1 整数数据类型 23
3.2.2 浮点数据类型 23
3.2.3 字符数据类型 24
3.2.4 布尔数据类型 24
3.2.5 基本数据类型的应用 24
3.3 Java的常量与变量 25
3.3.1 常量 25
3.3.2 变量 26
3.3.3 变量的作用域 28
3.4 Java中的运算符 28
3.4.1 赋值运算符 28
3.4.2 算术运算符 29
3.4.3 比较运算符 29
3.4.4 逻辑运算符 29
3.4.5 位运算符 30
3.4.6 三元(目)运算符 31
3.4.7 自增和自减运算符 31
3.4.8 表达式 33
3.4.9 运算符优先级 33
3.5 基本数据类型之间的转换 34
3.5.1 自动类型转换 34
3.5.2 强制类型转换 35
3.5.3 表达式的数据类型自动提升 36
3.6 本章实例 36
3.7 小结 39
第4章 算法和流程控制语句 41
4.1 算法 42
4.1.1 什么是算法 42
4.1.2 算法的特性 42
4.1.3 算法的描述 42
4.1.4 程序的3种控制结构 45
4.2 分支语句 46
4.2.1 简单的if条件语句 46
4.2.2 if...else条件语句 47
4.2.3 if...else if多分支语句 49
4.2.4 switch多分支语句 51
4.2.5 if语句和switch语句的区别 53
4.3 循环语句 53
4.3.1 for循环语句 54
4.3.2 while循环语句 55
4.3.3 do...while循环语句 56
4.3.4 循环的嵌套 58
4.3.5 各种循环语句的区别 59
4.4 跳转语句 60
4.4.1 break跳转语句 60
4.4.2 continue跳转语句 61
4.4.3 return跳转语句 62
4.5 本章实例 63
4.6 小结 65
第5章 开发工具MyEclipse 6.0 67
5.1 安装与启动MyEclipse 6.0 68
5.1.1 安装MyEclipse 6.0 68
5.1.2 启动MyEclipse 6.0 70
5.2 MyEclipse 6.0工作平台 71
5.2.1 常用工具栏介绍 71
5.2.2 视图 72
5.2.3 透视图 72
5.2.4 编辑器 73
5.3 使用MyEclipse 6.0 73
5.3.1 认识Java项目 73
5.3.2 新建Java项目 74
5.3.3 创建与编写一个Java类 75
5.3.4 编译Java类 75
5.3.5 运行Java类 76
5.4 MyEclipse 6.0资源管理 77
5.4.1 导入与删除Java类 77
5.4.2 导入Java项目 77
5.4.3 导出Java项目 78
5.4.4 删除Java项目 79
5.5 用断点调试程序 80
5.6 小结 81
第6章 数组 83
6.1 数组的概念 84
6.2 一维数组 84
6.2.1 一维数组的声明与创建 84
6.2.2 一维数组的初始化 85
6.2.3 一维数组的访问 85
6.2.4 一维数组的操作 86
6.2.5 foreach语句 88
6.2.6 内存中的一维数组 89
6.2.7 一维数组的应用举例 89
6.3 二维数组 91
6.3.1 二维数组的声明与创建 91
6.3.2 二维数组的初始化 92
6.3.3 二维数组的访问 92
6.3.4 内存中的二维数组 93
6.3.5 二维数组的应用举例 94
6.4 多维数组 95
6.4.1 多维数组的声明与创建 95
6.4.2 多维数组的初始化 96
6.4.3 多维数组的访问 96
6.4.4 使用多维数组 96
6.4.5 内存中的三维数组 97
6.5 本章实例 97
6.6 小结 100
第7章 字符串处理 101
7.1 字符串 102
7.1.1 声明字符串 102
7.1.2 创建字符串 102
7.2 连接字符串 103
7.2.1 字符串与字符串的连接 103
7.2.2 字符串与其他类型数据的连接 105
7.3 字符串常用操作 106
7.3.1 比较字符串是否相等 106
7.3.2 获取字符串的长度 106
7.3.3 字符串的大小写转换 107
7.3.4 查找字符串 108
7.3.5 获取字符串的子字符串 110
7.3.6 替换字符串与除去字符串中的空格 111
7.3.7 分割字符串 112
7.4 格式化字符串 113
7.4.1 常规类型的格式化 113
7.4.2 日期和时间字符串格式化 115
7.5 StringBuilder类 119
7.5.1 创建字符串生成器 119
7.5.2 字符串生成器的应用 120
7.6 本章实例 122
7.7 小结 125
第8章 面向对象编程 127
8.1 面向对象程序设计 128
8.1.1 面向对象程序设计的概述 128
8.1.2 面向对象程序设计的特点 129
8.2 类 129
8.2.1 类的结构 129
8.2.2 成员变量 130
8.2.3 成员方法 130
8.2.4 访问修饰符 131
8.3 类的对象 132
8.3.1 创建与使用对象 132
8.3.2 实现类的封装 134
8.3.3 构造方法(函数) 136
8.3.4 this、static关键字 138
8.4 方法 141
8.4.1 方法的参数传递机制 141
8.4.2 方法的重载 144
8.5 垃圾回收 145
8.5.1 垃圾回收原理 145
8.5.2 finalize()方法 146
8.5.3 垃圾回收的本质 146
8.6 本章实例 147
8.7 小结 150
第9章 Java的继承与多态 151
9.1 继承 152
9.1.1 继承的概念与特点 152
9.1.2 访问父类的成员变量和方法 153
9.1.3 子类的构造函数 154
9.1.4 子类的构造过程 155
9.2 方法的重写和字段隐藏 157
9.2.1 方法的重写 157
9.2.2 字段的隐藏 159
9.3 多态 160
9.3.1 多态的含义 160
9.3.2 抽象方法与抽象类 161
9.4 final关键字的使用 164
9.4.1 最终方法 164
9.4.2 最终类 165
9.5 本章实例 165
9.6 小结 172
第10章 类的高级应用 173
10.1 接口 174
10.1.1 接口的含义 174
10.1.2 创建接口 174
10.1.3 接口的使用 175
10.1.4 接口的继承 176
10.1.5 接口的多态 177
10.2 内部类 180
10.2.1 在类中定义内部类 180
10.2.2 内部类的使用 181
10.2.3 在方法中定义内部类 183
10.3 包 184
10.3.1 包的描述 184
10.3.2 创建包 184
10.3.3 包的使用 184
10.4 本章实例 188
10.5 小结 191
第11章 Java中的异常处理 193
11.1 异常处理概述 194
11.2 Java常见异常及产生原因 194
11.2.1 空指针异常 194
11.2.2 没有找到具有指定名称的类 195
11.2.3 算术异常 195
11.2.4 数组越界异常 195
11.2.5 非法参数异常 196
11.3 异常的处理机制 196
11.3.1 使用try...catch捕获异常 197
11.3.2 使用throws声明抛出异常 198
11.3.3 自定义异常与throw关键字 199
11.4 本章实例 201
11.5 小结 209
第12章 泛型和集合 211
12.1 引出泛型的原因 212
12.2 理解泛型 213
12.2.1 泛型的定义1 213
12.2.2 泛型的定义2 216
12.2.3 泛型的定义3 218
12.3 集合概述 220
12.4 List集合 220
12.4.1 List集合的性质 220
12.4.2 ArrayList类的使用 221
12.4.3 使用泛型 223
12.5 Set集合 225
12.5.1 Set集合的性质 225
12.5.2 HashSet类的使用 226
12.5.3 TreeSet类的使用 228
12.6 Map集合 230
12.6.1 Map集合的性质 230
12.6.2 HashMap类的使用 230
12.7 本章实例 232
12.8 小结 239
第13章 I/O处理 241
13.1 Java I/O体系结构 242
13.2 Java提供的流类 242
13.2.1 I/O中的输入字节流 242
13.2.2 I/O中的输出字节流 244
13.2.3 字节流与字符流 246
13.2.4 I/O中的输入字符流 246
13.2.5 I/O中的输出字符流 248
13.3 File类 250
13.3.1 文件类的构造方法 250
13.3.2 获取文件信息 251
13.3.3 复制文件中的内容 253
13.3.4 压缩文件 254
13.3.5 分行写入文件 255
13.4 本章实例 257
13.5 小结 261
第14章 线程 263
14.1 线程概述 264
14.1.1 线程的定义 264
14.1.2 线程与进程 264
14.2 线程的创建 264
14.2.1 通过继承Thread类来创建 264
14.2.2 通过实现Runnable接口来创建 266
14.3 线程的控制 268
14.3.1 线程的让步 268
14.3.2 线程优先级的改变 269
14.4 线程的同步 270
14.4.1 线程同步所引发的安全问题 271
14.4.2 线程的同步机制 272
14.5 线程之间的通信 274
14.5.1 监视器的概念 274
14.5.2 一些基本的线程通信方法 274
14.6 本章实例 276
14.7 小结 278
第15章 自动装箱、拆箱与反射 279
15.1 自动装箱与拆箱 280
15.1.1 自动装箱 280
15.1.2 拆箱 281
15.2 装箱与拆箱所带来的问题 282
15.2.1 “==”的问题 282
15.2.2 拆箱带来的异常问题 283
15.3 反射 284
15.3.1 Java反射机制概述 284
15.3.2 加载类 285
15.3.3 通过反射查看类信息 285
15.3.4 使用反射生成与操作对象 287
15.4 本章实例 289
15.5 小结 292
第16章 Java Web应用程序开发环境 293
16.1 Tomcat 6.0的使用 294
16.1.1 Tomcat 6.0简介 294
16.1.2 安装与启动Tomcat 6.0 294
16.1.3 在MyEclipse 6.0中配置与测试Tomcat 6.0 296
16.2 Dreamweaver CS3的使用 299
16.2.1 Dreamweaver CS3简介 299
16.2.2 Dreamweaver CS3安装 299
16.3 MySQL 5.1数据库基础 301
16.3.1 MySQL 5.1数据库简介 301
16.3.2 安装MySQL 5.1 301
16.3.3 安装MySQL Administrator 1.1插件 306
16.3.4 安装MySQL Query Browser 1.1插件 308
16.4 MySQL 5.1数据库的基本操作 310
16.4.1 创建数据库 310
16.4.2 在数据库中创建表 311
16.4.3 插入数据 313
16.4.4 MySQL 5.1数据库的备份 314
16.4.5 MySQL 5.1数据库还原 315
第17章 Servlet和Web应用体系 317
17.1 C/S模式与B/S模式 318
17.1.1 C/S模式 318
17.1.2 B/S模式 318
17.2 Http请求和响应模式 319
17.2.1 超文件传输协议Http 319
17.2.2 Http请求 319
17.2.3 Http响应 321
17.3 HTML简介 322
17.4 Servlet简介 324
17.4.1 什么是Servlet 324
17.4.2 认识Servlet 324
17.5 Web应用体系 325
17.5.1 Servlet容器的概念 326
17.5.2 编写一个简单的Servlet 326
17.5.3 在MyEclipse 6.0中编写Servlet 327
17.5.4 配置web.xml 329
17.5.5 部署到Tomcat 6.0服务器上运行 330
17.6 Servlet高级应用 333
17.6.1 Servlet生命周期 333
17.6.2 ServletContext与ServletConfig对象 336
17.6.3 在MyEclipse中创建JSP 339
17.6.4 Servlet重定向 340
17.7 小结 344
第18章 学习JSP 345
18.1 JSP概述 346
18.1.1 JSP简介 346
18.1.2 JSP的优势 346
18.1.3 JSP的处理过程 346
18.1.4 了解JSP页面基本结构 346
18.1.5 JSP注释 351
18.2 HttpSession接口 352
18.2.1 JSP Session机制 352
18.2.2 Http Session的使用 353
18.3 监听器Listener 353
18.3.1 什么是监听器 353
18.3.2 Servlet Context事件监听器 353
18.3.3 Http Session事件监听器 357
18.3.4 Servlet Request的事件监听器 361
18.4 过滤器 364
18.4.1 过滤器的原理 364
18.4.2 过滤器的创建 365
18.4.3 过滤器的顺序 367
18.5 小结 369
第19章 JSP语法 371
19.1 Cookie的应用 372
19.1.1 什么是Cookie 372
19.1.2 Cookie的好处 372
19.1.3 创建Cookie 372
19.2 JSP的内置对象 372
19.2.1 request对象 373
19.2.2 response对象 374
19.2.3 out对象 374
19.2.4 session对象 375
19.2.5 application对象 380
19.2.6 page和pageContext对象 381
19.2.7 exception对象 381
19.2.8 config对象 382
19.3 JavaBean简介 387
19.3.1 什么是JavaBean 388
19.3.2 为什么使用JavaBean 389
19.4 JSP动作元素 389
19.4.1 <jsp:param>动作 389
19.4.2 <jsp:include>动作 389
19.4.3 <jsp:forward>动作 390
19.4.4 <jsp:useBean>动作 390
19.4.5 <jsp:setProperty>与<jsp:getProperty>动作 391
19.5 EL表达式 396
19.5.1 EL表达式的形式 396
19.5.2 EL表达式功能 397
19.6 JSTL基础知识 397
19.6.1 JSTL简介 397
19.6.2 JSTL的核心标签库 397
19.7 小结 405
第20章 访问数据库 407
20.1 JDBC技术简介 408
20.2 JDBC连接方式 408
20.2.1 JDBC驱动介绍 408
20.2.2 安装MySQL驱动 409
20.2.3 JDBC连接数据库的步骤 409
20.3 JDBC的API 411
20.3.1 驱动程序管理类DriverManager 411
20.3.2 数据库连接类Connection 412
20.3.3 SQL声明类Statement 413
20.3.4 SQL声明类PreparedStatement 413
20.3.5 查询结果集类ResultSet 414
20.4 连接MySQL数据库实例 414
20.4.1 创建数据库连接实例 415
20.4.2 操作MySQL数据库实例 416
20.5 数据库连接池 421
20.5.1 多用户数据库连接方法 421
20.5.2 在Tomcat 6.0下配置MySQL 5.1连接池 422
20.5.3 测试连接池设置是否生效 422
20.6 小结 424
第21章 远程教学系统的实现 425
21.1 远程教学系统的系统分析 426
21.1.1 可行性分析 426
21.1.2 需求分析 426
21.2 远程教学系统的总体设计 427
21.2.1 以教师身份登录的功能模块 428
21.2.2 以学生身份登录的功能模块 428
21.2.3 以管理员身份登录的功能模块 428
21.3 远程教学系统的数据库设计 429
21.3.1 远程教学系统的数据库的E-R图设计 429
21.3.2 数据表设计 430
21.4 Java Web应用配置文件web.xml 431
21.5 学生身份登录的模块设计与实现 436
21.5.1 学生模块JavaBean的设计与实现 436
21.5.2 学生模块操作数据库方法的设计与实现 438
21.5.3 学生模块Servlet的设计与实现 445
21.5.4 学生模块主页面的设计与实现 448
21.6 教师身份登录的模块设计与实现 450
21.6.1 教师模块操作数据库方法的设计与实现 450
21.6.2 教师模块Servlet的设计与实现 458
21.7 管理员身份登录的后台模块设计与实现 461
21.7.1 管理员模块数据库底层方法的设计与实现 461
21.7.2 管理员模块Servlet的设计与实现 464
第22章 Struts应用 469
22.1 Struts简介 470
22.2 为什么要用Struts框架 470
22.3 Struts的核心——MVC 470
22.4 Struts的工作原理 471
22.5 Struts的工作流程 471
22.6 Struts的基本配置 472
22.6.1 web.xml配置文件 472
22.6.2 struts-config.xml配置文件 473
22.7 表单处理器ActionForm 475
22.7.1 ActionForm类 475
22.7.2 编写FormBean 477
22.8 Struts中的控制器Action 478
22.8.1 Action类 478
22.8.2 Action的代码实现 478
22.9 Struts标签库 479
22.9.1 导入Struts的标签库 479
22.9.2 Struts的HTML标签 479
22.9.3 Struts的Bean标签 483
22.9.4 Struts的Logic标签 485
22.10 小结 487
第23章 在线投票系统的实现 489
23.1 需求分析 490
23.1.1 用例分析 490
23.1.2 数据流分析 490
23.1.3 数据字典分析 491
23.2 总体设计 491
23.2.1 前台功能设计 491
23.2.2 后台功能设计 491
23.2.3 系统的数据库设计 492
23.3 系统架构设计 492
23.4 创建基于Struts框架的项目包 493
23.5 创建数据库连接 494
23.6 编写系统配置文件 495
23.7 后台模块的设计与实现 497
23.7.1 标题及内容管理模块Java Bean的设计与实现 497
23.7.2 标题及内容管理模块Form Bean的设计与实现 498
23.7.3 标题及内容管理模块底层方法的设计与实现 499
23.7.4 标题及内容管理模块Action的设计与实现 502
23.7.5 后台登录页面和主页面的设计与实现 504
23.8 前台用户投票模块的设计与实现 506
23.8.1 用户投票模块底层方法的设计与实现 506
23.8.2 用户投票模块Action的设计与实现 507
23.8.3 用户投票模块的页面设计 508
第24章 Hibernate应用 513
24.1 Hibernate简介 514
24.2 Hibernate框架概述 514
24.2.1 Hibernate的优势 514
24.2.2 Hibernate架构 514
24.3 Hibernate框架主要的API 514
24.3.1 Configuration类 515
24.3.2 Session Factory接口 515
24.3.3 Session接口 516
24.3.4 Query接口 517
24.3.5 Transaction接口 517
24.4 Hibernate的持久化技术 517
24.4.1 什么是持久化 517
24.4.2 持久化的意义 517
24.4.3 持久化类 517
24.4.4 Hibernate中的对象状态 518
24.5 Hibernate框架中的ORM技术 519
24.5.1 持久化类 519
24.5.2 映射文件 519
24.5.3 Hibernate的配置文件 520
24.6 Hibernate框架查询语言 521
24.6.1 HQL中的from子句 521
24.6.2 HQL中的属性查询 521
24.6.3 HQL中的更新和删除 522
24.6.4 HQL中的order by子句 522
24.6.5 HQL中的group by子句 522
24.6.6 HQL中的连接 523
24.7 HQL中的参数绑定 523
24.7.1 按参数名称绑定 523
24.7.2 按参数位置绑定 523
24.7.3 使用setParameter()方法来绑定参数 524
24.7.4 使用setProperties()方法来绑定参数 524
24.8 Hibernate反向工程 524
24.8.1 在MyEclipse 6.0中创建数据库连接 524
24.8.2 在Java Web项目中加入Hibernate架包 526
24.8.3 在MyEclipse 6.0中生成代码 528
24.9 小结 529
第25章 制作精美的留言板 531
25.1 需求分析 532
25.1.1 用例分析 532
25.1.2 数据流分析 532
25.1.3 数据字典分析 533
25.2 详细设计 533
25.2.1 前台功能设计 533
25.2.2 后台功能设计 533
25.2.3 系统的类图设计 534
25.2.4 系统的数据库设计 534
25.3 系统总体设计 535
25.3.1 系统的设计思想 535
25.3.2 系统中的过滤器 535
25.3.3 后台管理留言模块设计 536
25.4 创建数据库连接 537
25.4.1 系统O/R Mapping映射文件的设计与实现 537
25.4.2 Hibernate.cfg.xml的配置 539
25.5 系统struts-config.xml配置文件 540
25.6 系统web.xml设计与实现 542
25.7 系统JavaBean设计与实现 543
25.8 后台模块的设计与实现 546
25.8.1 管理员登录模块的设计与实现 547
25.8.2 回复留言模块的设计与实现 551
25.8.3 查询留言模块的设计与实现 554
25.8.4 删除留言模块的设计与实现 559
25.9 前台模块的设计与实现 564
25.9.1 用户留言模块FormBean的设计与实现 564
25.9.2 用户留言模块底层方法的设计与实现 565
25.9.3 用户留言模块Action的设计与实现 566
25.9.4 用户留言模块的页面设计与实现 567