Servlet Response对象

1. 设置响应行

响应行格式:协议/版本 状态码 状态码描述

1
HTTP/1.1 200 OK

1.1. 设置状态码

1
resp.setStatus(302);

2. 设置响应头

1
resp.setHeader("location", "http://www.baidu.com");

3. 设置响应体

设置响应体步骤:

  1. 获取输出流
  2. 输出数据

注意输出流不必flush或者close,因为写完之后,response对象会被自动销毁,输出流会被自动关闭

3.1. 字符输出

1
2
PrintWriter out = resp.getWriter();  // 获取字符输出流
out.print("<h1>你好</h1>"); // 输出数据

3.2. 字节输出

1
2
ServletOutputStream out = resp.getOutputStream();   // 获取字节输出流
out.write("<h1>HelloWorld</h1>".getBytes());

4. 重定向

重定向需要设置状态码,以及location

1
2
resp.setStatus(302);   // 302重定向
resp.setHeader("location", "http://www.baidu.com"); // 要重定向的目标

也可以用sendRedirect(location)进行简化

1
resp.sendRedirect("http://www.baidu.com");

重定向的特点:redirect

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

转发的特点:forward

  1. 转发地址栏路径不变
  2. 转发只能访问当前服务器下的资源
  3. 转发是一次请求,可以使用request对象来共享数据
panchaoxin wechat
关注我的公众号
支持一下