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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Aaronzzq/article/details/82839091

 

2018年07月10日 01:15:06 ZWMLLL 阅读数:44

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

作用:输出数据到页面上


        //以字符流的方式写数据    
        //response.getWriter().write("<h1>hello response...</h1>");
        
        //以字节流的方式写数据 
        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);
 }

}

猜你喜欢

转载自blog.csdn.net/Aaronzzq/article/details/82839091