spring mvc get请求中文乱码问题

使用Spring MVC进行get请求时发现get请求带上中文参数,后台收到的是乱码,即使加了encoding filter也没用。

原因是,encoding filter 是针对post请求的,tomcat对get请求的处理方式不一样,需要修改tomcat 的server.xml配置文件

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

即加上  URIEncoding="UTF-8",重启tomcat后生效。这里有一点要注意,有些同学使用的是eclipse自带的tomcat,注意别改错了。

另附上一篇文章,关于javaweb中发生编码与解码的讲解

http://www.jb51.net/article/80181.htm

时间: 2024-10-18 11:20:30

spring mvc get请求中文乱码问题的相关文章

Spring MVC @ResponseBody响应中文乱码

问题:在前端通过get请求服务端返回String类型的服务时,会出现中文乱码问题 原因:由于spring默认对String类型的返回的编码采用的是 StringHttpMessageConverter>>> spring mvc的一个bug,spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值,如返回list则使用MappingJacksonHttpMessageConverter,返回string,则使用StringHttp

spring mvc get请求也可以接受DTO对象

spring mvc get请求也可以接受DTO对象,比如:url上面你还是将参数&符号连接起来,并自动封装进一个DTO对象里. 只有@RequestBody注解spring mvc才会从http body里去拿数据. 默认不填注解的参数都会从url上面去拿. @ApiOperation(value = "查询卡券详情接口", consumes = "application/x-www-form-urlencoded") @RequestMapping(va

tomcat get请求中文乱码

tomcat7中,保证get数据采用UTF8编码,在server.xml中进行了如下设置: 加:URIEncoding="UTF-8" <Connector port="8080" maxThreads="150"minSpareThreads="25"maxSpareThreads="75" enableLookups="false"redirectPort="8443

研究 Spring MVC 将请求分发到 Spring 依赖注入的类实例

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 一上午时间,碰了 N 个钉子,不断地把钉子拨掉,记录一下选择的工具和方法: 1.首先 Spring Mvc 框架的下载,那么有三个包是必不可少的:

Wildfly8 POST请求中文乱码分析与解决

最近遇到的一个关于POST请求中文乱码的问题,原本应用是在TOMCAT上运行的,切换到Wildfly8后,测试环境是正常的,但生产环境下客户端发出的相同请求在服务端获取到的中文出现了乱码,在经过定位后发现是Wildfly8的一个配置引起的. 问题分析如下: 在HTTP的POST请求中,如果是这种情况 Content-Type: application/x-www-form-urlencoded;charset=utf-8 ,若没有设置charset=utf-8,这时可能会出现请求参数中文乱码的情

Spring Mvc——处理请求过程

1.概述 下面这张图是Spring mvc处理请求的整体流程,其中Front controller指的是DispatcherServlet类. 1.客户端所有的请求都会发送到DispatcherServlet,由DispacherServlet处理. 2.DispacherServlet将请求分发到不同的Controller类,由Controller类去处理对应的请求. 3.Controller类将对应的请求处理完后,将处理后对应的model或者视图信息给将DispatcherServlet类.

在Filter中使用动态代理解决请求中文乱码问题

使用动态代理解决请求中文乱码问题 1.增强一个类我们常用的几种解决方案: 1.继承 a) 优点简单 b) 必须有被增强类的实现类 2.装饰者模式 a) 要求:1实现相同的接口.2持有被增强的对象 b) 优点:不必知道被增强的实现是谁 c) 缺点:必须实现所有没被增强方法的原始对象的原样调用 3.动态代理 a) 要求:1实现相同接口,2持有被增强的对象 b) 优点:不必手动实现所有不增强方法的原样调用.对方法进行增强时有类似过滤器的功能. c) 缺点:学习成本高. 代理(Proxy): 一个代理对

项目中get/post请求中文乱码的解决方案

一.解决get请求中文乱码的方案: 方案(推荐)1: 一般情况下tomcat(8之前)服务器的编码默认是ISO8859-1,所以要对get请求提交的参数进行重新编码: String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8"); 方案(不推荐)2: 既然知道了tomcat服务器的编码默认是ISO8859-1,那么可以修改to

请求中文乱码问题

package com.bjsxt.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.bjsxt.pojo.Us