关于Tomcat服务器接收到的请求参数乱码的问题
我们在编写的Controller 等服务器端的代码时,接受到的请求参数经常会乱码。
解决:在Tomcat 的安装目录下找到conf 文件夹下的server.xml文件用记事本打开。
找到
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="30000" redirectPort="8443" />
添加上URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="30000" redirectPort="8443" URIEncoding="UTF-8" />
在把eclipse中的Server 工程中的server.xml文件中的上述代码也改一遍。就可以了。
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
但是需要注意的是,这个只对GET请求起作用,对于form表单的没有起作用。
后续如果发现对form表单起作用的方法在添加上来
=======================更新========================================
表单的提交乱码解决的方法:在web.xml文件中的配置Spring 自带的过滤器 org.springframework.web.filter.CharacterEncodingFilter
但是需要注意的是:这个filter 放的位置非常重要,放的顺序不一样则会的起不到作用,目前发现要尽量靠前放置,但是要放在 <listener> 的后面。后续如果又发现再更新
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>