pageEncoding,contentType,response/request.setCharacterEncoding

pageEncoding,contentType,request.setCharacterEncoding,response.setCharacterEncoding,初学javaWeb的时候总不太清楚它们之间的区别和联系,今天无事,好好总结一下吧。

  1. request.setCharacterEncoding:设置服务器这端接收二进制数据时的编码格式
  2. response.setCharacterEncoding:设置服务器发送数据到浏览器前的编码格式,浏览器也会根据这个设置浏览器编码(浏览器对收到的数据会用浏览器编码进行解码,对发送到服务器的数据用浏览器编码进行编码。有兴趣可以测试在jsp页面用该语句改变编码格式,在IE中查看该页面的编码,与设置一样)
  3. pageEncoding:设置jsp页面编译成servlet用的编码,在没有设置contentType和response的对应方法时,会改变浏览器编码,即与前两者同效。
  4. contentType:与response.setCharacterEncoding同效,但优先级低于它。
如果后三者都设置的情况下,优先级为response.setCharacterEncoding>contentType>pageEncoding

这四种方法一般都是用于解决页面乱码问题。
一般为了防范页面乱码,都会设置过滤器,在访问servlet和jsp页面时先调用request.setCharacterEncoding("utf-8"),response.setCharacterEncoding("utf-8")
但这种办法只能解决post请求乱码,get请求无效,原因我在前面的博文里面简单提到过:post和get提交服务器编码过程
下篇博文详细探讨下get请求乱码问题的解决方案: get请求乱码解决


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值