目录

一、设置响应消息

1、设置响应行

2、设置响应头

3、设置响应体

二、Response 响应机制

1、重定向和转发的区别

2、服务器输出字符数据到浏览器

3、服务器输出字节数据到浏览器


一、设置响应消息

1、设置响应行

  • 格式:HTTP/1.1 200 ok
  • 设置状态码:setStatus(int sc)

2、设置响应头

  • setHeader(String name,String value)

3、设置响应体

  • 获取输出流
    • 字符输出流:PrintWriter getWriter()
    • 字节输出流:ServletOutputStream getOutputStream()
  • 使用输出流,将数据输出到客户端浏览器
二、Response 响应机制

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)

1、重定向和转发的区别

【1】重定向(Redirect)

  • 地址栏发生变化
  • 重定向可以访问其他站点(服务器)的资源
  • 重定向是两次请求(不能使用 request 域来共享数据)

【2】转发(Forward)

  • 转发地址栏路径不变
  • 转发只能访问当前服务器下的资源
  • 转发是一次请求(可以使用 request 域来共享数据)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //方式一
    //1.设置状态码为302
    //response.setStatus(302);
    //2.设置响应头"location"
    //response.setHeader("location","/response2");

    //方式二
    response.sendRedirect("/response2");
}

2、服务器输出字符数据到浏览器

  1. 获取字符输出流:PrintWriter pw = response.getWriter();
  2. 输出数据:pw.write("mesage");

设置编码格式:response.setContentType("text/html;charset=utf-8");

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码格式
    response.setContentType("text/html;charset=utf-8");
    //获取字符输出流
    PrintWriter pw = response.getWriter();
    //输出数据
    pw.write("oneStar!海绵宝宝");
}

3、服务器输出字节数据到浏览器

  1. 获取字节输出流:
  2. 输出数据:

设置编码格式:response.setContentType("text/html;charset=utf-8");

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码
    response.setContentType("text/html;charset=utf-8");
    //获取字节输出流
    ServletOutputStream sos = response.getOutputStream();
    //输出数据
    sos.write("你好".getBytes("utf-8"));
}