JAVAWeb---HttpServletResponse中的方法

1.response
    ServletResponse -- 通用的response提供了一个响应应该具备最基本的属性和方法
        |
        |-HttpServletResponse -- 在ServletResponse的基础上针对于HTTP协议增长了不少强化的属性和方法html

2.输出数据
 1)getOutputStream字节输出流
response.getOutputStream().write("中国".getBytes("utf-8"));
2)getWriter字符输出流
response.getWriter().write("北京");
    Notice: getWriter和getOutputStream在一次请求中只能使用一个

3)解决乱码
    1> 通知服务器发送数据时使用utf-8编码
response.setCharacterEncoding("utf-8");
    2> 通知浏览器接受数据时使用utf-8解码
response.setHeader("Content-Type", "text/html;charset=utf-8");

3> Notice:
        a. response对象中对Content-Type响应头进行了封装,可使用一下代码代替 2>
response.setContentType("text/html;charset=utf-8");
        b. 若是设置了Content-Type,服务器会自动的设置 characterEncoding,所以解决乱码只须要设置Content-Type响应头一行代码就能够了,可是为了代码的可读性更高,通常仍是建议同时设置 characterEncoding 和 Content-Type.java

1.response的运行流程

 

2.经过抓包工具抓取Http响应

由于response表明响应,因此咱们能够经过该对象分别设置Http响应的响应行,响    应头和响应体api

3.经过response设置响应行

设置响应行的状态码浏览器

setStatus(int sc)服务器

4.经过response设置响应头

addHeader(String name, String value)oracle

addIntHeader(String name, int value)工具

addDateHeader(String name, long date)编码

setHeader(String name, String value)code

setDateHeader(String name, long date)htm

setIntHeader(String name, int value)

 

其中,add表示添加,而set表示设置

 

重定向须要:1.状态码:302

2.响应头:location 表明重定向地址

5.经过response设置响应体

(1)响应体设置文本

PrintWriter getWriter()

得到字符流,经过字符流的write(String s)方法能够将字符串设置到response   缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览   器端。

 

关于设置中文的乱码问题

缘由:response缓冲区的默认编码是iso8859-1,此码表中没有中文,能够经过     response的setCharacterEncoding(String charset) 设置response的编码

 

但咱们发现客户端仍是不能正常显示文字

缘由:咱们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系     统的编码,由于咱们都是中文系统,因此客户端浏览器的默认编码是GBK,咱们能够   手动修改浏览器的编码是UTF-8。

 

咱们还能够在代码中指定浏览器解析页面的编码方式,

经过response的setContentType(String type)方法指定页面解析时的编码是UTF-8

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

 

上面的代码不只能够指定浏览器解析页面时的编码,同时也内含            setCharacterEncoding的功能,因此在实际开发中只要编写      response.setContentType("text/html;charset=UTF-8");就能够解决页面输出中文乱码问题。

相关文章
相关标签/搜索