博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVAWeb---HttpServletResponse中的方法
阅读量:4918 次
发布时间:2019-06-11

本文共 1783 字,大约阅读时间需要 5 分钟。

1.response

    ServletResponse -- 通用的response提供了一个响应应该具有最基本的属性和方法
        |
        |-HttpServletResponse -- 在ServletResponse的基础上针对于HTTP协议增加了很多强化的属性和方法

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.

1.response的运行流程

 

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

因为response代表响应,所以我们可以通过该对象分别设置Http响应的响应行,响    应头和响应体

3.通过response设置响应行

设置响应行的状态码

setStatus(int sc)

4.通过response设置响应头

addHeader( name, value)

addIntHeader( name, int value)

addDateHeader( name, long date)

setHeader( name, value)

setDateHeader( name, long date)

setIntHeader( name, int value)

 

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

 

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

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

5.通过response设置响应体

(1)响应体设置文本

getWriter()

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

 

关于设置中文的乱码问题

原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过     response的setCharacterEncoding( charset) 设置response的编码

 

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

原因:我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系     统的编码,因为我们都是中文系统,所以客户端浏览器的默认编码是GBK,我们可以   手动修改浏览器的编码是UTF-8。

 

我们还可以在代码中指定浏览器解析页面的编码方式,

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

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

 

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

转载于:https://www.cnblogs.com/time-to-despair/p/9987831.html

你可能感兴趣的文章
sql 语句
查看>>
VUE一 基础语法
查看>>
[MySQl]MySQL忘记密码
查看>>
Android的minSdkVersion,targetSdkVersion,maxSdkVersion
查看>>
Xceed WinForm数据表格控件Xceed Grid For .NET控件详细介绍及下载地址
查看>>
ecos启动流程分析
查看>>
Oracle CASE WHEN 用法介绍
查看>>
linux 下连接mysql服务器
查看>>
DOMContentLoad 首屏渲染
查看>>
rpm检验是否被改动过
查看>>
Sphinx-简介及原理
查看>>
【Linux】深入理解Linux中内存管理
查看>>
WEB 移动网站 手机点击 打电话 发短信
查看>>
2019CSUST集训队选拔赛题解(一)
查看>>
李晓菁201771010114《面向对象程序设计(Java)》第三周学习总结
查看>>
Typedef与Struct
查看>>
Linux常用网络命令整理
查看>>
C++ 面向对象
查看>>
Maven Nexus
查看>>
js 判断滚动条的滚动方向
查看>>