搞了一段时间的开发了,一直忽视get请求的作用,平时一遇到form就是post post,渐渐的形成了一种习惯,前些日子网站来个seo,说我们的网站很多查询功能用post不好,不方便用户将查询结果保存到收藏夹里面,后来一想 的确post请求是不能在url里面体现出参数的 ,这下决定修改,结果却碰到了乱码问题。
我们网站jsp页面都是用GBK做编码方式的长久以来用spring的CharacterEncodingFilter做编码过滤器一直没什么问题,这次发现get请求竟然还是会有乱码,思考了一下 感觉因该是在参数进入过滤器以前就已经是乱码了,那造成乱码的原因一定就是tomcat服务器当中的问题了,查了一下google,发现的确是tomcat对post请求和get请求的处理方式是是不同的
最终处理方式只需要在tomcat的server.xml 将URIEncoding 设定成 GBK 就可以了 似乎默认是UTF-8的
xml 代码
- <Connector
- port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- debug="0" connectionTimeout="20000"
- disableUploadTimeout="true" URIEncoding="GBK" />
问题似乎就是这样圆满解决了