第1篇 Java基础知识入门 2
第1章 Java的开发运行环境(教学视频:57分钟) 2
1.1 Java运行原理与Java虚拟机 2
1.1.1 Java运行原理简述 2
1.1.2 Java虚拟机 3
1.2 Java的开发环境 4
1.2.1 JDK的安装 4
1.2.2 如何设置系统环境变量 8
1.2.3 JDK安装后的测试与验证 10
1.2.4 编译命令的使用 11
1.2.5 解释执行命令的使用 12
1.2.6 UltraEdit的使用 14
1.3 Java应用程序示例 17
1.4 Java Applet程序示例 19
1.5 本章小结 21
1.6 实战习题 21
第2章 Java语言基础(教学视频:75分钟) 22
2.1 Java语言的关键特性 22
2.2 Java程序的构成及文本风格 24
2.2.1 Java程序的构成 25
2.2.2 Java的代码结构 26
2.2.3 Java程序的格式编排 27
2.2.4 Java代码的注释风格 27
2.3 数据类型 30
2.3.1 基本数据类型 30
2.3.2 常量 32
2.3.3 变量 33
2.3.4 整型数据 34
2.3.5 浮点型数据 36
2.3.6 字符型数据 37
2.3.7 布尔型数据 39
2.3.8 变量赋初值 40
2.3.9 变量的作用域 40
2.3.10 数据类型转换 41
2.4 运算符与表达式 44
2.4.1 算术运算符和算术表达式 45
2.4.2 关系运算符和关系表达式 49
2.4.3 逻辑运算符和逻辑表达式 51
2.4.4 条件运算符和条件表达式 54
2.4.5 位运算符和位表达式 56
2.4.6 赋值运算符和赋值表达式 59
2.4.7 表达式的求值顺序 61
2.5 流程控制语句 63
2.5.1 3种基本控制结构 64
2.5.2 表达式语句和空语句 65
2.5.3 块语句 66
2.5.4 if~else分支语句 67
2.5.5 多路分支switch~case语句 74
2.5.6 当型循环while语句 76
2.5.7 直到型循环do~while语句 77
2.5.8 当型循环for语句 79
2.5.9 增强的for循环 82
2.5.10 循环的嵌套 84
2.5.11 跳转语句break 85
2.5.12 跳转语句continue 87
2.6 Java基础语法实战演习 90
2.6.1 判断闰年 90
2.6.2 求最大公约数和最小公倍数 91
2.6.3 Fibonacci数列 92
2.6.4 逆向输出数字 93
2.6.5 求水仙花数 94
2.6.6 输出图形 95
2.6.7 输出九九口诀表 96
2.7 本章小结 97
2.8 实战习题 97
第2篇 Java面向对象编程 100
第3章 对象和类(教学视频:33分钟) 100
3.1 什么是面向对象 100
3.1.1 对象的理解 101
3.1.2 什么是类 102
3.1.3 消息的定义 103
3.1.4 面向对象的基本特征 103
3.2 类与对象 106
3.2.1 类的基本结构 106
3.2.2 类的声明 107
3.2.3 创建类体 107
3.2.4 对象的生命周期 108
3.2.5 对象的创建 108
3.2.6 对象的使用 110
3.3 成员变量的定义与使用 111
3.3.1 成员变量的定义 111
3.3.2 成员变量的访问权限 112
3.3.3 实例成员变量和静态成员变量 115
3.4 方法的定义和实现 117
3.4.1 方法的声明 118
3.4.2 创建方法体与return语句 118
3.4.3 局部变量和成员变量的区别 120
3.4.4 方法的访问权限 122
3.5 方法的调用 122
3.5.1 方法调用的形式 122
3.5.2 方法调用的参数 124
3.5.3 隐含参数this 128
3.6 构造方法 129
3.6.1 无参数构造方法的定义和使用 130
3.6.2 带参数构造方法的定义和使用 131
3.6.3 this关键字和构造方法的调用 132
3.7 静态方法 133
3.7.1 静态方法的声明和定义 134
3.7.2 静态方法和实例方法的区别 134
3.7.3 静态代码块 136
3.7.4 再论静态成员变量 137
3.8 main()方法和命令行参数 139
3.9 终结处理与垃圾回收 141
3.9.1 对象的释放和垃圾收集机制 141
3.9.2 finalize()终结处理方法 141
3.9.3 Java圾回收的工作原理 142
3.10 本地方法 143
3.11 本章小结 145
3.12 实战习题 145
第4章 继承与多态(教学视频:35分钟) 147
4.1 继承的概念 147
4.1.1 继承的基本原理 147
4.1.2 Java继承的特征 148
4.1.3 Java中子类继承父类的描述及实现 149
4.1.4 Java继承的内存形态 151
4.2 继承中属性隐藏与方法覆盖 151
4.2.1 属性的隐藏 152
4.2.2 方法的覆盖 154
4.3 构造方法的继承与调用 157
4.3.1 构造方法的继承 157
4.3.2 super关键字的使用 159
4.3.3 关于子类继承父类的总结 162
4.4 多态技术 162
4.4.1 Java中的多态 162
4.4.2 重载与覆盖 162
4.4.3 运行时多态 167
4.5 接口与多重继承 172
4.5.1 接口的定义 172
4.5.2 接口的继承 173
4.5.3 接口的实现 175
4.6 Java抽象类与最终类 177
4.6.1 抽象类与抽象方法 177
4.6.2 最终类与最终方法 180
4.7 Java内部类 181
4.7.1 内部类的定义 181
4.7.2 内部类访问外部类的成员 183
4.7.3 内部类之间的相互使用 186
4.7.4 在外部使用内部类 187
4.7.5 匿名内部类 188
4.7.6 内部类的作用 189
4.8 Java包:库单元 190
4.8.1 包的创建 190
4.8.2 包的使用 192
4.8.3 JAR文件的创建和使用 194
4.8.4 JDK中的常用包 195
4.9 本章小结 197
4.10 实战习题 198
第3篇 Java数据处理 200
第5章 数组与字符串(教学视频:69分钟) 200
5.1 数组 200
5.1.1 一维数组的声明 200
5.1.2 一维数组的创建 201
5.1.3 一维数组的使用 202
5.1.4 二维数组的声明 204
5.1.5 二维数组的创建 205
5.1.6 二维数组的使用 207
5.1.7 程序示例1——数组排序 208
5.1.8 程序示例2——杨辉三角 210
5.2 字符串 212
5.2.1 String对象的声明 212
5.2.2 String对象的创建 212
5.2.3 String对象的使用 213
5.2.4 String类型的数组 215
5.2.5 StringBuffer对象的声明 216
5.2.6 StringBuffer对象的创建 216
5.2.7 StrigBuffer对象的使用 216
5.3 本章小结 218
5.4 实战习题 218
第6章 Java的异常处理(教学视频:58分钟) 220
6.1 异常与异常处理 220
6.1.1 异常的特点 220
6.1.2 异常处理的两种模型 221
6.1.3 异常处理在编程中的优点 221
6.2 Java的异常处理 222
6.2.1 Java的异常处理机制 222
6.2.2 Java异常类的层次结构 223
6.2.3 Java异常的分类 223
6.2.4 Java异常处理的原则 225
6.3 Java异常处理实践 226
6.3.1 Java异常捕获与处理 226
6.3.2 异常的抛出 230
6.3.3 异常的嵌套处理 233
6.3.4 自定义异常及其处理方法 236
6.3.5 Java异常处理的应用示例 236
6.4 本章小结 237
6.5 实战习题 237
第7章 Java输入输出处理技术(教学视频:110分钟) 238
7.1 数据与Java I/O 238
7.1.1 文件与数据流 238
7.1.2 Java的I/O体系 239
7.2 基于字节的I/O操作接口 241
7.2.1 InputStream类的结构层次及方法 242
7.2.2 OutputStream中的方法 242
7.2.3 文件输入流FileInputStream 243
7.2.4 文件输出流FileOutputStream 243
7.2.5 保存用户输入到文件 244
7.2.6 显示文件内容 245
7.2.7 文件的复制 247
7.2.8 顺序输入流 248
7.2.9 管道输入输出流 249
7.2.10 过滤输入输出流 251
7.3 基于字符的I/O操作接口 252
7.3.1 字符处理类Reader与Writer 252
7.3.2 InputStreamReader类中的方法 253
7.3.3 OutputStreamWriter类中的方法 253
7.3.4 从键盘输入 254
7.3.5 文件复制 254
7.4 控制台I/O处理 255
7.4.1 控制台输入类Scanner 255
7.4.2 格式化输出printf 256
7.5 Java对文件的访问 259
7.5.1 File类及其方法 259
7.5.2 File类读取文件列表 260
7.5.3 文件的随机访问:RandomAccessFile 262
7.5.4 RandomAccessFile类进行文件加密 263
7.6 Java序列化技术 264
7.7 Java 7中的文件系统简介 267
7.7.1 文件的访问 267
7.7.2 目录的监视 269
7.7.3 文件的属性 272
7.8 本章小结 274
7.9 实战习题 274
第4篇 Java中的高级技术 276
第8章 Java的多线程机制(教学视频:83分钟) 276
8.1 认识线程 276
8.1.1 线程是什么 276
8.1.2 多线程的特点 277
8.2 Java的多线程技术 278
8.2.1 Java与多线程 278
8.2.2 Java的线程状态及转换 278
8.2.3 Java多线程的实现 279
8.3 多线程程序的编写 281
8.3.1 利用Thread的子类创建线程 281
8.3.2 实现Runnable接口创建线程 283
8.3.3 使用isAlive()和join()等待子线程结束 284
8.3.4 设置线程优先级 286
8.4 线程的调度与通信 287
8.4.1 线程的互斥 288
8.4.2 线程的同步 290
8.4.3 暂停、恢复和停止线程 292
8.4.4 生产者-消费者问题实例 294
8.5 本章小结 297
8.6 实战习题 298
第9章 运行时类型识别(教学视频:37分钟) 299
9.1 Java中的RTTI 299
9.1.1 为什么需要RTTI 299
9.1.2 RTTI的工作原理 300
9.2 Java类的识别方法 301
9.2.1 使用getClass()方法获取类信息 301
9.2.2 使用类标记 302
9.2.3 使用关键字instanceof判断所属类 303
9.3 利用反射获取运行时类信息 304
9.3.1 使用islnstance()方法判断所属类 305
9.3.2 获取成员方法信息 306
9.3.3 获取构造方法信息 307
9.3.4 获取类的成员属性 308
9.3.5 根据方法的名称来执行方法 309
9.3.6 创建新的对象 310
9.3.7 改变属性的值 311
9.3.8 使用数组 311
9.4 本章小结 312
9.5 实战习题 313
第10章 泛型(教学视频:18分钟) 314
10.1 Java的泛型 314
10.1.1 泛型的本质 314
10.1.2 泛型实例 315
10.1.3 有界类型 319
10.1.4 通配符参数 320
10.1.5 泛型方法 322
10.1.6 泛型接口 324
10.2 泛型类的继承 326
10.2.1 以泛型类为父类 326
10.2.2 以非泛型类为父类 328
10.2.3 运行时类型识别 329
10.2.4 强制类型转换 330
10.2.5 继承规则 331
10.3 擦拭 331
10.3.1 擦拭的概念及原理 332
10.3.2 擦拭带来的错误 333
10.4 泛型的局限 335
10.4.1 不能使用基本类型 335
10.4.2 不能使用泛型类异常 335
10.4.3 不能使用泛型数组 336
10.4.4 不能实例化参数类型对象 336
10.5 本章小结 336
10.6 实战习题 337
第11章 Java集合框架(教学视频:20分钟) 338
11.1 集合与集合框架 338
11.2 集合接口和类 339
11.2.1 Java集合接口层次 339
11.2.2 Collection接口 340
11.2.3 Set接口 342
11.2.4 List接口 342
11.2.5 Map接口 343
11.2.6 Queue接口 345
11.2.7 集合中的常用术语 345
11.3 集合类的使用 346
11.3.1 顺序表(ArrayList)使用示例 346
11.3.2 链表(LinkedList)使用示例 349
11.3.3 优先队列(PriorityQueue)使用示例 353
11.3.4 哈希集合(HashSet)使用示例 356
11.3.5 合希映射类(HashMap)使用示例 360
11.3.6 有序树(TreeSet)使用示例 361
11.3.7 有序树映射类(TreeMap)使用示例 365
11.3.8 枚举(Enum)使用示例 367
11.3.9 枚举集(EnumSet)使用示例 370
11.4 常用算法 372
11.4.1 Collections中的简单算法 372
11.4.2 排序 374
11.4.2 二分查找 375
11.5 遗留的类和接口 378
11.5.1 Enumeration接口简介 378
11.5.2 向量类(Vector)使用示例 378
11.5.3 栈(Stack)使用示例 380
11.5.4 字典(Dictionary)简介 382
11.5.5 哈希表(Hashtable)简介 382
11.6 本章小结 382
11.7 实战习题 383
第12章 类型包装器、自动装箱和元数据(教学视频:21分钟) 384
12.1 类型包装器 384
12.1.1 字符类型包装器 384
12.1.2 布尔类型包装器 385
12.1.3 数字类型包装器 385
12.2 自动装/拆箱 387
12.2.1 自动装箱与方法 387
12.2.2 表达式中的自动装/拆箱 388
12.2.3 布尔型和字符型包装器的自动装/拆箱 389
12.3 元数据与注解 390
12.3.1 注解的定义及语法 391
12.3.2 注解的保留策略 391
12.3.3 使用反射读取注解 392
12.3.4 注解的应用 395
12.3.5 使用注解的一些限制 401
12.4 本章小结 401
12.5 实战习题 401
第13章 常用工具类(教学视频:74分钟) 402
13.1 Runtime类的使用 402
13.1.1 内存管理 403
13.1.2 执行其他程序 404
13.2 System类的使用 406
13.2.1 利用currentTimeMillis()记录程序执行的时间 406
13.2.2 exit()退出方法 407
13.2.3 获取和设置环境属性 408
13.3 Math类的使用 409
13.3.1 利用随机数求π值 409
13.3.2 利用三角函数求π值 410
13.3.3 利用换底公式求任意对数值 411
13.3.4 使用取整函数 412
13.4 Random类的使用 413
13.5 Date类和Calendar类的使用 415
13.5.1 Date类的简单使用 415
13.5.2 使用SimpleDateFormat格式化输出时间 415
13.5.3 Calendar类的特色 418
13.5.4 利用GregorianCalendar输出日历 421
13.6 Formatter类的使用 423
13.6.1 Formatter的简单使用 423
13.6.2 时间格式转换符详解 425
13.6.3 格式说明符语法图 427
13.7 正则表达式 427
13.7.1 正则表达式的作用 428
13.7.2 正则表达式的基本规则 428
13.7.3 正则表达式中的一些高级规则 431
13.7.4 正则表达式中的其他通用规则 434
13.7.5 使用技巧 435
13.8 Pattern类的使用 435
13.9 Matcher类的使用 437
13.9.1 匹配方法的使用 438
13.9.2 替换方法的使用 439
13.9.3 组匹配的使用 440
13.9.4 检验Email的合法性 441
13.10 本章小结 443
13.11 实战习题 443
第5篇 桌面程序开发 446
第14章 GUI程序设计(教学视频:29分钟) 446
14.1 GUI程序设计的基本概念 446
14.1.1 组件 447
14.1.2 布局管理 447
14.1.3 事件处理 447
14.2 Java集成开发平台:Eclipse 448
14.2.1 Eclipse简介 448
14.2.2 Windows下Eclipse的安装 448
14.2.3 Linux下Eclipse的安装 450
14.2.4 Eclipse的基本配置 451
14.2.5 使用Eclipse进行Java开发 453
14.3 AWT组件简介 458
14.3.1 AWT的层次结构 459
14.3.2 AWT中的组件和包 460
14.3.3 AWT通用属性与方法 462
14.3.4 使用AWT编制GUI程序示例 463
14.4 事件处理 465
14.4.1 授权事件模型 466
14.4.2 事件 466
14.4.3 事件源 466
14.4.4 事件监听器和适配器 467
14.4.5 编写事件处理程序的基本方法 467
14.4.6 响应窗口关闭事件处理示例 468
14.4.7 事件监听器接口和适配器类 469
14.4.8 作为参数的事件类 470
14.4.9 处理多个事件的例子 476
14.5 Swing组件的特性 480
14.5.1 Swing组件的优势 480
14.5.2 Swing组件的体系结构 480
14.5.3 使用Swing组件编写GUI的层次结构 481
14.6 顶层容器 482
14.6.1 框架类(JFrame)使用示例 482
14.6.2 小应用程序(JApplet)使用示例 484
14.6.3 对话框(JDialog)使用示例 485
14.7 中间容器 488
14.7.1 面板(JPanel)使用示例 488
14.7.2 滚动面板(JScrollPane)使用示例 491
14.7.3 分隔板(JSplitPane)使用示例 493
14.7.4 选项板(JTabbedPane)使用示例 496
14.7.5 工具栏(JToolBar)使用示例 497
14.8 常用组件 498
14.8.1 标签(Jlabel)使用示例 499
14.8.2 按钮(JButton)使用示例 501
14.8.3 文本框(JTextField)和密码框(JPasswordField)使用示例 502
14.8.4 文本区(JTextArea)使用示例 506
14.8.5 复选框(JcheckBox)使用示例 507
14.8.6 单选按钮(JradioButton)使用示例 509
14.8.7 列表框(JList)使用示例 511
14.8.8 组合框(JComboBox)使用示例 514
14.8.9 表格(Jtable)使用示例 516
14.8.10 树(JTree)使用示例 525
14.8.11 菜单使用示例 530
14.9 布局管理 533
14.9.1 流式布局(FlowLayout)回顾 534
14.9.2 边框布局(BorderLayout)使用示例 534
14.9.3 网格布局(GridLayout)使用示例 535
14.9.4 卡片布局(CardLayout)使用示例 536
14.9.5 增强网格布局(GridBagLayout)使用示例 538
14.9.6 Swing新增的布局管理 541
14.10 Java 2D开发技术 541
14.10.1 Java 2D概述 541
14.10.2 Graphics2D类 541
14.10.3 2D形状 542
14.10.4 文本与字体支持 543
14.10.5 高级功能 544
14.11 GUI程序设计实例1——色盲检测 545
14.11.1 界面的实现 545
14.11.2 “开始”按钮的事件处理 547
14.11.3 “确定”按钮的事件处理 547
14.11.4 滚动条的事件处理 548
14.11.5 完整的程序 548
14.12 GUI程序设计实例2——小闹钟 551
14.12.1 程序界面的实现 551
14.12.2 时间的刷新代码 553
14.12.3 JRadioButton的事件响应代码 553
14.12.4 “确定”按钮的事件响应代码 554
14.12.5 “取消”按钮的事件响应代码 556
14.12.6 完整的程序 556
14.13 GUI程序设计实例3——字体选择对话框 560
14.13.1 界面的实现 561
14.13.2 监听ListSelectionEvent事件 563
14.13.3 按钮响应事件 563
14.13.4 对话框的显示 564
14.13.5 返回用户选择的字体 564
14.13.6 如何使用字体选择对话框 564
14.14 GUI程序设计实例4——记事本 565
14.14.1 增加弹出式菜单 565
14.14.2 “退出”菜单的响应代码 565
14.14.3 覆盖JFrame的processWindowEvent方法 566
14.14.4 监听JTextArea的DocumentEvent事件 567
14.14.5 “另存为...”菜单的响应代码 567
14.14.6 “保存”菜单的响应代码 569
14.14.7 “新建”菜单的响应代码 570
14.14.8 “打开...”菜单的响应代码 571
14.14.9 “打印...”菜单的响应代码 572
14.14.10 “剪切”菜单的响应代码 574
14.14.11 “复制”菜单的响应代码 574
14.14.12 “粘贴”菜单的响应代码 575
14.14.13 “全选”菜单的响应代码 575
14.14.14 “时间/日期”菜单的响应代码 575
14.14.15 “自动换行”菜单的响应代码 575
14.14.16 “查找...”菜单的响应代码 575
14.14.17 “设置字体...”菜单的响应代码 578
14.13.18 完整的程序 578
14.15 本章小结 587
14.16 实战习题 587
第15章 Java多媒体编程应用(教学视频:16分钟) 589
15.1 声音文件的播放 589
15.1.1 在Applet中播放声音 590
15.1.2 在Application中播放声音 591
15.1.3 利用JavaSound API播放声音 593
15.2 基本图形处理 598
15.2.1 基本图形的创建 598
15.2.2 基本图形的处理 603
15.2.3 图形的特效显示 605
15.3 字体的处理 612
15.3.1 字体的处理方法 613
15.3.2 字体的展示处理 616
15.3.3 字体的特效显示 618
15.4 图像的显示处理 620
15.4.1 图像的显示 621
15.4.2 图像的变换 623
15.4.3 图像的合成 628
15.4.4 图像显示特效 630
15.5 视频文件的播放 634
15.5.1 Java媒体框架:JMF 634
15.5.2 Java播放器开发实例 636
15.6 本章小结 638
15.7 实战习题 639
第6篇 数据库程序设计 642
第16章 数据库基础(教学视频:47分钟) 642
16.1 数据库的概念 642
16.1.1 数据管理方式的发展 642
16.1.2 数据库的基本概念 643
16.1.3 数据库系统的体系结构 644
16.1.4 数据模型 649
16.2 关系型数据库 650
16.2.1 关系模型的组成 650
16.2.2 关系模型的特点 651
16.2.3 关系型数据库的结构 652
16.2.4 常用的关系型数据库 653
16.2.5 用Access建立一个数据库 653
16.3 SQL基础 658
16.3.1 SQL概述 659
16.3.2 SQL数据定义 659
16.3.3 SQL数据更新 664
16.3.4 SQL数据检索 665
16.3.5 SQL数据控制 671
16.3 本章小结 672
16.4 实战习题 672
第17章 Java数据库编程技术(教学视频:110分钟) 674
17.1 Java对数据库的连接 674
17.1.1 JDBC的基本概念 674
17.1.2 JDBC的工作方式 674
17.1.3 JDBC驱动连接 675
17.1.4 连接池 678
17.1.5 事务操作 679
17.2 Java对数据库的操作 681
17.2.1 常用接口及类 681
17.2.2 建立数据库连接 682
17.2.3 关闭数据库连接 683
17.2.4 添加新数据 684
17.2.5 删除数据 688
17.2.6 修改数据 689
17.2.7 查询数据 690
17.3 学生信息管理系统实例 692
17.3.1 程序设计思路 693
17.3.2 几个相关标记 693
17.3.3 程序界面设计 694
17.3.4 打开数据库 696
17.3.5 关闭数据库 696
17.3.6 显示数据到控件中 697
17.3.7 几个辅助方法 697
17.3.8 “第一条”按钮事件响应代码 697
17.3.9 “前一条”按钮事件响应代码 698
17.3.10 “后一条”按钮事件响应代码 699
17.3.11 “最后一条”按钮事件响应代码 699
17.3.12 “增加记录”按钮事件响应代码 700
17.3.13 “保存记录”按钮事件响应代码 700
17.3.14 “编辑记录”按钮事件响应代码 701
17.3.15 “取消改变”按钮事件响应代码 702
17.3.16 “删除记录”按钮事件响应代码 703
17.3.17 actionPerformed()方法 703
17.4 本章小结 704
17.5 实战习题 704
第7篇 Java网络程序开发 706
第18章 Java网络编程技术(教学视频:78分钟) 706
18.1 网络编程基础 706
18.1.1 TCP/IP协议 706
18.1.2 IP地址 707
18.1.3 域名 707
18.1.4 服务器 707
18.1.5 客户机 707
18.1.6 套接字 708
18.1.7 端口 708
18.1.8 URL 708
18.2 Java网络编程常用API 709
18.2.1 InetAddress类使用示例 709
18.2.2 URL类和URLConnection类的使用 711
18.3 Java Socket应用 715
18.3.1 Socket概念及其通信过程 715
18.3.2 客户端创建Socket对象 716
18.3.3 服务器端创建ServerSocket对象 717
18.3.4 示例程序1——端到端的通信 718
18.3.5 示例程序2——一对多的通信 720
18.3.6 示例程序3——简单的聊天程序 722
18.4 UDP数据报通信 727
18.4.1 DatagramSocket的使用方法 727
18.4.2 DatagramPacket的使用方法 727
18.4.3 示例程序——用UDP实现的聊天程序 728
18.5 Java网络编程的新特性 731
18.5.1 轻量级的HTTP服务 731
18.5.2 Cookie管理特性 733
18.5.3 IPv6网络应用程序的开发 734
18.6 本章小结 737
18.7 实战习题 738
第19章 JSP程序设计(教学视频:42分钟) 739
19.1 从Java Servlet说起 739
19.1.1 Java Servlet概述 740
19.1.2 Java Servlet的生命周期 740
19.1.3 JSP与Servlet的关系 741
19.2 JSP的基本概念 743
19.2.1 动态网站开发技术 743
19.2.2 JSP技术特点 745
19.3 JSP运行环境 746
19.3.1 Tomcat简介 746
19.3.2 Tomcat的安装和启动 747
19.3.3 部署自己的网站 749
19.3.4 一个简单的JSP程序 750
19.4 JSP的指令 751
19.4.1 页面指令(page) 752
19.4.2 包含指令(include) 754
19.4.3 标签库指令(taglib) 754
19.5 JSP的脚本元素 755
19.5.1 HTML注释 755
19.5.2 隐藏注释 756
19.5.3 变量和方法的声明 756
19.5.4 表达式 757
19.5.5 嵌入网页中的程序段(Scriptlet) 757
19.6 JSP的标准操作 758
19.6.1 重定向操作(<jsp:forward>) 758
19.6.2 包含操作(<jsp:include>) 759
19.6.3 嵌入插件(<jsp:plugin>) 760
19.6.4 创建Bean实例(<jsp:useBean>) 762
19.6.5 设置Bean属性(<jsp:setProperty>) 763
19.6.6 获取Bean属性(<jsp:getProperty>) 764
19.7 JSP的隐含对象 765
19.7.1 page对象简介 765
19.7.2 config对象简介 765
19.7.3 利用out对象输出结果到网页 765
19.7.4 利用request对象获取用户数据 766
19.7.5 利用response对象清除网页缓存 769
19.7.6 利用session对象检测用户 771
19.7.7 利用application对象获取容器版本 774
19.7.8 利用pageContext对象获取页面属性 775
19.7.9 利用exception对象处理异常 776
19.8 JavaBeans介绍 777
19.8.1 JavaBeans的属性 777
19.8.2 事件 783
19.8.3 持久化 787
19.8.4 用户化 788
19.9 JSP应用实例1——计数器 790
19.10 JSP应用实例2——日历 792
19.11 JSP应用实例3——数据库查询 795
19.12 JSP应用实例4——简单的留言板 797
19.13 JSP应用实例5——B/S模式的聊天室 802
19.14 本章小结 816
19.15 实战习题 816
第8篇 即时通信系统开发项目实战 820
第20章 系统分析和设计(教学视频:27分钟) 820
20.1 系统开发概述 820
20.1.1 为什么要开发此系统 820
20.1.2 开发此系统所要用到的技术 821
20.2 系统功能分析 822
20.2.1 即时通信系统的功能要点 822
20.2.2 系统开发要点 823
20.3 系统设计 823
20.3.1 系统总体设计 824
20.3.2 服务器端设计 824
20.3.3 客户端设计 827
20.3.4 数据库设计 832
20.4 本章小结 834
20.5 实战习题 834
第21章 服务器端功能模块的实现(教学视频:19分钟) 835
21.1 搭建工程开发框架 835
21.2 服务器的启动与连接功能 836
21.2.1 服务器端界面模块的实现 837
21.2.2 服务器启动模块的实现 842
21.2.3 服务器端线程连接模块的实现 843
21.3 服务器的对外服务功能 845
21.4 服务器端的数据管理功能 852
21.4.1 数据库连接操作的实现 852
21.4.2 客户端用户登录功能实现 853
21.4.3 用户信息展示功能实现 855
21.4.4 用户信息的存储功能实现 858
21.5 服务器端的功能类 860
21.5.1 实现头像显示功能的公用类 861
21.5.2 显示时间的公用类 862
21.5.3 设置窗口位置的公用类 863
21.6 本章小结 864
21.7 实战习题 864
第22章 客户端功能模块的实现(教学视频:25分钟) 865
22.1 用户注册与登录功能 865
22.1.1 用户注册模块 865
22.1.2 用户登录模块 873
22.2 客户端消息交互功能 879
22.2.1 客户端主界面展示 879
22.2.2 聊天模块 893
22.2.3 接收陌生人信息模块 899
22.3 客户端基本操作功能 901
22.3.1 查找好友模块 901
22.3.2 显示好友信息模块 904
22.3.3 更改用户信息模块 906
22.3.4 显示版权信息 914
22.4 本章小结 916
22.5 实战习题 916