1.在Service API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。
由于HTTP请求消息分为状态行,响应消息头,响应消息体三部分,因此,在HttpServletResponse接口中定义了向客户端发送响应状态码,响应消息头,响应消息体的方法。
2.字符流和字节流获取
PrintWriter getWriter() throws IOException;
获得字符流,通过字符流的write(String s)方法可以将字符串设置到response 缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端。
ServletOutputStream getOutputStream() throws IOException;
获得字节流,通过该字节流的write(byte[] bytes)可以向response缓冲区中写入字节,再由Tomcat服务器将字节内容组成Http响应返回给浏览器。想要输出二进制格式的相应正文,就需要使用 getOutputStream()方法。
注意:两个方法不能同时使用,否则报错。
Response乱码问题
由于HttpServletResponse默认使用ISO8859-1码表,而浏览器端使用的则是GB2312码表,二者不统一会导致出现乱码问题,因此需要告知发送端服务端和浏览器端都使用UTF-8编码去解码,这样才能解决乱码问题。
response.setContentType("text/html;charset=UTF-8")