Response设置响应编码
# Response设置编码的三种方式
在Java后台的Servlet代码中用response的方法来设置输出内容的编码方式,有以下三个方法:
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application/json;charset=UTF-8");
- response.setLocale(new java.util.Locale("zh","CN"));
下面对以上3种方法进行差异分析:
- 第一种方法只能用来设置out输出流中所采用的编码,但是它的优先权最高,可以覆盖后面两种方法中的设置;
- 第二中方法可以设置out输出流中字符的编码方式,也可以设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法, 高于第三种方法;
- 第三种方法只能用来设置out输出流中字符的编码方式,但是它的优先权最低,在已经使用前两种方法中的一个设置了编码方式以后,它就被覆盖而不起作用了。
//设置out输出流编码
response.setCharacterEncoding("utf-8");
//设置浏览器接收到字符后使用什么编码方式进行解码
response.setHeader("content-type", "text/html;charset=utf-8");
上面两句相当于下面这一句
//设置out数据流编码方式以及同时设置浏览器接收到字符后使用什么编码方式进行解码
response.setContentType("text/html;charset=utf-8");
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# ContentType
在向客户端发送数据之前,Servlet 容器会通知客户端浏览器现在正在发送什么类型的数据。
可以发送的数据可以是简单的纯文本、html、xml、gif或jpg类型的图像形式、excel表格等等。
为了发送信息,Servlet 容器使用带有 setContentType() 方法的响应对象。
setContentType(String) 方法接受一个字符串参数并且不返回任何内容(返回 void)。
在“text/html”中,“text”称为类型,“html”称为子类型。 一个类型包含许多子类型
响应类型
response.setContentType("text/html;charset=utf-8"); //html类型
response.setContentType("text/plain;charset=utf-8"); //文本类型
response.setContentType("application/json;charset=utf-8"); //json类型
response.setContentType("application/xml;charset=utf-8"); //xml类型
1
2
3
4
5
2
3
4
5
请求类型
content-type: multipart/form-data 主要用于文件上传,将文件转成二进制数据进行传输,不涉及转码。
content-type: application/json 主要以json格式方式为服务器发送数据
1
2
2
Last Updated: 2024/07/26, 16:12:04