《Java编程实战宝典》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:刘新,管磊等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302351702
  • 页数:817 页
图书介绍:作者根据多年的Java教学经验,总结出Java初学者最需要的知识以及正确的学习方法,帮助读者以最少的时间获取最大的收益。分为8个部分:Java基础知识;面向对象的程序设计;Java数据处理;Java中的高级技术;桌面程序开发;数据库程序设计;网络程序开发;一个用Java开发实际应用系统(即时通讯系统)。

第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