1,http响应
HTTP/1.1 200 OK --响应行
Server: Apache-Coyote/1.1 --多个响应头
Content-Length: 51
Date: Sun, 28 Dec 2014 01:51:16 GMT
--一个空行
this is first servlet!!Sun Dec 28 09:51:16 CST 2014 --实体内容(用户直接看到的内容)
一,响应行
HTTP/1.1 http协议版本信息
状态码:服务器对于请求处理的结果
其中常用的状态码的含义:
200: 表示请求处理完成。
302: 表示请求需要进一步细化。通常该状态码和location响应头结合使用。
404: 表示客户端错误,找不到资源。
500: 表示服务器错误。
其中不常用的也在此告诉大家:
|"100" ; 10.1.1节: 继续
|"101" ; 10.1.2节: 转换协议
|"200" ; 10.2.1节: OK
|"201" ; 10.2.2节: 已创建
|"202" ; 10.2.3节: 接受
|"203" ; 10.2.4节: 非权威信息
|"204" ; 10.2.5节: 无内容
|"205" ; 10.2.6节: 重置内容
|"206" ; 10.2.7节: 部分内容
|"300" ; 10.3.1节: 多个选择
|"301" ; 10.3.2节: 永久移动
|"302" ; 10.3.3节: 发现
|"303" ; 10.3.4节: 见其它
|"304" ; 10.3.5节: 没有被改变
|"305" ; 10.3.6节: 使用代理
|"307" ; 10.3.8节 临时重发
|"400" ; 10.4.1节: 坏请求
|"401" ; 10.4.2节: 未授权的
|"402" ; 10.4.3节: 必要的支付
|"403" ; 10.4.4节: 禁用
|"404" ; 10.4.5节: 没有找到
|"405" ; 10.4.6节: 方式不被允许
|"406" ; 10.4.7节: 不接受的
|"407" ; 10.4.8节: 需要代理验证
|"408" ; 10.4.9节: 请求超时
|"409" ; 10.4.10节; 冲突
|"410" ; 10.4.11节: 不存在
|"411" ; 10.4.12节: 长度必需
|"412" ; 10.4.13节;先决条件失败
|"413" ; 10.4.14节: 请求实体太大
|"414" ; 10.4.15节; 请求URI太大
|"415" ; 10.4.16节: 不被支持的媒体类型
|"416" ; 10.4.17节: 请求的范围不满足
|"417" ; 10.4.18节: 期望失败
|"500" ; 10.5.1节: 服务器内部错误
|"501" ; 10.5.2节: 不能实现
|"502" ; 10.5.3节: 坏网关
|"503" ; 10.5.4节: 服务不能获得
|"504" ; 10.5.5节: 网关超时
|"505" ; 10.5.6节: HTTP版本不支持
二,响应头:
Location: http://www.it315.org/index.jsp --重定向地址。通常和302状态码配合使用,完成请求重定向效果
Server:apache tomcat --服务器类型
Content-Encoding: gzip --服务器发送给浏览器的数据压缩格式
Content-Length: 80 --服务器发送给浏览器数据长度
Content-Language: zh-cn --服务器发送给浏览器数据语言
Content-Type: text/html; charset=GB2312 --服务器发送给浏览器数据类型
Last-Modified: Tue, 11 Jul 2000 18:23:51GMT --服务器资源最后修改时间
Refresh: 1;url=http://www.it315.org --定时刷新或每隔n秒跳转页面
Content-Disposition: attachment; filename=aaa.zip --告诉浏览器以下载方式打开资源
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search --服务器发送给浏览器的cookie信息
Expires:-1 --建议浏览器不使用缓存
Cache-Control:no-cache
Pragma:no-cache
Connection: close/Keep-Alive --服务器和浏览器连接状态。close:关闭连接。keep-alive:保持连接。
Date: Tue, 11 Jul 2000 18:23:51 GMT --响应发送的时间
三,响应实体由后台指定内容发出。
HttpServletResponse对象用于设置响应信息。
常用方法:
响应行:
response.setStatus(); 设置状态码
响应头:
response.setHeader(name,value); 设置响应头
实体内容
response.getWriter().writer() 以字符格式发送实体内容
response.getOutputStream().writer() 以字节格式发送实体内容
修改响应数据的方法。
package zdh.cm.response; /** * 修改响应数据 */ import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ResponseDemo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1)tomcat服务器提供了一个HttpServletResponse对象,用于给开发者修改响应数据 //2)通过service方法把response对象传入servlet中 //3)通过response对象修改响应数据 //修改响应数据 //response.setStatus(404);//设置状态码 //response.sendError(404);//获取404+404错误页面 //修改响应头 response.setHeader("Server", "zdh"); //修改实体内容 //response.getWriter().write("this is entry!");//插入字符流 response.getOutputStream().write("this is byte entry!".getBytes());//插入字节流, } //4)tomcat服务器把response对象转换成响应格式的字符串,发送给浏览器 }