首页 > 代码库 > Response

Response

响应

一.组成部分:

响应行 响应头 响应体
1.操作 响应行
格式:
  协议/版本 状态码 状态码说明
状态码:
  1xx:已发送请求
  2xx:已完成响应
    200:正常响应
  3xx:还需浏览器进一步操作
    302:重定向 配合响应头:location
    304:读缓存
  4xx:用户操作错误
    404:用户操作错误.
    405:访问的方法不存在
  5xx:服务器错误
    500:内部异常
常用方法:

setStatus(int 状态码):针对于 1 2 3
sendError(int 状态码):针对于 4xx和5xx

2.操作响应头
格式:key/value(value可以是多个值)
常用的方法:

☆☆☆☆setHeader(String key,String value):设置字符串形式的响应头
setIntHeader(String key,int value):设值整形的响应头
setDateHeader(String key,long value):设值时间的响应头
☆☆☆☆addHeader(String key,String value):添加置字符串形式的响应头 之前设置过则追加,若没有设置过则设置
addIntHeader(String key,int value):添加整形的响应头
addDateHeader(String key,long value):添加时间的响应头

常用的响应头:
  location:重定向
  refresh:定时刷新
  content-type:设置文件的mime类型,设置响应流的编码及告诉浏览器用什么编码打开
  content-disposition:文件下载
重定向:    

response.sendRedirect(url);

定时刷新:
  方案1:设置头 refresh 昨天做过

respooen.setHeader("refresh","秒数;url=跳转的路径");

  方案2:http的meta标签

<meta http-equiv="refresh" content="3;url=/day10/refresh2.html">   

3.操作响应体:
常用方法:

Writer getWriter():字符流
ServletOutputStream getOutputStream() :字节流

 

  自己写的东西用字符流,其他一概用字节流.

处理响应中文乱码:

response.setContentType("text/html;charset=utf-8");

        注意:
            两个流互斥
            当响应完成之后,服务器会判断一下流是否已经关闭,若没有关闭,服务器会帮我们关闭.(底层使用的缓冲流)

Response