11 Reponse对象

1.HTTP协议:

(1)请求消息:客户端发送给服务器端的数据
 数据格式:
  1. 请求行
  2. 请求头
  3. 请求空行
  4. 请求体
(2)响应消息:服务器端发送给客户端的数据
* 数据格式:
  1. 响应行
    1. 组成:协议/版本 响应状态码 状态码描述
    2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
      1. 状态码都是3位数字
      2. 分类:
        <1> 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
        <2> 2xx:成功。代表:200
        <3> 3xx:重定向。代表:302(重定向),304(访问缓存)
        <4> 4xx:客户端错误。
          * 代表:
            * 404(请求路径没有对应的资源
            * 405:请求方式没有对应的doXxx方法
        <5> 5xx:服务器端错误。代表:500(服务器内部出现异常)


  2. 响应头:
    1. 格式:头名称: 值
    2. 常见的响应头:
      1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
      2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
      * 值:
      * in-line:默认值,在当前页面内打开
      * attachment;filename=xxx:以附件形式打开响应体。文件下载
  3. 响应空行
  4. 响应体:传输的数据

2.Response对象
功能:设置响应消息

注意:以下均是HttpServletResponse的成员方法。
(1)设置响应行
  1. 格式:HTTP/1.1 200 ok
  2. 设置状态码:setStatus(int sc)
(2) 设置响应头:setHeader(String name, String value)

(3)设置响应体:
使用步骤:
  1. 获取输出流
    * 字符输出流:PrintWriter getWriter()

    * 字节输出流:ServletOutputStream getOutputStream()

  2. 使用输出流,将数据输出到客户端浏览器

案例一:重定向

重定向过程:

  (1)客户浏览器发送http请求

  (2)web服务器接受后发送302状态码响应及对应新的location给客户浏览器

  (3)客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址。服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

猜你喜欢

转载自www.cnblogs.com/luckyplj/p/11222265.html