目录
一、设置响应消息
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、服务器输出字符数据到浏览器
- 获取字符输出流:PrintWriter pw = response.getWriter();
- 输出数据: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、服务器输出字节数据到浏览器
- 获取字节输出流:
- 输出数据:
设置编码格式: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"));
}