《Java开发技术大全》以J2SE为平台全面介绍了Java的基础知识和常用技术。
《Java开发技术大全》共分为8篇,首先讲述了Java的基础语法,然后介绍了Java中类和对象的实现,这也是Java的核心所在。随后介绍了Java中的高级技术,详细讨论了其中的多线程、集合、泛型、RTTI等。这些基本知识介绍完毕之后,就进入到实际编程阶段,先后介绍了GUI程序设计、多媒体程序设计、数据库和网络程序设计,这些知识均以示例程序来讲解。最后提供了一个完整的即时通讯软件设计实例,让读者能够从实例中学习程序设计的真谛。Java是目前最为流行的程序设计语言。
《Java开发技术大全》内容全面,实例丰富,特别适合于自学者。《Java开发技术大全》可作为计算机、软件工程专业的教材,也可作为Java程序员的参考手册。
Java开发技术大全目录
第1篇 Java基础知识入门
第1章 Java的开发运行环境 2
1.1 Java的运行环境与虚拟机 2
1.2 Java的开发环境 4
1.2.1 JDK的安装 4
1.2.2 如何设置系统环境变量 6
1.2.3 编译命令的使用 8
1.2.4 解释执行命令的使用 10
1.2.5 UltraEdit的使用 11
1.3 一个简单的Java应用程序 14
1.4 一个简单的Java小程序 16
1.5 本章小结 18
第2章 Java语言基础 19
2.1 Java语言的特点 19
2.2 Java程序的构成 21
2.3 数据类型 23
2.3.1 基本数据类型 23
2.3.2 常量 25
2.3.3 变量 26
2.3.4 整型数据 27
2.3.5 浮点型数据 29
2.3.6 字符型数据 30
2.3.7 布尔型数据 32
2.3.8 变量赋初值 33
2.3.9 变量的作用域 34
2.3.10 数据类型转换 34
2.4 运算符与表达式 37
2.4.1 算术运算符和算术表达式 38
2.4.2 关系运算符和关系表达式 43
2.4.3 逻辑运算符和逻辑表达式 44
2.4.4 条件运算符和条件表达式 48
2.4.5 位运算符和位运算表达式 50
2.4.6 赋值运算符和赋值表达式 53
2.4.7 表达式的求值顺序 55
2.5 流程控制语句 58
2.5.1 三种基本控制结构 58
2.5.2 表达式语句和空语句 59
2.5.3 块语句 60
2.5.4 if~else分支语句 61
2.5.5 多路分支switch~case语句 69
2.5.6 当型循环while语句 71
2.5.7 直到型循环do~while语句 72
2.5.8 当型循环for语句 74
2.5.9 循环的嵌套 78
2.5.10 跳转语句break 80
2.5.11 跳转语句continue 82
2.6 程序文本的风格 84
2.6.1 注释 84
2.6.2 程序的格式编排 87
2.7 基础语法实战演习 88
2.7.1 判断闰年 88
2.7.2 求最大公约数和最小公倍数 89
2.7.3 Fibonacci数列 90
2.7.4 逆向输出数字 91
2.7.5 求水仙花数 92
2.7.6 输出图形 93
2.7.7 输出九九口诀表 94
2.8 本章小结 95
第2篇 Java面向对象编程
第3章 对象和类 98
3.1 面向对象的基本概念 98
3.1.1 对象 98
3.1.2 类 99
3.1.3 消息 101
3.1.4 面向对象的4个基本特征 101
3.2 类与对象 104
3.2.1 类的基本结构 104
3.2.2 类的声明 104
3.2.3 创建类体 105
3.2.4 对象的生命周期 106
3.2.5 对象的创建 106
3.2.6 对象的使用 108
3.2.7 对象的释放和垃圾收集机制 108
3.3 成员变量的定义与使用 109
3.3.1 成员变量的定义 109
3.3.2 成员变量的访问权限 110
3.3.3 实例成员变量和静态成员变量 114
3.4 方法的定义和实现 116
3.4.1 方法的声明 117
3.4.2 创建方法体与return语句 117
3.4.3 局部变量和成员变量的区别 119
3.4.4 方法的访问权限 121
3.5 方法的调用 121
3.5.1 方法调用的形式 121
3.5.2 方法调用的参数 123
3.5.3 隐含参数this 127
3.6 构造方法 128
3.6.1 无参数构造方法的定义和使用 129
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.10 本地方法 141
3.11 本章小结 144
第4章 继承与多态 145
4.1 继承的基本原理 145
4.2 子类对父类的继承 146
4.3 属性隐藏和方法的覆盖 148
4.3.1 属性的隐藏 148
4.3.2 方法的覆盖 151
4.4 构造方法的继承 154
4.5 super的使用 156
4.5.1 用super引用父类的成员 156
4.5.2 使用super调用父类的构造方法 157
4.6 继承的内部处理 158
4.7 多态的基本概念 159
4.8 重载 159
4.8.1 普通方法的重载 160
4.8.2 构造方法的重载 161
4.8.3 重载的解析 163
4.8.4 重载与覆盖的区别 165
4.9 运行时多态 165
4.9.1 实例方法的运行时多态 165
4.9.2 成员变量运行时的表现 167
4.9.3 静态方法运行时的表现 169
4.10 抽象类与抽象方法 170
4.10.1 抽象方法的声明 170
4.10.2 抽象类的定义 170
4.10.3 抽象方法与回调函数 171
4.11 最终类与最终方法 173
4.12 接口与多重继承 174
4.12.1 接口的定义 174
4.12.2 接口的继承 175
4.12.3 接口的实现 177
4.13 内部类 179
4.13.1 内部类的定义 179
4.13.2 内部类访问外部类的成员 182
4.13.3 内部类之间的相互使用 185
4.13.4 在外部使用内部类 186
4.13.5 匿名内部类 187
4.13.6 内部类的作用 188
4.14 包 189
4.14.1 包的创建 189
4.14.2 包的使用 191
4.14.3 JAR文件的创建和使用 193
4.14.4 JDK中的常用包 195
4.15 本章小结 196
第3篇 Java数据处理
第5章 数组与字符串 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 for~each循环 208
5.1.8 应用程序示例1——数组排序 209
5.1.9 应用程序示例2——杨辉三角 212
5.2 字符串 213
5.2.1 String对象的声明 213
5.2.2 String对象的创建 214
5.2.3 String对象的使用 214
5.2.4 String类型的数组 216
5.2.5 StringBuffer对象的声明 217
5.2.6 StringBuffer对象的创建 217
5.2.7 StringBuffer对象的使用 218
5.3 本章小结 219
第6章 Java的异常处理 220
6.1 异常的基本概念和作用 220
6.2 Java的异常处理机制 221
6.3 异常类的层次结构 222
6.3.1 运行时异常 222
6.3.2 检查型异常 223
6.3.3 自定义异常 224
6.4 捕获和处理异常 224
6.5 抛出异常 228
6.6 try-catch-finally语句的嵌套 231
6.7 用户自定义异常 234
6.8 使用异常来实现键盘输入 235
6.9 本章小结 236
第7章 Java的输入和输出 237
7.1 文件和输入输出流 237
7.2 InputStream类和OutputStream类的使用 238
7.2.1 InputStream中的方法 238
7.2.2 OutputStream中的方法 239
7.2.3 文件输入流FileInputStream 239
7.2.4 文件输出流FileOutputStream 239
7.2.5 保存用户输入到文件 240
7.2.6 显示文件内容 241
7.2.7 文件的复制 243
7.2.8 顺序输入流 244
7.2.9 管道输入输出流 246
7.2.10 过滤输入输出流 248
7.3 Reader和Writer类使用 249
7.3.1 InputStreamReader类中的方法 249
7.3.2 OutputStreamWriter类中的方法 250
7.3.3 从键盘输入 250
7.3.4 文件复制 251
7.4 文件属性处理 252
7.4.1 File类中的方法 252
7.4.2 File类使用示例——文件列表 253
7.5 随机访问文件 254
7.5.1 RandomAccessFile类中的方法 254
7.5.2 RandomAccessFile类使用示例——文件加密 256
7.6 控制台输入和输出 257
7.6.1 控制台输入类Scanner 257
7.6.2 格式化输出printf 258
7.7 序列化 261
7.8 本章小结 264
第4篇 Java中的高级技术
第8章 Java的多线程机制 266
8.1 线程的概念 266
8.1.1 多线程的特点 266
8.1.2 线程的状态 267
8.2 Thread类 268
8.2.1 Thread类的构造方法 268
8.2.2 Thread类的常用方法 268
8.3 多线程程序的编写 269
8.3.1 利用Thread的子类创建线程 270
8.3.2 实现Runnable接口创建线程 272
8.3.3 使用isAlive()和join()等待子线程结束 273
8.3.4 设置线程优先级 275
8.4 线程的通信与协调 277
8.4.1 线程的互斥 277
8.4.2 线程的同步 279
8.4.3 暂停、恢复和停止线程 282
8.4.4 生产者-消费者问题实例 284
8.5 本章小结 287
第9章 运行时类型识别 288
9.1 RTTI的作用 288
9.2 用Class类来加载对象 289
9.3 使用getClass()方法获取类信息 290
9.4 使用类标记 292
9.5 使用关键字instanceof判断所属类 292
9.6 利用反射获取运行时类信息 293
9.6.1 使用isInstance()方法判断所属类 294
9.6.2 获取成员方法信息 295
9.6.3 获取构造方法信息 296
9.6.4 获取类的成员属性 297
9.6.5 根据方法的名称来执行方法 299
9.6.6 创建新的对象 300
9.6.7 改变属性的值 301
9.6.8 使用数组 301
9.7 本章小结 303
第10章 泛型 304
10.1 泛型的本质 304
10.2 一个关于泛型的简单例子 305
10.3 带两个类型参数的泛型类 308
10.4 有界类型 309
10.5 通配符参数 311
10.6 泛型方法 313
10.7 泛型接口 315
10.8 泛型类的继承 317
10.8.1 以泛型类为父类 317
10.8.2 以非泛型类为父类 319
10.8.3 运行时类型识别 320
10.8.4 强制类型转换 321
10.8.5 继承规则 322
10.9 擦拭 323
10.10 擦拭带来的错误 324
10.10.1 静态成员共享问题 325
10.10.2 重载冲突问题 325
10.10.3 接口实现问题 326
10.11 泛型的局限 326
10.11.1 不能使用基本类型 326
10.11.2 不能使用泛型类异常 326
10.11.3 不能使用泛型数组 327
10.11.4 不能实例化参数类型对象 327
10.12 本章小结 328
第11章 集合 329
11.1 集合接口与抽象类 329
11.1.1 Collection接口 330
11.1.2 Iterator接口 330
11.1.3 AbstractCollection抽象类 331
11.1.4 几个常用术语 332
11.2 集合类的使用 333
11.2.1 顺序表(ArrayList)使用示例 333
11.2.2 链表(LinkedList)使用示例 336
11.2.3 优先队列(PriorityQueue)使用示例 340
11.2.4 哈希集合(HashSet)使用示例 343
11.2.5 哈希映射类(HashMap)使用示例 347
11.2.6 有序树(TreeSet)使用示例 349
11.2.7 有序树映射类(TreeMap)使用示例 353
11.2.8 枚举(Enum)使用示例 355
11.2.9 枚举集(EnumSet)使用示例 358
11.3 常用算法 361
11.3.1 Collections中的简单算法 361
11.3.2 排序 362
11.3.3 二分查找 364
11.4 遗留的类和接口 366
11.4.1 Enumeration接口简介 366
11.4.2 向量类(Vector)使用示例 367
11.4.3 栈(Stack)使用示例 369
11.4.4 字典(Dictionary)简介 370
11.4.5 哈希表(Hashtable)简介 371
11.5 本章小结 371
第12章 类型包装器、自动装箱和元数据(注释) 372
12.1 类型包装器 372
12.1.1 字符类型包装器 372
12.1.2 布尔类型包装器 373
12.1.3 数字类型包装器 373
12.2 自动装/拆箱 375
12.2.1 自动装箱与方法 375
12.2.2 表达式中的自动装/拆箱 376
12.2.3 布尔型和字符型包装器的自动装/拆箱 378
12.3 元数据 378
12.3.1 注释的基础知识 379
12.3.2 指定一个保留策略 380
12.3.3 使用反射在运行时获得注释 380
12.3.4 AnnotatedElement接口 383
12.3.5 使用默认值 383
12.3.6 标记注释 384
12.3.7 单成员注释 385
12.3.8 内置注释 386
12.3.9 使用注释的一些限制 390
12.4 本章小结 390
第13章 常用工具类 391
13.1 Runtime类的使用 391
13.1.1 内存管理 392
13.1.2 执行其他程序 393
13.2 System类的使用 395
13.2.1 利用currentTimeMillis()记录程序执行的时间 395
13.2.2 利用exit()退出虚拟机 396
13.2.3 获取和设置环境属性 397
13.3 Math类的使用 398
13.3.1 利用随机数求π值 398
13.3.2 利用三角函数求π值 400
13.3.3 利用换底公式求任意对数值 401
13.3.4 使用取整函数 401
13.4 Random类的使用 402
13.5 Date类和Calendar类的使用 404
13.5.1 Date类的简单使用 404
13.5.2 使用SimpleDateFormat格式化输出时间 405
13.5.3 Calendar类的特色 408
13.5.4 利用GregorianCalendar输出日历 411
13.6 Formatter类的使用 413
13.6.1 Formatter的简单使用 413
13.6.2 时间格式转换符详解 415
13.6.3 格式说明符语法图 417
13.7 正则表达式 417
13.7.1 正则表达式的作用 418
13.7.2 正则表达式的基本规则 418
13.7.3 正则表达式中的一些高级规则 421
13.7.4 正则表达式中的其他通用规则 424
13.7.5 使用技巧 425
13.8 Pattern类的使用 426
13.9 Matcher类的使用 428
13.9.1 匹配方法的使用 429
13.9.2 替换方法的使用 430
13.9.3 组匹配的使用 431
13.9.4 检验E-mail的合法性 432
13.10 本章小结 434
第5篇 桌面程序开发
第14章 GUI程序设计 436
14.1 GUI程序设计的基本概念 436
14.1.1 组件 437
14.1.2 布局管理 437
14.1.3 事件处理 437
14.2 开发工具Eclipse简介 438
14.2.1 Eclipse的安装与配置 438
14.2.2 用Eclipse创建一个项目 440
14.3 AWT组件简介 444
14.3.1 AWT组件的层次结构 445
14.3.2 AWT中的基本组件和子包 446
14.3.3 AWT组件通用属性与方法 448
14.3.4 使用AWT编制GUI程序示例 449
14.4 事件处理 452
14.4.1 授权事件模型 452
14.4.2 事件 453
14.4.3 事件源 453
14.4.4 事件监听器和适配器 454
14.4.5 编写事件处理程序的基本方法 454
14.4.6 响应窗口关闭事件处理示例 454
14.4.7 事件监听器接口和适配器类 456
14.4.8 作为参数的事件类 456
14.4.9 处理多个事件的例子 463
14.5 Swing组件的特性 467
14.5.1 Swing组件的优势 467
14.5.2 Swing组件的体系结构 468
14.5.3 使用Swing组件编写GUI的层次结构 468
14.6 顶层容器 469
14.6.1 框架类(JFrame)使用示例 469
14.6.2 小应用程序(JApplet)使用示例 472
14.6.3 对话框(JDialog)使用示例 473
14.7 中间容器 476
14.7.1 面板(JPanel)使用示例 476
14.7.2 滚动面板(JScrollPane)使用示例 480
14.7.3 分隔板(JSplitPane)使用示例 482
14.7.4 选项板(JTabbedPane)使用示例 485
14.7.5 工具栏(JToolBar)使用示例 486
14.8 常用组件 488
14.8.1 标签(Jlabel)使用示例 488
14.8.2 按钮(JButton)使用示例 491
14.8.3 文本框(JTextField)和密码框(JPasswordField)使用示例 492
14.8.4 文本区(JTextArea)使用示例 496
14.8.5 复选框(JcheckBox)使用示例 498
14.8.6 单选按钮(JradioButton)使用示例 500
14.8.7 列表框(JList)使用示例 502
14.8.8 组合框(JComboBox)使用示例 506
14.8.9 表格(Jtable)使用示例 508
14.8.10 树(JTree)使用示例 518
14.8.11 菜单使用示例 523
14.9 布局管理 527
14.9.1 流式布局(FlowLayout)回顾 527
14.9.2 边框布局(BorderLayout)使用示例 528
14.9.3 网格布局(GridLayout)使用示例 529
14.9.4 卡片布局(CardLayout)使用示例 530
14.9.5 增强网格布局(GridBagLayout)使用示例 532
14.9.6 Swing新增的布局管理 535
14.10 GUI程序设计实例1——色盲检测 536
14.10.1 界面的实现 536
14.10.2 “开始”按钮的事件处理 538
14.10.3 “确定”按钮的事件处理 539
14.10.4 滚动条的事件处理 539
14.10.5 完整的程序 539
14.11 GUI程序设计实例2——小闹钟 542
14.11.1 程序界面的实现 543
14.11.2 时间的刷新代码 544
14.11.3 JRadioButton的事件响应代码 545
14.11.4 “确定”按钮的事件响应代码 546
14.11.5 “取消”按钮的事件响应代码 548
14.11.6 完整的程序 548
14.12 GUI程序设计实例3——字体选择对话框 553
14.12.1 界面的实现 554
14.12.2 监听ListSelectionEvent事件 556
14.12.3 按钮响应事件 556
14.12.4 对话框的显示 557
14.12.5 返回用户选择的字体 557
14.12.6 如何使用字体选择对话框 557
14.13 GUI程序设计实例4——记事本 558
14.13.1 增加弹出式菜单 558
14.13.2 “退出”菜单的响应代码 559
14.13.3 覆盖JFrame的processWindowEvent方法 560
14.13.4 监听JTextArea的DocumentEvent事件 560
14.13.5 “另存为...”菜单的响应代码 561
14.13.6 “保存”菜单的响应代码 563
14.13.7 “新建”菜单的响应代码 564
14.13.8 “打开...”菜单的响应代码 564
14.13.9 “打印...”菜单的响应代码 566
14.13.10 “剪切”菜单的响应代码 568
14.13.11 “复制”菜单的响应代码 569
14.13.12 “粘贴”菜单的响应代码 569
14.13.13 “全选”菜单的响应代码 569
14.13.14 “时间/日期”菜单的响应代码 570
14.13.15 “自动换行”菜单的响应代码 570
14.13.16 “查找...”菜单的响应代码 570
14.13.17 “设置字体...”菜单的响应代码 572
14.13.18 完整的程序 573
14.14 本章小结 583
第15章 多媒体程序设计 584
15.1 声音文件的播放 584
15.1.1 在Applet中使用AudioClip播放声音 585
15.1.2 在Application中播放声音 586
15.1.3 利用JavaSound API播放声音 588
15.2 基本图形处理 594
15.2.1 画直线 594
15.2.2 画矩形 596
15.2.3 画椭圆和圆弧 597
15.2.4 画多边形 598
15.2.5 封闭图形的填充 599
15.2.6 缩放图形 601
15.3 特效处理 602
15.3.1 颜色处理的基本知识 602
15.3.2 淡入淡出效果 603
15.3.3 透明效果 604
15.3.4 盖房子特效 607
15.4 处理字体 611
15.4.1 Font类中的方法 611
15.4.2 确定可用字体 612
15.4.3 创建和使用字体 613
15.4.4 自行管理字体 615
15.4.5 字体特效显示 618
15.5 图像的显示 620
15.5.1 标准的图像显示 620
15.5.2 显示局部图像 622
15.5.3 图像缩放 623
15.5.4 灰度变换 623
15.5.5 一个简单的图片浏览器 625
15.5.6 合成两幅图片 628
15.5.7 光照特效 631
15.6 视频文件的播放 635
15.6.1 JMF中的常用术语 635
15.6.2 播放器实例 637
15.7 本章小结 640
第6篇 数据库程序设计
第16章 数据库的预备知识 642
16.1 关系型数据库 642
16.1.1 关系型数据库的结构 642
16.1.2 用Access建立一个数据库 643
16.2 SQL基础 648
16.2.1 创建数据库 649
16.2.2 创建数据表 649
16.2.3 建立索引 650
16.2.4 更改数据表结构 651
16.2.5 删除数据表 652
16.2.6 增加记录 653
16.2.7 更新记录 653
16.2.8 删除记录 654
16.2.9 查询记录 654
16.2.10 连接表 658
16.2.11 使用统计函数 659
16.3 本章小结 660
第17章 Java对数据库编程 661
17.1 Java对数据库的连接 661
17.1.1 JDBC的基本概念 661
17.1.2 JDBC的工作方式 661
17.1.3 JDBC驱动连接 662
17.1.4 连接池 664
17.1.5 事务操作 665
17.2 Java对数据库的操作 667
17.2.1 常用接口及类 667
17.2.2 建立数据库连接 669
17.2.3 关闭数据库连接 670
17.2.4 添加新数据 670
17.2.5 删除数据 674
17.2.6 修改数据 675
17.2.7 查询数据 676
17.3 学生信息管理系统实例 679
17.3.1 程序设计思路 679
17.3.2 几个相关标记 680
17.3.3 程序界面设计 680
17.3.4 打开数据库 682
17.3.5 关闭数据库 683
17.3.6 显示数据到控件中 683
17.3.7 几个辅助方法 684
17.3.8 “第一条”按钮事件响应代码 684
17.3.9 “前一条”按钮事件响应代码 685
17.3.10 “后一条”按钮事件响应代码 686
17.3.11 “最后一条”按钮事件响应代码 686
17.3.12 “增加记录”按钮事件响应代码 687
17.3.13 “保存记录”按钮事件响应代码 687
17.3.14 “编辑记录”按钮事件响应代码 688
17.3.15 “取消改变”按钮事件响应代码 689
17.3.16 “删除记录”按钮事件响应代码 690
17.3.17 actionPerformed()方法 690
17.4 本章小结 691
第7篇 Java网络程序开发
第18章 C/S网络程序设计 694
18.1 与网络相关的常用术语 694
18.1.1 TCP/IP协议 694
18.1.2 IP地址 694
18.1.3 域名 695
18.1.4 服务器 695
18.1.5 客户机 695
18.1.6 套接字 695
18.1.7 端口 696
18.1.8 URL 696
18.2 InetAddress类使用示例 696
18.2.1 根据域名查找IP地址 697
18.2.2 根据IP地址查找主机名 698
18.3 URL类和URLConnection类的使用 698
18.3.1 URL类的使用——一个简单的浏览器 699
18.3.2 URLConnection类的使用——文件下载 701
18.4 Socket的使用 703
18.4.1 客户端创建Socket对象 703
18.4.2 服务器端创建ServerSocket对象 704
18.4.3 示例程序1——一对一的通讯 704
18.4.4 示例程序2——一对多的通讯 707
18.4.5 示例程序3——简单的聊天程序 709
18.5 UDP数据报通信 713
18.5.1 DatagramSocket的使用方法 713
18.5.2 DatagramPacket的使用方法 714
18.5.3 示例程序——用UDP实现的聊天程序 714
18.6 本章小结 718
第19章 JSP程序设计 719
19.1 基本概念 719
19.1.1 动态网站开发技术 719
19.1.2 JSP技术特点 721
19.1.3 JSP与Servlet的关系 722
19.2 JSP运行环境 724
19.2.1 Tomcat简介 724
19.2.2 Tomcat的安装和启动 725
19.2.3 部署自己的网站 727
19.2.4 一个简单的JSP程序 728
19.3 JSP的指令 729
19.3.1 页面指令(page) 730
19.3.2 包含指令(include) 732
19.3.3 标签库指令(taglib) 732
19.4 JSP的脚本元素 733
19.4.1 HTML注释 733
19.4.2 隐藏注释 734
19.4.3 变量和方法的声明 734
19.4.4 表达式 735
19.4.5 嵌入网页中的程序段(Scriptlet) 735
19.5 JSP的标准操作 736
19.5.1 重定向操作() 736
19.5.2 包含操作() 737
19.5.3 嵌入插件() 738
19.5.4 创建Bean实例() 740
19.5.5 设置Bean属性() 741
19.5.6 获取Bean属性() 742
19.6 JSP的隐含对象 743
19.6.1 page对象简介 743
19.6.2 config对象简介 743
19.6.3 利用out对象输出结果到网页 743
19.6.4 利用request对象获取用户数据 744
19.6.5 利用response对象清除网页缓存 748
19.6.6 利用session对象检测用户 749
19.6.7 利用application对象获取容器版本 752
19.6.8 利用pageContext对象获取页面属性 753
19.6.9 利用exception对象处理异常 755
19.7 JavaBeans介绍 756
19.7.1 JavaBeans的属性 756
19.7.2 事件 762
19.7.3 持久化 766
19.7.4 用户化 767
19.8 JSP应用实例1——计数器 769
19.9 JSP应用实例2——日历 771
19.10 JSP应用实例3——数据库查询 774
19.11 JSP应用实例4——简单的留言板 777
19.12 JSP应用实例5——B/S模式的聊天室 781
19.13 本章小结 798
第8篇 即时通讯系统开发实例
第20章 系统分析和设计 800
20.1 系统功能分析 800
20.2 数据库设计 801
20.3 系统总体设计 803
20.3.1 服务器端软件结构 803
20.3.2 客户端软件结构 806
20.4 本章小结 811
第21章 服务器端功能模块的实现 812
21.1 启动服务器 812
21.2 服务器主界面 814
21.3 服务连接线程 818
21.4 为客户端提供功能服务模块 820
21.5 数据库连接模块 827
21.6 管理登录用户模块 829
21.7 显示用户信息模块 831
21.8 存储用户信息的JavaBean 833
21.9 实现头像显示功能的公用类 836
21.10 显示时间的公用类 837
21.11 设置窗口位置的公用类 838
21.12 本章小结 839
第22章 客户端功能模块的实现 840
22.1 登录模块 840
22.2 客户端主界面 846
22.3 聊天模块 860
22.4 查找好友模块 866
22.5 显示好友信息模块 868
22.6 接收陌生人信息模块 871
22.7 更改用户信息模块 873
22.8 用户注册模块 880
22.9 显示版权信息 887
22.10 本章小结 889
- PC官方版
- 安卓官方手机版
- IOS官方手机版