简介:讲解HttpServletResponse知识点
- HttpServletResponse对象
简介:代表服务器器的响应,封装了了向客户端发送数据、发送响应头,发送响应状态码的⽅方法
- 常见API
//设置有多个值的http响应头,参数name表示响应头名称,参数value表示响应头的值,
//⽐比如:response.addHeader("name", "java");
response.addHeader("name","spring");
addHeader(String name,String value)
//设置只有⼀一个值的http响应头,参数name表示响应头名称,参数value表示响应头的值
setHeader(String name,String value)
//设置http状态码
response.setStatus(200)
- getOutputStream():
- 创建的字节输出流对象,可以按字节形式输出响应正⽂文,直接输出字节数组中的⼆二进制数据,更更多⽤用于下载输出⽂文件流.
java
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置状态码
resp.setStatus(200); // 或使用 resp.setStatus(HttpServletResponse.SC_OK);
// 设置单个响应头(覆盖方式)
resp.setHeader("Content-Type", "text/html;charset=UTF-8");
// 添加多个相同名称的响应头
resp.addHeader("X-Custom-Header", "Value1");
resp.addHeader("X-Custom-Header", "Value2");
String data = "你好,世界";
//获取OutputStream输出流
OutputStream outputStream = resp.getOutputStream();
//将字符转换成字节数组,指定以UTF-8编码进⾏行行转换
byte[] dataByteArr = data.getBytes("UTF-8");
//使⽤用OutputStream流向客户端输出字节数组
outputStream.write(dataByteArr);
}
- getWriter()
- 创建的字符输出流对象,可以按字符形式输出响应正⽂文,只能输出输出字符⽂文本内容,和上⾯的互斥
java
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码格式为UTF-8
resp.setCharacterEncoding("UTF-8");
//通过设置响应头控制浏览器器以UTF-8的编码显示数据,如果不不加这句句话,那么浏览器器显示的将是乱码
resp.setHeader("content-type", "text/html;charset=UTF-8");
String data = "如果说";
//获取PrintWriter输出流
PrintWriter out = resp.getWriter();
//使⽤用PrintWriter流向客户端输出字符
out.write(data);
}