一、Response对象的API
- 关于响应行的方法:常用setStatus()方法,设置状态码。
- 关于响应头的方法:常用setHeader()、addHeader()方法,设置响应头中的键值对,后者追加值。
- 关于响应体的方法:常用getWriter()、getOutputStream()方法,前者为字符流,后者为字节流。
- 其他方法:常用sendRedirect()、setContentType()、setCharacterEncoding()、addCookie()方法,分别用于重定向、设置浏览器接收数据时采用的字符集、设置响应体采用的字符集、给浏览器回传Cookie。
二、Response对象响应的中文乱码处理
(1)处理字节流的中文乱码
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletOutputStream outputStream = resp.getOutputStream();
//设置浏览器接收数据时采用的字符集
resp.setHeader("Content-Type", "text/html;charset=UTF-8");
//设置中文转成字节数组时的编码
outputStream.write("你好啊".getBytes("UTF-8"));
}
}
(2)处理字符流的中文乱码
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//只需设置浏览器接收数据时采用的字符集
resp.setContentType("text/html;charset=UTF-8");
PrintWriter writer = resp.getWriter();
writer.print("你好啊");
}
}