本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性。
虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多。
23.1 引言
服务器(server)程序为其他客户端(client)程序提供某种类型的服务,与客户端程序通常位于不同的机器上。
一个程序可以既是服务器程序也是客户端程序,主要是看它是在为其他程序服务,还是在使用其他程序的服务。
甚至还可以整合其他服务器程序上的服务,打包成自己的服务,提供给客户端程序使用。
23.2 applet
applet是一种Java程序,能够从网页中下载并在浏览器中运行。因为Java运行在虚拟机上,因此可以做到平台独立,使得程序与客户机上的操作系统无关。
23.3 访问远程数据库
Java数据库连接(Java Database Connectivity, JDBC):是Java访问数据库的通用接口,数据库管理系统提供JDBC驱动,从而保证应用程序不需要关注不同数据库的区别。
驱动(driver)是一种软件,能够使得两个程序进行通信,或者帮助软件与硬件通信。
23.4 Socket
Socket是一种软件机制,能够帮助程序员隐藏传输数据的细节,类似于高级文件处理类帮助程序隐藏外部存储器的细节,
使得程序能够基于流的方式来处理网络连接上的数据的读写。
自测题:
1. 客户--服务器体系结构:
服务器(server)程序为其他客户端(client)程序提供某种类型的服务,与客户端程序通常位于不同的机器上。
一个程序可以既是服务器程序也是客户端程序,主要是看它是在为其他程序服务,还是在使用其他程序的服务。
甚至还可以整合其他服务器程序上的服务,打包成自己的服务,提供给客户端程序使用。
2. applet和应用程序的区别:
applet和应用程序都是一种Java程序。
applet是运行在浏览器的JVM中;而应用程序是运行在操作系统的JVM中。
applet没有main()方法,因为它运行在浏览器中,控制任务由浏览器负责;应用程序则包含main()方法,main()方法中可以控制程序的所有行为。
3. 专用的applet方法(与paint方法一起运行)
init:applet被浏览器装载(或者重新装载)时,首先调用的方法。
start:init方法被调用后调用的方法;每一次返回页面使得applet可见时,也会调用的方法。
paint:start方法被调用时,立即调用的方法。
stop:当applet被隐藏时(选择了浏览器其他页面),调用的方法。
destroy:当applet被抛弃时(关闭了浏览器),调用的方法。
4. JDBC技术
Java数据库连接(Java Database Connectivity, JDBC):是Java访问数据库的通用接口,数据库管理系统提供JDBC驱动,从而保证应用程序不需要关注不同数据库的区别。
5. Socket类和ServerSocket类的功能和用途。
Socket类的基本功能:
* 连接到远程机器;
* 发送数据;
* 接收数据;
* 关闭一个连接。
ServerSocket类的附加功能:
* 绑定一个端口;
* 在绑定的端口上监听进入的数据;
* 在绑定的端口上接受远程客户端的连接;
编程练习:代码附件
1. ChangingFaceApplet.java
2. MetricConverterApplet.java RedCircleApplet.java
3. ProductQuery.java
4. 挖坑。。。
5. JokeServer.java JokeClient.java RunJokeServer.java RunJokeClient.java
6. 挖坑。。。