1:表单提交controller获得中文参数后乱码解决方案
注意: jsp页面编码设置为UTF-8
***************form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
1
2
|
<%@ page language= "java" import = "java.util.*" pageEncoding= "UTF-8" %> <form action= "/user/addUser" name= "userForm" method= "post" > |
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<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> <init-param> <param-name>forceEncoding</param-name> <param-value> true </param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:
1
|
<Connector connectionTimeout= "20000" port= "8080" protocol= "HTTP/1.1" redirectPort= "8443" /> |
改为:
1
|
<Connector connectionTimeout= "20000" port= "8080" protocol= "HTTP/1.1" redirectPort= "8443" useBodyEncodingForURI= "true" /> |
**************注意Eclipse中Tomcat,server,clean功能会将原先配置还原
如果你是更改的tomcat安装目录的server.xml配置文件,其实是因为eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件,改为如下即可:
注:配置useBodyEncodingForURI="true"后,可以解决普通get请求的中文乱码问题,但是对于通过ajax发起的get请求中文依然会乱码,请把useBodyEncodingForURI="true"改为URIEncoding="UTF-8"即可。
以上所述是小编给大家介绍的Tomcat修改get提交请求乱码问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!