response 知识点

HttpServletResponse对象

  在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。由于HTTP响应消息分为状态行、响应消息头、消息体三部分,因此,在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。

  Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。

Response对象概述

  HTTP中响应分成三部分:  响应行   响应头   响应体

    响应行:   http/1.1   200   ok   http协议版本号和响应状态码

      setStatus(int   sc)           给response设置状态码

    响应头:   

      setHeader(Sting key,String value);

    响应体:

      getOutputStrean();     

      getWrite();

      注:页面输出只能使用其中的一个流实现,两个流是互斥的.

    其他方法:

      setStatus(302);
      setHeader("location","/url");
       //重定向
       sendRedirect("/url");

字符流解决乱码:

  response.setHeader("Content-Type", "text/html;charset=UTF-8");  设置浏览器默认打开时候采用的编码.

  response.setCharacterEncoding("UTF-8");  设置服务器采用的编码

  response.setContentType("text/html;charset=UTF-8");  既告知服务器又告知浏览器使用的编码,是以上两种的封装.是解决响应乱码的方法.

  response.getWriter().println("哈喽");

字节流解决乱码:

  response.setHeader("Content-Type", "text/html;charset=UTF-8");  设置浏览器默认打开的编码

  response.getOutputStream().write("哈喽".getBytes("UTF-8"));  设置中文转成字节数组的编码

 

 

天天向上
原文地址:https://www.cnblogs.com/xiao-cui-tong/p/13128802.html