概述
request和response是JavaWEB中很重要的两个对象,我们可以通过他们来完成客户端和服务器的交互,本篇博客将同事介绍两者,着重于将两者放在一起对比.
当服务器收到请求时,会自动创建一个request对象和一个response对象.这里重点要注意的是这两个对象是由服务器(如最常用的Tomcat)创建的,其中:
request是代表HTTP请求的对象,即服务器获取客户端所发送的请求内容
response是代表HTTP响应的对象,即服务器向客户端发送的响应内容
继承结构
这里先放上一个doGet()和一个doPost()的结构
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
可以看出request的类是HttpServletRequest,它在基础request接口ServletRequest之上添加了HTTP协议的相关api
同样的:response的类是HttpServletResponse,他在基础response接口ServletResponse之上添加了HTTP协议相关的api
两者组成
request | |
---|---|
一个请求头 | GET 请求资源名 协议版本 |
若干请求头 | 每个请求头独立一行 |
一个空行 | |
请求实体内容 | 请求的参数内容,如参数名,参数值等 |
response | |
---|---|
状态行 | 协议版本 状态码 原因叙述 |
响应头 | refresh location |
一个空行 | |
响应实体内容 | 存储响应数据 |
两者的功能
这里着重来说两者能做什么,具体方法请查阅api,下一篇博文将会详细介绍请求转发,请求重定向和定时刷新这三种资源跳转方式的特点和应用场景,敬请期待
request | response |
---|---|
获取浏览器相关信息 | 设置状态码 |
获取请求头信息 | 设置响应头 |
获取请求参数 | 设置响应内容 |
请求转发 | 请求重定向,定时刷新 |
域对象 | 控制浏览器缓存 |