SpringMVC接收参数中文乱码解决方案

简介: SpringMVC接收参数中文乱码解决方案

image.png

1、前端传递参数

<form action="${pageContext.request.contextPath}/user/register" method="post">
    姓名:<input type="text" name="name"><br/>
    密码:<input type="password" name="password"><br/>
    性别:<input type="text" name="sex"><br/>
    生日:<input type="text" name="birthday"><br/>
    工资:<input type="text" name="salary"><br/>
    <span> 爱好:</span>
    吃饭:<input type="checkbox" name="hobby" value="吃饭">
    睡觉:<input type="checkbox" name="hobby" value="睡觉">
    爱杨福君:<input type="checkbox" name="hobby" value="爱杨福君">
    抽烟:<input type="checkbox" name="hobby" value="抽烟">
    喝酒:<input type="checkbox" name="hobby" value="喝酒">
    烫头发:<input type="checkbox" name="hobby" value=" 烫头发">
    <br/>
    <input type="submit" value="提交"><br/>
</form>

注意: 在接收对象类型参数时和struts2接收不同,springmvc直接根据传递参数名与对象中属性名一致自动封装对象


image.png

2、后台Controller接收参数

//负责控制层组件对象创建
@Controller("userController")
//类上的控制器映射器,相当于Struts2中的namespace
@RequestMapping("user")
public class UserController{
    @RequestMapping("register")
    public String register(User user, String[] hobby){
        System.out.println("注册成功");
        System.out.println("姓名:"+user.getName());
        System.out.println("密码:"+user.getPassword());
        System.out.println("性别:"+user.getSex());
        System.out.println("生日:"+user.getBirthday());
        System.out.println("工资:"+user.getSalary());
        System.out.println("爱好:");
        for (String s : hobby) {
            System.out.println(s);
        }
        return "redirect:/index.jsp";
    }

image.png


3、SpringMVC接收参数中文乱码解决方案

注意:在使用springmvc过程中接收客户端的请求参数时有时会出现中文乱码,这是因为springmvc并没有对象请求参数进行编码控制,如果需要控制需要自行指定


(1)在使用post方式接收请求参数时出现中文乱码接收数据问题解决

   <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>charset</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


image.png

(2)在使用set方式中文乱码问题

改tomcat的server.xml配置文件大概在69多行加上URIEncoding="UTF-8"


# 1.针对于GET方式中文乱码解决方案:
<Connector connectionTimeout="20000"
             port="8080" 
             protocol="HTTP/1.1" 
            redirectPort="8443" URIEncoding="UTF-8"/>


image.png

成功设置之后,接收到的数据就不会乱码了!



image.png

相关文章
|
7月前
|
存储 前端开发 Java
SpringMVC中重定向请求时传输参数原理分析与实践
SpringMVC中重定向请求时传输参数原理分析与实践
119 2
SpringMVC中重定向请求时传输参数原理分析与实践
|
9月前
47SpringMVC - 参数绑定(绑定包装pojo)
47SpringMVC - 参数绑定(绑定包装pojo)
22 0
|
9月前
|
应用服务中间件 数据库
46SpringMVC - 参数绑定(绑定pojo类型)
46SpringMVC - 参数绑定(绑定pojo类型)
42 0
|
9月前
45SpringMVC - 参数绑定(绑定简单类型)
45SpringMVC - 参数绑定(绑定简单类型)
47 0
|
22天前
|
前端开发 Java Spring
Spring MVC 是如何对对象参数进行校验的
【6月更文挑战第4天】对象参数校验是使用 SpringMVC 时常用的功能,这篇文章尝试分析了,Spring 是如何实现这一功能的。
31 5
|
20天前
|
JSON 前端开发 Java
Spring MVC 级联对象参数校验
【6月更文挑战第6天】在 Spring MVC 的使用过程中,我们会发现很多非常符合直觉的功能特性,但往往我们会习惯这种「被照顾得很好」的开发方式,依靠直觉去判断很多功能特性的用法。
19 1
|
23天前
|
前端开发 Java Spring
自定义 Spring MVC Controller 方法参数处理
【6月更文挑战第3天】在 Spring MVC Controller 的方法参数,Spring 会自动为我们注入一些特殊的参数值,比如 HttpServletRequest、HttpServletResponse 等对象,或者 HTTP 请求参数。
65 0
|
8月前
|
Java Spring
SpringMVC中请求传输的各种类型参数分析
SpringMVC中请求传输的各种类型参数分析
32 0
|
2月前
|
JSON 前端开发 JavaScript
JAVAEE框架技术之5-springMVC参数绑定和异步交互
JAVAEE框架技术之5-springMVC参数绑定和异步交互
60 0
JAVAEE框架技术之5-springMVC参数绑定和异步交互
|
8月前
|
JavaScript
springMVC接收数组参数
springMVC接收数组参数