1.作用
用于服务器对客户端的请求进行响应,将Web服务器处理后的结果返回给客户端。HttpServletResponse对象封装了向客户端发送数据,发送响应头,发送响应状态码的方法
2.响应数据
注:字符输出流和字节输出流只能使用其一
(1)字符输出流
// 响应字符串
resp.getWriter().write(String str);
// 响应对象
resp.getWriter().print(Object odj);
(2)字节输出流
// 响应一切数据
resp.getOutputStream().write("字符串".getBytes())
(3)设置和添加响应头
resp.setHeader("key", "value")
resp.addHeader("key", "value")
3.响应中文乱码问题
服务器端的编码和浏览器的解码方式不一致导致的,将服务器端的编码方式设置成与浏览器端的解码方式一致即可解决响应中文乱码问题
// 设置服务器端的编码方式
resp.setCharacterEncoding("UTF-8");
// 设置浏览器端的解码方式
resp.setContentType("test/html;charset=UTF-8")
4.重定向
(1)重定向
重定向是一种服务器指导,客户端行为。客户端发出第一个请求,被服务器接收处理后,服务器会进行响应,在响应的同时,服务器会给客户端一个新的地址,当客户端接收到响应后,会立刻自动根据服务器给的新地址发起第二个请求,服务器接收请求并作出响应,重定向完成
response.sendRedirect(URL);
(2)请求转发和重定向对比
请求转发 | 重定向 | |
---|---|---|
请求不同 | 属于同一个请求 | 是不同的请求 |
地址栏是否发生改变 | 否 | 是 |
请求参数能否携带 | 否 | 能 |
执行效率不同 | 高 | 低 |
跳转范围不同 | 服务器内部跳转 | 既能服务器内部跳转又能服务器外部跳转 |