乱码问题模拟:
在使用SpringMVC的Tomcat时,使用post请求提交数据,post请求会导致中文乱码:
<body>
<form th:action="@{/getUser}" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="password">
年龄:<input type="text" name="age">
<input type="submit">
</form>
</body>
@RequestMapping(value = "/getUser")
public String formUser(User user,Model model){
model.addAttribute("model",user.getName());
if (user.getName()!=null){
System.out.println(user);
return "success";
}
return "404";
}
点击提交按钮后,在控制台获取提交的数据会产生乱码:
如何解决?
在web.xml文件中,设置编码过滤器,代码如下:
<!--设置编码过滤器解决post请求乱码问题-->
<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>
再次在页面中输入数据:
获取成功!