第1章 什么是Java 3
1.1作为Web编程语言的Java 3
1.2作为应用程序编程语言的Java 5
1.3 Java的新特性 6
1.4作为内嵌式系统语言的Java 7
第2章 在Web页中嵌入App Iet 8
2.1没有Java?没问题 8
2.2传递applet的参数 11
2.3加快applet的启动速度 17
第3章 应用小程序的安全约束 21
3.1应用小程序的安全性 21
3.2文件存取约束 22
3.3网络约束 22
3.4其他安全约束 23
3.5免除安全约束 23
用数字化签名增加权限 24
建立自定义的安全管理器 25
第4章 图像显示 29
4.1 Java图像 29
4.2简单图像的显示 30
4.3制作自己的图像 34
4.4其他图像格式的显示 36
4.5图像处理 46
4.6图像色彩的过滤 56
4.7下载图像 61
第5章 动画图像 65
5.1动画 65
5.2动画驱动器 66
5.3用图像序列产生动画 72
5.4用图像局部的变化产生动画 77
5.5用过滤器产生动画 81
5.6调色板的轮转 85
5.7图形动画 91
整屏刷新 91
用XOR制作动画 93
5.8消除闪烁 97
第6章 与Web服务器通信 101
6.1 Java和Web服务器 101
6.2用URL类获取文件 101
6.3用报路获取文件 105
6.4用GET进行查询 109
6.5用URL类发送数据 112
6.6用报路发送数据 115
6.7支持Cookie协议 117
第7章 构造更精巧的表单 128
7.1更精巧的表单 128
7.2使用AWT构造表单 129
7.3在客户机端检查错误 135
7.4添加上下文相关的帮助 136
7.5构造动态表单 142
7.6在应用小程序中加载另一URL 148
7.7创建带热点的图像地图 149
第8章 用应用小程序读写文件 160
8.1应用小程序和文件 160
8.2使用应用小程序的JFS文件系统 160
用JFS打印文件 162
从JFS访问其他Web服务器 163
8.3用HTTP Post保存文件 163
8.4用FTP来存储和获取文件 166
发送FTP命令 167
建立FTP会话 169
发送简单的FIP命令 170
建立数据连接 171
第9章 创建可重用的图形组件 177
9.1可重用的图形组件 177
92命令模式 178
9.3创建可重用的图像按钮 184
设置画布的大小 184
处理输入事件 186
绘制画布 187
监视图像的更新 190
创建CommandImageButton 190
9.4使用Observer接口 194
模型-视图-控制器范例 194
Observable类和模型-视图-控制器范例 195
9.5其他类中应用Observable类 199
第10章 应用小程序间的通信 209
10.1定位其他应用小程序 209
10.2利用管道流交换数据 211
10.3创建多客户管道 217
10.4与单个对象共享信息 221
第11章 应用小程序发送电子函件 232
11.1发送电子函件 232
11.2用SMTP协议发送电子函件 232
11.3用POPS协议访问邮箱 242
第12章 保护应用小程序代码 254
12.1防止未授权使用代码 254
12.2在代码中嵌入版权声明 255
12.3检验应用小程序的出处 256
12.4隐藏应用小程序的信息 256
12.5运行程序中的迷惑法 257
使所有的函数名和变量名无意义 257
偶尔执行无用的计算或循环 257
把小数字隐藏在字符串中 258
创建大方法 258
将方法放在子类中展开 259
使用商业性迷惑器 259
第13章 把应用小程序作为应用程序运行 263
13.1应用小程序和应用程序的区别 263
13.2把应用小程序作为应用程序运行 264
13.3应用小程序的运行环境 266
134创建应用小程序上下文 267
第14章 创建自己的类档案库文件 280
14.1类档案库文件 280
14.2用Info-ZIP创建自己的档案库文件 281
14.3查看打包档案库文件的内容 282
14.4直接往浏览器库中添加类 283
14.5用其他档案打包器创建类档案文件 283
14.6创建Internet Explorer的柜打包文件 284
第15章 通过JDBC访问数据库 286
15.1关系数据库的数据组织 286
使用SQL 288
用连接实现多表数据组合 288
内部连接 289
外部连接 290
减连接 290
连接和SQL语句常识 291
15.2设计客户/服务器数据库应用程序 291
客户/服务器系统的层次 292
游标处理 294
ODBC游标类型 295
复制 296
15.3用JDBC访问数据库 297
JDBC工作机制 297
JDBC安全模型 299
用JDBC-ODBC桥访问ODBC数据库 299
JDBC类概论 299
JDBC应用程序剖析 301
JDBC API示例 301
15.4 Connection类 304
15.5处理SQL语句 305
建立和使用直接SQL语句 306
建立和使用编译SQI语句(PreparedStatement) 308
调用存储过程(Ca11ableStatement) 310
15.6在JDBC中检索结果 312
15.7处理JDBC中的例外——SQLException类 314
15.8处理JDBC中的例外——SQLWarnings类 315
15.9处理日期和时间 315
java.sql.Date 315
java sql.Time 316
java.sql.Timestamp 316
15.10处理SQL类型 316
15.11 JDBC前景 317
第16章 用RMI创建三层分布式应用程序 321
16 1创建三层应用程序 321
16.2 RMI特性 323
16.3建立RMI服务器 323
定义远程接口 324
服务器实现 329
创建占位小程序类 334
16.4创建RMI客户机 334
16.5创建对等RMI应用程序 335
16.6无用存储单元收集、远程对象和对等 343
第17章 创建CORBA客户机 344
17.1定义IDL接口 345
17.2编译Java客户机的IDL接口 347
17.3编写客户机应用小程序 348
17.4例外处理 350
17.5 CGI程序、Java.net.*和Java.io.*不一定是最佳选择 352
17.6使用动态调用接口和接口仓库 354
17 7使用过滤器 359
17.8关于分布式系统体系结构的思考 360
第18章 在Java中使用CORBA IDL 364
18 1什么是CORBA 364
18.2 Sun提供的IDL到Java映射 366
IDL模块 367
IDL常量 367
IDL数据类型 368
枚举类型 368
18.3结构 369
联合 370
序列和数组 372
例外 372
接口 373
属性 374
18.4在应用小程序中使用CORBA 374
18.5用JavaIDL创建CORBA客户机 375
18.6用VisiBroker创建CORBA客户机 378
第19章 创建CORBA服务器 380
19.1创建基本CORBA服务器 380
使用IDL结构定义的类 382
VisiBroker框架程序 382
使用VisiBroker的TIE接口 385
JavaIDL框架程序 386
19.2在CORBA中创建回调 388
19.3用CORBA包装现有对象 389
实现CORBA定义类型的映射 390
创建远程方法包装 391
实现包装的回调 391
第20章 增强图形性能 399
20.1用双缓冲区法加速绘图 399
运行时检测最佳绘图方式 400
编写自动检测的update方法 402
20.2选择修改 403
20.3重画改变区域 406
第21章 下载策略 411
21.1霍夫曼编码和LZ压缩法 412
21.2延迟下载 413
21.3后台下载 414
21.4提供本地库 418
为Hotjava和Appletviewer安装本地库 419
为Netscape安装本地库 420
为Internet Explorer安装本地库 420
21.5包格式下载类 421
Netscape Navigator 3的包下载 421
打包文件的类加载器 421
21.6用JAR格式或柜打包格式存储类 429
第22章 快速下载图像 430
22.1降低图像文件大小 430
22.2图像片 432
22.3创建另一个图形环境 434
22.4在图像片中存储图像局部 435
第23章 在Java中创建Web服务 441
23.1用Java对象代替CGI 441
23.2服务小程序API 443
23.3将Web服务器作为计算服务器 443
23.4在Java应用程序中加入Web访问 443
23.5将来升级到Web服务器 447
第24章 为Jeeves编写Web服务器 448
24.1什么是Jeeves 449
24.2 Jeeves HITP服务器 449
回顾结构 449
安装和运行Jeeves HTTP服务器 450
管理Jeeves Web服务器 450
用Java驱动程序的浏览器管理Jeeves 451
修改基本Web服务器参数 452
配置Web服务器日志 452
创建文件别名 452
配置MIME 453
将服务小程序加载进Web服务器 453
创建服务小程序别名 454
HTTP服务器安全机制 455
服务小程序安全机制 455
保护Web资源 455
在安全域中增加用户 455
创建用户组 455
创建和修改ACL 457
用服务小程序扩展Jeeves功能 458
使用服务小程序API 458
扩展servlet类 459
通过ServletResponse接口发送信息 460
通过ServletRequest接口接收信息 460
通过ServletContext接口获取信息 461
24.3使用Jeeves开发工具包 461
使用FormServlet处理表单输入 462
用过滤器接口在HTML页上嵌入服务小程序 462
使用Jeeves HTML类生成HTML 463
24.4建立数据库服务小程序 463
从用户那里获取信息 464
将服务小程序连接到JDBC数据库 464
在数据库中插入数据 465
搜寻数据库 467
24.5用Jeeves建立一个简单的自动代理系统 471
利用对象串行化在因特网上传递代理 471
建立远程代理机构 472
创建一般代理接口 473
实现数据库查找代理 474
建立出发地代理机构 475
发送代理 476
汇报代理 478
第25章 为Jigsaw编写Web服务 479
25.1回顾体系结构 480
端口监控模块处理HTTP协议 480
资源模块管理服务器信息空间 480
通过对象持续保持服务器状态 480
资源过滤器在请求前后的处理 481
25.2 Jigsaw接口 481
HTTPResource类 481
FilteredResource类 483
DirectoryResource类 483
FileResource类 484
25.3安装和设置Jigsaw HTTP服务器 485
25.4在Jigsaw服务器中增加内容 487
25.5用Java扩展服务器 489
25.6用Java编写资源过滤器 493
25.7用Java处理表单和POST方法 496
第26章 用数字化签名保证应用小程序的安全 505
26.1什么是数字化签名 506
26.2允许签名的应用小程序拥有更多的访问权限 508
26.3利用第三方为应用小程序签名 509
26.4数字化签名的潜在安全问题 510
使用假的签名 510
接收旧软件 513
对签名应用小程序的误信 513
运行假Web浏览器 514
26.5获得数字化签名证明 515
26.6数字化签名的其他用途 516
第27章 数据加密 517
27.1选择适当的加密种类 519
27.2免受恶意者攻击 520
防止重放攻击 522
不要在应用小程序中存储密钥 522
使用公用密钥加密来交换会话密钥 522
用安全HTTP制止假冒 524
27.3获取加密软件 524
获得安全报路(socket)库一SSLava 524
获得Cryptix库 525
获得Acme Crypto包 533
第28章 安全访问远程系统 535
28.1获得安全Web服务器 537
28.2防止假冒 538
28.3访问远程数据 538
28.4向客户传递密钥 538
不要重新使用对称密钥 538
使用公用密钥加密来获得私用密钥 539
将私用密钥作为应用小程序参数传递 540
28.5实现单客户安全服务器 542
28.6实现多客户安全服务器 556
28.7创建其他安全远程访问程序 560
第29章 创建Java购物车 563
29.1 设计基础购物车 563
29.2创建购物车用户接口 570
29.3创建目录应用小程序 574
29.4获取购物车应用小程序 579
第30章 执行安全事务 585
30.1让客户用数字签定单 585
30.2在所有网络通信中使用加密 587
30.3为Netscape服务器创建Java服务 587
创建服务器端的“Hello World” 588
安装新的服务器端的Java应用小程序 589
在服务器端应用小程序中控制表单 590
将文件作为响应发送 593
返回多重响应 594
在应用小程序调用间维护信息 596
30.4让服务器应用小程序在不同的Web服务器上工作 600
30.5执行安全事务 600
第31章 Java电子商务机构(JECF) 609
31.1电子商务的难点 610
信息盗窃 610
欺诈程序 610
专用解决方案 610
静态解决方案 610
平台无关 610
31.2用JECF创建在线服务 611
31.3在皮夹数据库中存储信息 611
保证数据安全 611
执行事务 612
31.4用JECF实现购物车应用小程序 613
31.5用字体卡提供服务 613
用付款字体卡注册付款 613
创建其他皮夹服务 613
保证字体的安全 614
处理系统错误 614
JECF现状 615
31.5.6有关JECF的更多信息 615
第32章 封装遗留系统 619
32.1着重功能,而非形式 620
32.2提供对新系统的访问能力 621
32.3使用CORBA打开一个关闭的系统 623
32.4封装TCP/IP系统 624
32.5用本机方法调用进行封装 624
捆绑Java和本机接口 624
用C编写本机方法 627
32.6仿真用户式封装 629
32.7向遗留系统寻求帮助 630
32.8提供不同接口 630
32.9多个系统的组合 632
在遗留系统中处理删除源(Deletion Originating) 633
使用两阶段提交协议 633
实现两阶段提交 633
32.10一些实例 634
遗留系统示例 634
基于现有终端编写新应用程序 635
为现有应用程序建新的接口 637
为遗留系统转换铺平道路 640
第33章 Web驱动的遗留系统 642
33.1.使用封装访问遗留数据 642
以非会话事务为目标 642
在Web页上存储会话信息 643
33.2使用HTTP Cookies保存会话信息 649
选择好会话标识符 651
清除旧的会话 651
33.3从服务小程序中访问遗留数据 651
第34章 CICS系统接口 657
34.1 CICS概略 658
34.2 CICS外部调用接口 658
34.3 Java-CICS网关API 659
34.4创建多调用的LUM 660
34.5创建CICS的Web接口 661
34.6为CICS提供CORBA接口 662
创建CORBA-CICS网关 662
创建CICS程序的CORBA接口 663
第35章 给HotJava附加协议 667
35.1写协议处理程序 667
第一步:确定包名 668
第二步:创建目录 668
第三步:设置CLASSPATH 669
第四步:实现协议 670
第五步:创建Handler类 675
第六步:编译源程序 676
35.2在HotJava中使用协议处理程序 676
第一步:更新properties文件 677
第二步:运行HotJava 677
35.3在应用程序中使用协议处理程序 678
main ()方法:启动FetchWhois 680
FetchWhois构造函数:完成工作之处 680
whoisUSHFactory类:注册协议处理程序 681
运行FetchWhois 681
35.4细述URLStreamHandlerFactory 681
第36章 为HotJava增加新MIME类型 686
36.1编写内容处理程序 686
第一步:确定包名 687
第二步:创建目录 687
第三步:设置CLASSPATH 688
第四步:编写内容处理程序 689
第五步:编译源程序 692
36.2在HotJava中使用内容处理程序 692
第一步:禁止MIME处理 693
第二步:更新properties文件 693
第三步:运行HotJava 693
36.3在应用程序中使用内容处理程序 694
启动FetchFuddify 696
ContentahandlerFactory实现程序 697
运行应用程序 697
第37章 在Java中创建多用户程序 698
37.1设计多用户应用程序 698
37.2在多用户应用程序中增加基于报路访问方式 703
创建基于报路的服务器 704
在报路上发送消息 706
37.3处理报路的其他问题 719
37.4在多用户应用程序中增加RMI访问方式 720
第38章 创建请求式多媒体服务 733
38.1 Java对于请求式应用程序的适用性 733
38.2使用请求式音频应用小程序 735
登录 735
播放音频剪辑 735
38.3为应用小程序添加声音 736
38.4讨论请求式音乐应用小程序代码 737
应用小程序的体系结构 737
初始化和注册 737
选择曲目 739
播放歌曲 741
38.5 Java的缺点 741
38.6 Java的新功能 742
第39章 实现多媒体百科全书 743
39.1 Java对多媒体应用程序的适用性 743
Java是可移植的 744
Java是紧凑的 744
Java能处理流式数据 744
Java是基于客户/服务器的 744
Java可轻松支持PDA 744
39.2使用多媒体百科全书 744
39.3在应用小程序中增加图像和声音 745
39.4深入在线式多媒体百科全书 747
应用小程序体系结构 747
索引窗口 748
主题窗口 748
39.5缺陷 750
39.6新功能 750
第40章 在非传统设备上实现Java接口 755
40.1非传统设备的特征 756
40.2新的计算模型 756
40.3设计支持非传统设备的应用程序 759
用户界面与应用程序分离 760
避免大型的单块应用程序 761
尽量用标准库 761
避免长而复杂的事务处理 762
40.4为小型设备设计用户界面 762
创建简明的自编文件界面 762
避免无关的图片和信息 762
保持可读性 763
支持多输入源 763
40.5为小型设备创建可重用组件 764
将布局管理器CardLayout作为堆栈使用 764
创建键盘/小键盘输入过滤器 767
为光笔和触摸屏用户创建弹出式小键盘 773