第1章 网络程序设计 1
1-1 选择JAVA语言 1
1-2 网络常识 1
1-2-1 网络体系结构 1
1-2-2 协议 2
1-2-3 OSI参考模型 2
1-2-4 命名与路由 3
1-2-5 Internet地址 3
1-3 网络程序设计简介 4
1-4 网络程序设计技术 5
1-4-1 Socket 5
1-4-2 RPC 6
1-4-3 网络程序设计特性 6
1-5 Java支持的网络程序设计 7
1-6 移动网络 8
1-7 Java安全性常识 8
1-9 实践检验 10
1-8 本章小结 10
习题 11
第2章 网络程序设计的编程基础 12
2-1 在没有网络的前提下测试程序 12
2-2 端口 12
2-3 套接字 13
2-4-2 流通信协议 14
2-4-3 UDP与TCP 14
2-4-1 数据报通信协议 14
2-4 TCP/IP和UDP/IP通信 14
2-5 客户/服务器通信 15
2-5-1 数据流 15
2-5-2 TCP Socket 16
2-5-3 UDP Socket(数据报) 18
2-5-4 多点传送Socket 19
2-6 Greetings服务器实例 19
2-6-1 服务器程序 20
2-6-2 客户程序 21
2-7-1 GetName 23
2-6-3 错误 23
2-7 解析Internet地址 23
2-7-2 GetIP 24
2-7-3 NsLookup 24
2-7-4 IPtoName 25
习题 26
第3章 客户和服务器程序设计 28
3-1 对现有服务编写客户程序 28
3-1-1 SMTP客户程序 28
3-1-2 finger客户程序 30
3-1-3 ping客户程序 32
3-2 使用线程进行编程 33
3-2-1 线程 34
3-2-2 线程的优点 35
3-2-3 创建和运行线程 35
3-2-4 创建和启动线程 36
3-2-6 控制线程 37
3-2-7 改变线程优先级 37
3-2-5 使线程睡眠 37
3-2-8 同步 38
3-3 编写新的服务器和客户程序 39
习题 44
第4章 应用程序中的Socket 45
4-1 开发一个多线程HTTP服务器 45
4-2 HTTP的安全 49
4-3-2 代理服务器的优点 50
4-3-1 代理服务器的工作方式 50
4-3 代理服务器 50
4-4 通过Socket访问数据库 51
4-5 解释JDBC 52
4-5-1 JDBC安全模式 52
4-5-2 JDBC DriverManager 52
4-5-3 剖析JDBC应用程序 53
4-5-4 Java对象的持久性存储器 55
习题 58
5-1 对象序列化 59
第5章 Socket高级编程 59
5-1-1 对象序列化与持久性 60
5-1-2 对象序列化的安全 61
5-1-3 控制序列化 62
5-1-4 序列化对象的版本 63
5-2 Socket对象 63
5-3 数字签名报文 66
5-3-1 java.security包 66
5-3-2 数字签名 66
5-3-3 示例:通过Socket签名文件 67
习题 72
第6章 实例分析:全局计算引擎 73
6-1 简介 73
6-2 基于Web的全局计算 73
6-2-1 需要全局计算的原因 73
6-2-2 需要基于Web计算的原因 74
6-2-3 需考虑的问题 74
6-3-2 缺点 75
6-3-1 优点 75
6-3 不用CGI的原因 75
6-4 客户/服务器模式 76
6-5 安全问题 76
6-6 实现细节 76
6-6-1 类装载器 77
6-6-2 安全策略 80
6-6-3 计算引擎 82
6-6-4 命令行客户程序 85
6-7-2 代理程序 86
6-7 其他问题 86
6-7-1 搜索计算资源 86
6-8 小结 87
习题 88
第7章 远程方法调用 89
7-1 远程方法调用简介 89
7-2 利用RMI建立分布式系统 89
7-3 定义远程对象 90
7-4-2 远程引用层 91
7-4 桩/构架层 91
7-4-1 桩/构架层 91
7-4-3 传输层 92
7-5 RMI如何工作 92
7-6 分布垃圾回收 92
7-7 RMI和OSI参考模型 93
7-8 安全 93
7-9 小结 94
习题 94
第8章 从RMI开始 96
8-1 基于RMI应用程序的剖析 96
8-1-1 定义远程接口 96
8-1-2 实现远程接口 97
8-1-3 使用远程接口开发客户程序 99
8-1-4 产生桩和构架 100
8-1-5 启动RMI注册表 101
8-2-1 从注册表中删除一个对象 102
8-2 使用RMI注册表工作 102
8-1-6 运行服务程序和客户程序 102
8-2-2 重新绑定一个对象到注册表 103
8-3 RMI与Socket比较 103
8-4 小结 104
习题 104
第9章 高级RMI编程 105
9-1 “城市信息”服务器 105
9-1-1 定义一个远程接口 105
9-1-2 实现远程接口 106
9-1-3 开发一个客户程序 107
9-1-4 产生桩和构架 107
9-1-5 启动RMI注册表 107
9-1-6 运行服务器和客户程序 107
9-2 实现“工厂” 107
9-2-1 定义“工厂”接口 108
9-2-2 实现City2接口 108
9-2-3 实现CityFactory接口 109
9-2-4 调用“工厂” 110
9-2-5 运行“工厂” 111
9-3 实现回调 111
9-3-1 Java中的回调 111
9-3-2 在RMI中实现回调 111
9-4 通过RMI签名对象 115
9-4-1 java.security包 115
9-4-2 示例 115
9-5 小结 118
习题 118
第10章 使用Java 2进行RMI编程 120
10-1 创建定制的Socket类型 120
10-2 创建一个定制的RMISocketFactory 121
10-2-1 减少一个Socket类型 121
10-2-2 减少更多的Socket类型 121
10-2-3 使用定制的RMISocketFactory 122
10-3 SSLSocket 122
10-4-1 简介 123
10-4 远程对象激活 123
10-4-2 激活协议 124
10-4-3 创建一个可激活的远程对象 124
10-5 版本控制 127
10-5-1 包的版本 127
10-5-2 产品版本与用户 129
10-6 小结 129
习题 129
11-1-1 两层结构 130
11-1-2 三层结构 130
11-1 网络应用的系统结构 130
第11章 JSP技术基础 130
11-1-3 网络应用构架中的一些补充概念 131
11-2 J2EE技术简介 133
11-2-1 J2EE的结构 133
11-2-2 J2EE中的主要组件 134
11-3 JSP技术概述 136
11-3-1 JSP的技术原理 136
11-3-3 JSP与Servlet的比较 139
11-3-2 JSP与ASP 139
11-3-4 JSP运行环境的配置 140
11-4 JSP基本语法 140
11-4-1 变量声明与表达式 141
11-4-2 程序段 142
11-4-3 基本指令 143
11-4-4 将JSP与HTML结合起来 145
11-4-5 本节综合实例 146
11-5-1 jsp:include动作 147
11-5 JSP标准动作 147
11-5-2 使用Java Bean 149
11-5-3 jsp:forward动作 150
11-5-4 jsp:plugin动作 152
11-6 JSP的内置对象 154
11-6-1 对象的可见范围 154
11-6-2 与输入输出有关的内置对象 156
11-6-3 session对象 158
11-6-4 与上下文有关的内置对象 162
11-7 疑难问题解答 165
11-6-5 用于错误处理的内置对象 165
11-6-6 与Servlet有关的内置对象 165
11-8 本章小结 166
11-9 实践检验 166
习题 169
第12章 Java Servlet应用技术 173
12-1 Servlet介绍 173
12-1-1 什么是Servlet 173
12-1-2 Servlet技术的特点 173
12-1-3 Servlet的生命周期 174
12-1-4 开发、部署一个简单的Servlet 174
12-2 Servlet的配置 176
12-2-1 Servlet的名字、类和其他杂项 177
12-2-2 初始化参数 177
12-2-3 启动装入优先级 178
12-2-4 Servlet的映射 178
12-3-1 Servlet实现相关的类和方法 179
12-2-5 运行安全设置 179
12-3 Servlet常用接口的使用 179
12-3-2 Servlet配置相关 180
12-3-3 异常相关类 181
12-3-4 请求和响应相关的类和接口 181
12-3-5 会话跟踪 182
12-3-6 Servlet上下文 183
12-3-7 Servlet协作 183
12-4 开发Web应用过滤程序 184
12-3-8 过滤 184
习题 189
第13章 可扩展标志语言(XML)编程 191
13-1 XML简介 191
13-2 XML技术的主要特性 192
13-2-1 格式正规的XML 192
13-2-2 文档类型定义 192
13-2-3 数据建模 192
13-2-4 文档对象模型 192
13-2-7 链接和查询 193
13-2-5 XML简单API 193
13-2-6 命名空间和模式 193
13-2-8 转换XML 194
13-2-9 XML和数据库 194
13-2-10 服务器到服务器 195
13-2-11 电子商务与XML 195
13-2-12 使用样式 195
13-3 XML语法 196
13-3-1 XML语法规则 196
13-3-2 元素的语法 197
13-3-3 注释的语法 198
13-3-4 CDATA的语法 198
13-3-5 Namespaces的语法 198
13-3-6 entity的语法 199
13-3-7 DTD的语法 200
13-4 解析器 202
13-4-1 事件驱动的解析器 202
13-4-2 基于树的解析器 203
13-4-3 解析器基准测试 204
13-5 SAX 1.0介绍 204
13-5-1 事件驱动接口 204
13-5-2 SAX的由来 207
13-5-3 SAX的高级特性 222
13-5-4 一些SAX设计模式 227
习题 240
14-1 什么是XSL 242
第14章 可扩展样式XSL编程 242
14-2 使用XSLT引擎 245
14-3 XSLT样式表命令 253
14-3-1 创建模板 254
14-3-2 处理空白 254
14-3-3 输出格式 255
14-3-4 合并样式表 255
14-3-5 嵌入样式表 256
习题 257
15-2-1 直接读写XML文档 258
15-2 XML解析器 258
第15章 用Servlet与XSL结合开发WEB应用程序 258
15-1 什么是JAXP 258
15-2-2 使用XmlDocument类 259
15-2-3 使用TransformerFactory和Transformer类 260
15-2-4 OutputKeys类 261
15-2-5 使用Xalan XML Serializer 262
15-3 Servlet与XSL配合机制 263
习题 265
第16章 Java网络程序设计实例 266
16-1 举例:客户中心系统 266
16-1-1 项目需求、目的 266
16-1-2 功能概述 266
16-1-3 功能具体分析 266
16-1-4 安全性需求 267
16-1-5 可维护性需求 267
16-2 数据库设计 268