关于spring mvc 请求乱码问题分析
来源:互联网 发布:淘宝网用户体验 编辑:程序博客网 时间:2024/06/07 02:45
spring mvc 在请求参数乱码的时候可以使用 CharacterEncodingFilter来做处理,配置如下:
<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>
原理很简单,就是拦截所有/*的请求,并将request和response的编码设置为UTF-8,关键的源代码如下:
@Overrideprotected void doFilterInternal( HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) { request.setCharacterEncoding(this.encoding); if (this.forceEncoding) { response.setCharacterEncoding(this.encoding); } } filterChain.doFilter(request, response);}
但是这只能解决post的请求,对于get请求传递的参数,这种方法是不起作用的。最简单的办法就是修改tomcat的配置文件,新增配置项: useBodyEncodingForURI="true"
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
原因:tomcat 默认按ISO-8859-1进行URL解码,如果请求方式为get,参数包含中文字符,则会出现乱码的问题,按ISO-8859-1进行URL解码,useBodyEncodingForURI的作用是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码,默认:false 不启用,设置为 true,那么我们上面配置的filter就生效了。
另外tomcat还有一个URIEncoding的配置项,它的作用是对所有GET方式的请求的数据进行统一的重新编码,简单暴力,如果尝试过多次还未解决乱码问题,可以添加这样一个配置项:
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
阅读全文
0 0
- 关于spring mvc 请求乱码问题分析
- 关于spring mvc ajax请求乱码问题 StringHttpMessageConverter
- Spring mvc GET请求中文乱码问题
- 关于spring-mvc请求路径的问题
- 关于spring mvc json请求 415问题
- spring mvc post 请求乱码
- spring mvc get请求乱码
- Spring mvc乱码问题
- Spring MVC 乱码问题
- JSP中文传到Spring MVC controller乱码问题分析
- 关于Spring mvc 一次请求Controller执行两次的问题
- spring-mvc ajax post请求乱码
- Spring MVC 中文乱码问题
- Spring MVC Json 乱码问题
- 解决spring mvc 乱码问题
- spring mvc json乱码问题
- Spring MVC接口解决GET请求时中文乱码的问题
- Spring MVC请求处理流程图分析
- ubantu14.04+ opencv-2.4.9+QT
- ConcurrentHashMap、Collections.synchronizedMap、Hashtable的区别与讨论
- hdu 5874 Friends and Enemies(思维)
- Android中View的相关知识(7)
- thinking in java 阅读笔记 第一章 对象入门
- 关于spring mvc 请求乱码问题分析
- 面试相关
- 原子操作类介绍
- centOS安装redis和tomcat
- 【自学之路一】 关于最新版本eclipse编译出现的问题解决办法(个人见解,菜鸟初学)
- Gson解析纯数组的json
- 我是怎么明白vue和ng1的响应式原理的
- git代理设置
- No312. Burst Balloons