《Java网络编程精解》前言

发表于:2007-06-11来源:作者:点击数: 标签:
Java语言是第一个完全融入 网络 的语言,它之所以适合编写网络应用程序,归功于它的以下优势。 (1)Java语言与生俱来就是与平台无关的。Java程序能够运行在不同的平台上,运行在不同平台上的Java程序能够方便地进行网络通信。 (2)Java语言具有完善的 安全

Java语言是第一个完全融入网络的语言,它之所以适合编写网络应用程序,归功于它的以下优势。

(1)Java语言与生俱来就是与平台无关的。Java程序能够运行在不同的平台上,运行在不同平台上的Java程序能够方便地进行网络通信。

(2)Java语言具有完善的安全机制,可以对程序进行权限检查,这对网络程序至关重要。

(3)JDK类库提供了丰富的网络类库,如套接字API、JavaMail API和JDBC API等,大大简化了网络程序的开发过程。

本书将展示如何利用Java网络类库来快速便捷地创建网络应用程序,致力于完成以下任务:

◆实现访问HTTP服务器的客户程序

◆实现HTTP服务器

◆实现多线程的服务器,以及非阻塞的服务器

◆解析并展示HTML页面

◆通过JDBC API访问数据库

◆通过JavaMail API接收和发送电子邮件

◆利用RMI框架实现分布式的软件系统

◆进行安全的网络通信,对数据加密,验证身份,保证数据的完整性

◆利用CORBA和Web服务实现分布式的软件系统

◆本书的组织结构和主要内容

本书结合大量典型的实例,详细介绍了用Java来编写网络应用程序的技术。本书内容包括:Java网络编程的基础知识、套接字编程、非阻塞通信、创建HTTP服务器与客户程序、数据报通信、对象的序列化与反序列化、Java反射机制、RMI框架、JDBC API、JavaMail API、MVC设计模式、安全网络通信、CORBA和Web服务。如图P-1展示了本书各个章之间的顺序渐进关系。

从图P-1中可以看出,套接字(Socket)是Java网络编程的基础,第2章和第3章分别详细介绍了Socket与ServerSocket的用法。本书第1章介绍了分层的网络体系结构,Java网络程序位于最上层——应用层,并且通过套接字访问底层网络,也可以说,套接字为应用层封装了底层网络传输数据的细节。Java网络程序都采用客户/服务器模式,客户端发出获得特定服务的请求,服务器接收请求,执行客户端所请求的操作,然后向客户端发回响应。在介绍服务器端编程时,探讨了服务器端实现并发响应多个客户请求的两种方式:一种方式是运用线程池(第3章),还有一种方式是采用非阻塞通信(第4章)。在介绍客户端编程时,介绍了JDK提供的一种通用的客户端协议处理框架(第6章)。

利用Java网络API,可以实现基于各种应用层协议(如HTTP协议和FTP协议)的服务器程序与客户程序,本书侧重介绍了HTTP服务器(第5章)与HTTP客户程序(第7章)的实现方法,HTTP客户程序也称为浏览器。

图P-1  本书各章之间的顺序渐进关系

本书还介绍了3种分布式的软件架构:RMI(第11章)、CORBA(第16章)和Web服务(第17章)。这些分布式架构主要解决的问题是,如何让客户端调用服务器端的远程对象的方法。RMI是JDK自带的,它要求客户端与服务器端都是Java程序,而CORBA和Web服务允许用任意编程语言编写的客户程序与服务器程序相互通信。本书重点介绍了RMI框架的用法。RMI框架在其实现中封装了用套接字通信的细节,此外,RMI框架的实现会把客户端的方法调用请求信息序列化为字节序列,并把它发送给服务器端,然后在服务器端再通过反序列化把字节序列还原为方法调用请求。RMI框架还运用了动态代理机制,为客户端提供了远程对象的代理。客户端实际上直接访问的是远程对象的代理。为了帮助读者理解RMI框架的实现原理,本书第9章和第10章分别介绍了Java序列化及反射机制。在介绍反射机制时,介绍了动态代理。

本书还介绍了两个常用的客户端的网络API:JDBC API(第12章)和JavaMail API(第14章),这两个API分别用于访问数据库服务器和邮件服务器,在它们的实现中都封装了用套接字与服务器通信的细节。Java客户程序可以通过JDBC API来访问各种数据服务器,还可以通过JavaMail API来访问各种邮件服务器。

本书第13章介绍了一个运用了MVC设计模式和RMI框架的综合应用。MVC设计模式把实际的软件应用分为视图、控制器和模型3个层次,每个层次相对独立。本书的范例把模型作为远程对象放置到RMI的服务器端,把视图和控制器放置到RMI的客户端。

本书第15章介绍了SSLSocket,它支持SSL(Server Socket Layer)协议和TLS(Transport Layer Security)协议。运用SSLSocket,可以实现安全的网络通信,网络上传输的是被加密的数据,并且通信两端还能验证对方的身份。

本书在介绍以上技术时,采用UML建模语言中的类框图及时序图来展示对象模型,以及类与类之间的协作关系。此外,本书还把一些常见的设计模式,如静态代理模式、动态代理模式和MVC设计模式等运用到实际例子中。阅读本书,读者不仅可以掌握Java网络编程的实用技术,还可以进一步提高按照面向对象的思想来设计和编写Java软件的能力。

◆这本书是否适合您

阅读本书,要求读者已经具备了Java编程的基础知识。对于还不熟悉Java语言的读者,建议先阅读作者的另一本书《Java面向对象编程》(电子工业出版社出版),本书是它的姊妹篇。《Java面向对象编程》自2006年7月份出版后,受到了广大IT读者的欢迎。本书围绕着网络编程,进一步介绍了Java语言的一些高级特性,如套接字编程、非阻塞通信、数据报通信、对象的序列化与反序列化、Java反射机制、RMI框架、JDBC API和JavaMail API等,这些特性是作为一个高级Java开发人员必须掌握的。深入了解这些高级特性,有助于开发人员熟练地从头开发分布式的软件系统,或者轻松地学习和掌握现有的,如Java EE等分布式的软件架构。

本书一方面由浅入深组织内容,迎合Java网络编程初学者的需求,一方面与实际项目紧密结合,介绍了线程池、非阻塞通信和动态代理等高级话题。本书不仅可作为Java开发人员的参考手册,还可以作为高校的Java教材,以及企业培训教材。

◆致谢

本书在编写过程中得到了Sun公司在技术上的大力支持,飞思科技产品研发中心负责监制工作,复旦软件学院的MSE师生们为本书的编写提供了有益的帮助,JavaThinker网站(www.javathinker.org)的许多热心网友及作者的亲友,包括axman、李红军、余泉、王庆华、gogolong、李洪成、曹文伟和刘巧云等为本书提供了宝贵的建议,在此表示衷心的感谢!

尽管我们尽了最大努力,但本书难免会有不妥之处,欢迎各界专家和读者朋友批评指正。以下网址会征集并公布本书的勘误信息:http://www.javathinker.org/bbs/topic.jsp?db=7&topic=4058

【责任编辑:火凤凰 TEL:(010)68476606-8007】


回书目      下一节

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...