1. 设置响应行
响应行格式:协议/版本 状态码 状态码描述1
HTTP/1.1 200 OK
1.1. 设置状态码
1 | resp.setStatus(302); |
2. 设置响应头
1 | resp.setHeader("location", "http://www.baidu.com"); |
3. 设置响应体
设置响应体步骤:
- 获取输出流
- 输出数据
注意输出流不必flush或者close,因为写完之后,response对象会被自动销毁,输出流会被自动关闭
3.1. 字符输出
1 | PrintWriter out = resp.getWriter(); // 获取字符输出流 |
3.2. 字节输出
1 | ServletOutputStream out = resp.getOutputStream(); // 获取字节输出流 |
4. 重定向
重定向需要设置状态码,以及location1
2resp.setStatus(302); // 302重定向
resp.setHeader("location", "http://www.baidu.com"); // 要重定向的目标
也可以用sendRedirect(location)进行简化1
resp.sendRedirect("http://www.baidu.com");
重定向的特点:redirect
- 地址栏发生变化
- 重定向可以访问其他站点(服务器)的资源
- 重定向是两次请求。不能使用request对象来共享数据
转发的特点:forward
- 转发地址栏路径不变
- 转发只能访问当前服务器下的资源
- 转发是一次请求,可以使用request对象来共享数据