tomcat的server.xml中的UrIEncoding编码设置

如果设置了其为中文编码格式,只对get方法有效,但是post方法就不可以了,因为这个属性本来就是设置了get时候的数据编码,如何使它对post也有作用呢?

引用
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.

官方文档中的说明,该编码指定的是为URI进行解码用的,只对GET请求有效,POST请求参数是以http body形式提交的,不会受此影响。 如果需要对POST指定编码,你可以使用EncodingFilter这样是实现,比如spring就提供了一个
Java代码   收藏代码
  1. <filter>  
  2.  <filter-name>characterEncodingFilter</filter-name>  
  3.  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  4.  <init-param>  
  5.   <param-name>encoding</param-name>  
  6.   <param-value>utf8</param-value>  
  7.  </init-param>  
  8. </filter>  

放在所有filter的第一个就好了

post数据只需要在截取或者过滤器中实现编码转换一般就不会有问题,而get,通过地址栏提交,这种方式在本质上就容易出现编码问题。这个其实也是为什么我们经常说post提交数据安全完整的原因。你看 UrIEncoding这个属性的意思就是UrI的编码,刚好是针对get这种地址参数的。所以基本上不用考虑对post起作用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值