-
内容大纲
本书结合大量典性的实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK10版本。本书内容包括:Java网络编程的基础知识、 套接字编程、非阻塞通信、创建HTTP服务器与客户程序、数据报通信、对象的序列化与反序列化、Java反射机制、RMI框架、JDBC API、JavaMail API、MVC设计模式、安全网络通信、XML数据处理和Web服务。
阅读本书,读者不仅可以掌握网络编程的实用技术,还可以进一步提高按照面向对象的思想来设计和编写Java软件的能力。本书适用于所有Java编程人员,包括Java初学者及资深Java开发人员。本书还可作为高校的Java教材,以及企业Java培训教材。 -
作者介绍
孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此期间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。 代表著作有:《Java面向对象编程》《Java网络编程精解》《Java逍遥游记》《Hibernate逍遥游记》《精通Hibernate: Java对象持久化技术详解》《精通Struts: 基于MVC的Java Web设计与开发》《Tomcat与、Java Web开发技术详解》《Java 2认证考试指南与试题解析》。 -
目录
第1章 Java网络编程入门
1.1 进程之间的通信
1.2 计算机网络的概念
1.3 OSI参考模型
1.4 TCP/IP参考模型和TCP/IP
1.4.1 IP
1.4.2 TCP以及端口
1.4.3 RFC简介
1.4.4 客户/服务器通信模式
1.5 用Java编写客户/服务器程序
1.5.1 创建EchoServer
1.5.2 创建EchoClient
1.6 小结
1.7 练习题
第2章 Socket用法详解
2.1 构造Socket
2.1.1 设定等待建立连接的超时时间
2.1.2 设定服务器的地址
2.1.3 设定客户端的地址
2.1.4 客户连接服务器时可能抛出的异常
2.1.5 使用代理服务器
2.1.6 InetAddress地址类的用法
2.1.7 NetworkInterface类的用法
2.2 获取Socket的信息
2.3 关闭Socket
2.4 半关闭Socket
2.5 设置Socket的选项
2.5.1 TCP_NODELAY选项
2.5.2 SO_RESUSEADDR选项
2.5.3 SO_TIMEOUT选项
2.5.4 SO_LINGER选项
2.5.5 SO_RCVBUF选项
2.5.6 SO_SNDBUF选项
2.5.7 SO_KEEPALIVE选项
2.5.8 OOBINLINE选项
2.5.9 IP服务类型选项
2.5.10 设定连接时间、延迟和带宽的相对重要性
2.6 发送邮件的SMTP客户程序
2.7 小结
2.8 练习题
第3章 ServerSocket用法详解
3.1 构造ServerSocket
3.1.1 绑定端口
3.1.2 设定客户连接请求队列的长度
3.1.3 设定绑定的IP地址
3.1.4 默认构造方法的作用
3.2 接收和关闭与客户的连接
3.3 关闭ServerSocket
3.4 获取ServerSocket的信息
3.5 ServerSocket选项
3.5.1 SO_TIMEOUT选项
3.5.2 SO_REUSEADDR选项
3.5.3 SO_RCVBUF选项
3.5.4 设定连接时间、延迟和带宽的相对重要
3.6 创建多线程的服务器
3.6.1 为每个客户分配一个线程
3.6.2 创建线程池
3.6.3 使用JDK类库提供的线程池
3.6.4 向线程池提交有异步运算结果的任务
3.6.5 使用线程池的注意事项
3.7 关闭服务器
3.8 小结
3.9 练习题
第4章 非阻塞通信
4.1 线程阻塞的概念
4.1.1 线程阻塞的原因
4.1.2 服务器程序用多线程处理阻塞通信的局限
4.1.3 非阻塞通信的基本思想
4.2 非阻塞通信API的用法
4.2.1 缓冲区
4.2.2 字符编码Charset
4.2.3 通道
4.2.4 SelectableChannel类
4.2.5 ServerSocketChannel类
4.2.6 SocketChannel类
4.2.7 Selector类
4.2.8 SelectionKey类
4.2.9 Channels类
4.2.10 Socket选项
4.3 服务器编程范例
4.3.1 创建阻塞的EchoServer
4.3.2 创建非阻塞的EchoServer
4.3.3 在EchoServer中混合用阻塞模式与非阻塞模式
4.4 客户端编程范例
4.4.1 创建阻塞的EchoClient
4.4.2 创建非阻塞的EchoClient
4.5 异步通道和异步运算结果
4.6 在GUI中用SwingWorker实现异步交互
4.6.1 SwingWorker类的用法
4.6.2 用SwingWorker类来展示进度条
4.6.3 用SwingWorker类实现异步的AsynEchoClient
4.7 小结
4.8 练习题
第5章 创建非阻塞的HTTP服务器
5.1 HTTP简介
5.1.1 HTTP请求格式
5.1.2 HTTP响应格式
5.1.3 测试HTTP请求
5.2 创建非阻塞的HTTP服务器
5.2.1 服务器主程序:HttpServer类
5.2.2 具有自动增长的缓冲区的ChannelIO类
5.2.3 负责处理各种事件的Handler接口
5.2.4 负责处理接收连接就绪事件的AcceptHandler类
5.2.5 负责接收HTTP请求和发送HTTP响应的RequestHandler类
5.2.6 代表HTTP请求的Request类
5.2.7 代表HTTP响应的Response类
5.2.8 代表响应正文的Content接口及其实现类
5.2.9 运行HTTP服务器
5.3 小结
5.4 练习题
第6章 客户端协议处理框架
6.1 客户端协议处理框架的主要类
6.2 在客户程序中运用协议处理框架
6.2.1 URL类的用法
6.2.2 URLConnection类的用法
6.3 实现协议处理框架
6.3.1 创建EchoURLConnection类
6.3.2 创建EchoURLStreamHandler及工厂类
6.3.3 创建EchoContentHandler类及工厂类
6.3.4 在EchoClient类中运用ECHO协议处理框架
6.4 小结
6.5 练习题
第7章 用Swing组件展示HTML文档
7.1 在按钮等组件上展示HTML文档
7.2 用JEditorPane组件创建简单的浏览器
7.2.1 处理HTML页面上的超级链接
7.2.2 处理HTML页面上的表单
7.2.3 创建浏览器程序
7.3 小结
7.4 练习题
第8章 基于UDP的数据报和套接字
8.1 UDP简介
8.2 DatagramPacket类
8.2.1 选择数据报的大小
8.2.2 读取和设置DatagramPacket的属性
8.2.3 数据格式的转换
8.2.4 重用DatagramPacket
8.3 DatagramSocket类
8.3.1 构造DatagramSocket
8.3.2 接收和发送数据报
8.3.3 管理连接
8.3.4 关闭DatagramSocket
8.3.5 DatagramSocket的选项
8.3.6 IP服务类型选项
8.4 DatagramChannel类
8.4.1 创建DatagramChannel
8.4.2 管理连接
8.4.3 用send()方法发送数据报
8.4.4 用receive()方法接收数据报
8.4.5 用write()方法发送数据报
8.4.6 用read()方法接收数据报
8.4.7 Socket选项
8.5 组播
8.5.1 MulticastSocket类
8.5.2 组播Socket的范例
8.6 小结
8.7 练习题
第9章 对象的序列化与反序列化
9.1 JDK类库中的序列化API
9.1.1 把对象序列化到文件
9.1.2 把对象序列化到网络
9.2 实现Serializable接口
9.2.1 序列化对象图
9.2.2 控制序列化的行为
9.2.3 readResolve()方法在单例类中的运用
9.3 实现Externalizable接口
9.4 可序列化类的不同版本的序列化兼容性
9.5 小结
9.6 练习题
第10章 Java语言的反射机制
10.1 JavaReflectionAPI简介
10.2 在远程方法调用中运用反射机制
10.3 代理模式
10.3.1 静态代理类
10.3.2 动态代理类
10.3.3 在远程方法调用中运用代理类
10.4 小结
10.5 练习题
第11章 RMI框架
11.1 RMI的基本原理
11.2 创建第1个RMI应用
11.2.1 创建远程接口
11.2.2 创建远程类
11.2.3 创建服务器程序
11.2.4 创建客户程序
11.2.5 运行RMI应用
11.3 远程对象工厂设计模式
11.4 远程方法中的参数与返回值传递
11.5 回调客户端的远程对象
11.6 远程对象的并发访问
11.7 分布式垃圾收集
11.8 远程对象的equals()、hashCode()和clone()方法
11.9 使用安全管理器
11.10 RMI应用的部署以及类的动态加载
11.11 远程激活
11.12 小结
11.13 练习题
第12章 通过JDBCAPI访问数据库
12.1 JDBC的实现原理
12.2 安装和配置MySQL数据库
12.3 JDBCAPI简介
12.4 JDBCAPI的基本用法
12.4.1 处理字符编码的转换
12.4.2 把连接数据库的各种属性放在配置文件中
12.4.3 管理Connection、Statement和ResultSet对象的生命周期
12.4.4 执行SQL脚本文件
12.4.5 处理SQLException
12.4.6 输出JDBC日志
12.4.7 获得新插入记录的主键值
12.4.8 设置批量抓取属性
12.4.9 检测驱动器使用的JDBC版本
12.4.10 元数据
12.5 可滚动以及可更新的结果集
12.6 行集
12.7 调用存储过程
12.8 处理Blob和Clob类型数据
12.9 控制事务
12.9.1 事务的概念
12.9.2 声明事务边界的概念
12.9.3 在mysql.exe程序中声明事务
12.9.4 通过JDBCAPI声明事务边界
12.9.5 保存点
12.9.6 批量更新
12.9.7 设置事务隔离级别
12.10 数据库连接池
12.10.1 创建连接池
12.10.2 DataSource数据源
12.11 小结
12.12 练习题
第13章 基于MVC和RMI的分布式应用
13.1 MVC设计模式简介
13.2 store应用简介
13.3 创建视图
13.4 创建控制器
13.5 创建模型
13.6 创建独立应用
13.7 创建分布式应用
13.8 小结
13.9 练习题
第14章 通过JavaMailAPI收发邮件
14.1 E-mail协议简介
14.1.1 SMTP
14.1.2 POP3
14.1.3 接收邮件的新协议IMAP
14.1.4 MIME简介.
14.2 JavaMailAPI简介
14.3 建立JavaMail应用程序的开发环境
14.3.1 获得JavaMailAPI的类库
14.3.2 安装和配置邮件服务器
14.4 创建JavaMail应用程序
14.5 身份验证
14.6 授权码验证
14.7 URLName类
14.8 创建和读取复杂电子邮件
14.8.1 邮件地址
14.8.2 邮件头部
14.8.3 邮件标记
14.8.4 邮件正文
14.9 操纵邮件夹
14.10 小结
14.11 练习题
第15章 安全网络通信
15.1 SSL简介
15.1.1 加密通信
15.1.2 安全证书
15.1.3 SSL握手
15.1.4 创建自我签名的安全证书
15.2 JSSE简介
15.2.1 KeyStore、KeyManager与TrustManager类
15.2.2 SSLContext类
15.2.3 SSLServerSocketFactory类
15.2.4 SSLSocketFactory类
15.2.5 SSLSocket类
15.2.6 SSLServerSocket类
15.2.7 SSLEngine类
15.3 创建基于SSL的安全服务器和安全客户
15.4 小结
15.5 练习题
第16章 XML数据处理
16.1 用DOM处理XML文档
16.2 用SAX处理XML文档
16.2.1 创建XML文档的具体处理类CustomerHandler
16.2.2 创建XML文档的解析类SaxDemo
16.3 用JDOM处理XML文档
16.4 用DOM4J处理XML文档
16.5 Java对象的XML序列化和反序列化
16.6 小结
16.7 练习题
第17章 用Axis发布Web服务
17.1 SOAP简介
17.2 建立ApacheAxis环境
17.3 在Tomcat上发布Apache-AxisWeb应用
17.4 创建SOAP服务
17.4.1 创建提供SOAP服务的Java类
17.4.2 创建SOAP服务的发布描述文件
17.5 发布和管理SOAP服务
17.5.1 发布SOAP服务
17.5.2 管理SOAP服务
17.6 创建和运行SOAP客户程序
17.7 小结
17.8 练习题
第18章 用Spring整合CXF发布Web服务
18.1 创建Web服务接口和实现类
18.2 在Spring配置文件中配置Web服务
18.3 在web.xml配置文件中配置Spring和CXF
18.4 在Tomcat中发布Web服务
18.5 创建和运行客户程序
18.6 小结
18.7 练习题
附录A 本书范例的运行方法
A.1 本书所用软件的下载地址
A.2 部分软件的安装
A.2.1 安装JDK
A.2.2 安装ANT
A.2.3 安装Tomcat
A.3 编译源程序
A.4 运行客户/服务器程序
A.5 处理编译和运行错误
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...