HttpServletResponse详解(包括如何解决Response中文乱码问题)

HttpServletResponse 负责返回数据给客户端。 

作用:输出数据到页面上

//以字符流的方式写数据    
//response.getWriter().write("

hello response...

");          //以字节流的方式写数据  response.getOutputStream().write("hello response2222...".getBytes());


响应的数据中有中文,那么有可能出现中文乱码

以字符流输出

> response.getWriter()

 //1. 第一种方法,指定输出到客户端的时候,这些文字使用UTF-8编码
  response.setCharacterEncoding("UTF-8");
        
 //2. 第二种方法,直接规定浏览器看这份数据的时候,使用什么编码来看。
 response.setHeader("Content-Type", "text/html; charset=UTF-8");
        
  response.getWriter().write("我爱你...");


以字节流输出 

> response.getOutputStream()

//1. 第一种方法,指定浏览器看这份数据使用的码表
response.setHeader("Content-Type", "text/html;charset=UTF-8");
        
//2. 第二种方法,指定输出的中文用的码表
response.getOutputStream().write("我爱你..".getBytes("UTF-8"));


        --------------------------------------------

不管是字节流还是字符流,直接使用一行代码就可以了。

    response.setContentType("text/html;charset=UTF-8");

    然后在写数据即可。

 

例子:

public class loginServlet extends HttpServlet {
 
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
  
    //response返回数据,解决中文乱码
  
  //无论什么是字节流还是字符流,使用这种方法都是可以的
  response.setContentType("text/html;charset=UTF-8");
  
  
   //以字符流输出


     //第一张方法,指定输出到客户端的时候,这些文字使用UTF-8编码
     //response.setCharacterEncoding("UTF-8");
    //第二种方法,直接规定浏览器看这份数据的时候,使用什么编码来看
     //response.setHeader("Content-type", "UTF");
    
  //response.getWriter().write("字符流输出");
  
  
    //以字节流输出


     //第一种方法,指定浏览器看这份数据使用的码表
              //response.setHeader("Content-type", "text/html;charset=UTF-8");
     //第二种方法,指定输出的中文用的码表
              //response.getOutputStream().write("字节流输出".getBytes("UTF-8"));


     //response.getOutputStream().write("字节流输出".getBytes());
  


  //以下代码是关于如何利用response跳转到其他的页面
  //设置处理这个请求的状态
  //response.setStatus(302);
  //定位跳转的位置是哪个页面
  //response.setHeader("Location", "index.html");  
 }



 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  System.out.print("来了一个post请求");
  doGet(request, response);
 }

}

 

你可能感兴趣的:(HttpServletResponse详解(包括如何解决Response中文乱码问题))