tomcat8.0环境下解决get方法中文参数乱码问题
2015-04-12 17:45
477 查看
环境:java 1.7 ,tomcat8.0问题:tomcat8.0环境下,使用get方法提交由英文字母数字组合的内容显示正常,但提交中文参数编码乱码,然而使用post方法程序一切正常,不出现乱码问题。原因:高版本tomcat 中,get 与 post 方法对参数内容编码处理不同解决方法:修改 tomcat 的配置文件,对 server.xml 中 Connector 元素增加如下的配置参数,这两参数专门用来对编码进行直接的配置,server.xml文件具体修改如下,见加粗部分:<Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="GBK" useBodyEncodingForURI="true" />说明:1)URIEncoding 用来设定通过 URI 传递的内容使用的编码,tomcat将使用这里指定的编码对客户端传送的内容进行编码。也就是说,我们通过 get 方法提交的参数实际上都是通过 uri 提交的,都由这个参数管理,如果没有设定这个参数,则 tomcat 将使用默认的 iso8859-1 对客户端的内容进行编码。2)useBodyEncodingForURI 使用与 Body 一样的编码来处理 URI, 这个设定是为了与老版本tomcat保持兼容,原来在 tomcat4 和 tomcat5 中对参数的处理是不一样的,在 tomcat4 中 get 与 post 的编码是一样的,所以只要在过滤器中通过 request.setCharacterEncoding设定一次就可以解决 get 与 post 的问题。然而,在 tomcat高版本 中,get 与 post 的处理是分开进行的,对 get 的处理通过前面的 URIEncoding进行处理,对 post 的内容依然通过request.setCharacterEncoding 处理,为了保持兼容,就有了这个设定。因此,将 useBodyEncodingForURI 设定为真后,就可以解决中文参数乱码。另外,tomcat还可以有页面压缩等设置选项,见下表:
<Service name="Catalina"><Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="250" minSpareThreads="20"/><Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/javascript,application/x-javascript"/><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" executor="tomcatThreadPool"/>
相关文章推荐
- 解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
- 解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
- [转]解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- GET方法和POST获取中文参数出现乱码的问题及解决方法
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法
- HTML的Get方法URL传递中文参数,解决乱码问题
- 解决get方法传递URL参数中文乱码问题
- 【java】怎样解决tomcat中get提交中文参数为乱码的问题
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- [JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法
- Tomcat 5环境下的jsp中文乱码问题(分别针对POST、GET方法)
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题
- 解决get方法传递URL参数中文乱码问题