SpringMVC学习 ----- 过滤器解决参数乱码问题
问题概述
当浏览器向后台提交数据的时候,若提交方式为post方式,且参数中出现中文,则会出现乱码问题。
表单提交
<form action="/test2" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>
当姓名字段传到控制器,就会出现乱码问题
User(username=?°??±?, password=123, age=10)
但如果是get方式提交的话,就不会出现中文乱码问题。
通过过滤器解决
在web.xml文件中配置过滤器来解决乱码问题。
<!--配置解决乱码的过滤器-->
<filter>
<filter-name>filter</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>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<!--拦截所有的-->
<url-pattern>/*</url-pattern>
</filter-mapping>
此时就可以接收到正确的参数。