Response输出字符数据和输出字节数据
Response输出字符数据
步骤:
1、获取字符输出流
2、输出数据
@WebServlet("/responseDemo3") public class ResponseDemo3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1、获取字符输出流 PrintWriter pw = response.getWriter(); //2、输出数据 pw.write("你好 Response"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
注意:
乱码原因:编解码使用的字符集不一致
1.PrintWriter pw = response.getWriter(); 获取的流的默认编码是ISO=8859-1
2.设置该流的默认编码
3.告诉浏览器响应体使用的编码
设置编码,是在获取流之前进行设置的
@WebServlet("/responseDemo3") public class ResponseDemo3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //告诉浏览器,服务器发送的消息体数据的编码。建议浏览器使用改编码解码 //response.setHeader("content-type","text/html;charset=utf-8"); //简单的形式,设置编码 response.setContentType("text/html;charset=utf-8"); //1、获取字符输出流 PrintWriter pw = response.getWriter(); //2、输出数据 pw.write("你好 Response"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
Response输出字节数据
步骤:
1、获取字节输出流
2、输出数据
@WebServlet("/responseDemo4") public class ResponseDemo4 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //简单的形式,设置编码 response.setContentType("text/html;charset=utf-8"); //1、获取字节输出流 ServletOutputStream os = response.getOutputStream(); //2、输出数据 os.write("你好 Response".getBytes("utf-8")); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }