JAVA语言程序设计
第十一章 Servlet程序设计
郑莉
1
目录
? ? ? ? ? ? ? ?
11.1 Java网络程序
设计的基本概念 11.2 Servlet基础 11.3 Servlet的生命周期 11.4 与客户端交互 11.5 客户端跟踪 11.6 协作与通讯 11.7 程序举例 11.8 本章小结
2
11.1 Java网络程序设计的基本概念
网络将世界联系在一起,使世界变得更加 丰富多彩。同时网络互连是一个内容丰富 而复杂的主题,所以这方面的程序设计涉 及面很广且不易掌握 ? 与其他语言相比,Java语言在网络应用程 序方面具有一定的优势。Java提供了很多 内置的
网络功能,使得基于Internet和Web 的应用开发变得更加容易
?
3
11.1.1 协议
Java 网 络 程 序 设 计 的 基 本 概 念
?
所有使用或实现某种Internet服务的程序都必须遵从一个或 多个网络协议,这种协议很多,而IP、TCP、UDP是最为根 本的三种协议,是所有其它协议的基础
– IP(Internet Protocol,Internet协议)
? ?
是最底层的协议 定义了数据按照数据报(Datagram,一种自带寻址信息的、独立 地从数据源走到终点的数据包)传输的格式和规则 建立在IP之上,定义了网络上
程序到程序的数据传输格式和规则, 提供了IP数据包的传输确认、丢失数据包的重新请求、将收到的数 据包按照它们的发送次序重新装配的机制 是面向连接的协议,在开始数据传输之前,必须先建立明确的连接 与TCP相似,比TCP具有更好的传输效率。 不可靠的,不保证数据的传输,也不提供重新排列次序或重新请求 功能,是一种无连接协议
4
– TCP(Transport Control Protocol,传输控制协议)
?
?
– UDP(User Datagram Protocol,用户数据报协议)
?
?
11.1.1 协议(续)
——HTTP协议
Java 网 络 程 序 设 计 的 基 本 概 念
?
HTTP协议( HyperText Transfer Protocol)
– 是Internet众多协议中的一种,表示超文本传输协议,它构 成了WWW的基础
– 具有简单快速、灵活、无状态、无连接等特点
– 基于请求(Request)/响应(Response)模式。其工作过 程如下
? ? ?
首先客户端与服务器建立连接 然后客户端发送一个请求给服务器 服务器接到请求后,给予相应的响应信息;最后关闭连接,完 成一次操作
5
11.1.1 协议(续)
——HTTP协议中客户端发送给服务器的请求 Java 网 络 程 序 设 计 的 基 本 概 念
?
客户端发送给服务器的请求
– 有很多类型,被称为方法,其中最
常用的是GET、POST – GET方法
?
用来从服务器读取信息,比如从服务器读取文件、表格、数据库查 询结果等 用来向服务器传送信息,比如把信用卡号、表格、存储于数据库的 数据等传送到服务器 用来读取服务器响应头(Response Head);得到诸如文
件大小, 文件最后修改时间,服务器类型等信息 将文件直接传到服务器 将文件直接从服务器删除 用来协助程序调试 用来
查询服务器所支持的方法
6
– POST方法
?
– HEAD方法
?
– PUT方法
? ? ? ?
– DELETE方法 – TRACE方法 – OPTIONS方法
11.1.2 关于URI
Java 网 络 程 序 设 计 的 基 本 概 念
?
URI(Uniform Resource Identifier,统一资源标
志符)
– HTTP协议用URI标识定位网络上的数据 – 如果知道了公布在网络上的某个
HTML文件的URI,不管 文件位于什么地方,都可以通过HTTP访问该
文档 – 通常所说的URL是URI的一种
7
11.1.2 关于URI(续)
——URL类
Java 网 络 程 序 设 计 的 基 本 概 念
?
URL类
– Java语言提供了URL类让我们能在
源代码层使用URL – 有六个构造函数,其中最简单的是URL(String url)。每个 URL对象都封装了资源的标识符和协议处理程序,可以 调用URL的方法来提取URL的组件 – 把URL对象作为AppletContext接口的showDocument方 法的参数,就可以使执行applet的浏览器显示URL所指定 的资源
8
11.1.2 关于URI(续)
——例11_1
Java 网 络 程 序 设 计 的 基 本 概 念
?
applet浏览指定URL举例: ShowDocument.java
import java.net.*; import java.util.*; import java.awt.