今天在学习springMVC的时候,遇到了请求参数乱码的问题,特此写博客记录一下,方便回顾复习。
这是资源所在位置
在浏览器段访问testPojo. 控制台输出乱码
原来是要加字符编码的过滤器才行
记得加完之后要重启服务,因为修改了配置文件。
源码部分
1.
然后我们分析源码。Ctrl+B跟进。发现有三个成员变量并且有NUllable注解(可以为空)
并且两个布尔类型的成员变量默认值false.
2.
filter是服务器的三大组件之一,一般有初始化方法,执行操作方法,和销毁方法。但该类中没有doFilter方法。找到它的父类
3.
找到doFilter方法
4.
在子类里找到红箭头指向的方法。(已经在web.xml中filter的初始化参数部分设置过encoding的值 ),encoding不为空。
5.
getEncoding方法其实就是获取该类的成员变量encoding的值
6.往下执行,isForceRequestEncoding由于我们没有设置RequestEncoding的值,所以默认是false 由于我们没有设置过请求编码的值,所有返回null。这个逻辑表达式或返回的就是true,然后设置请求编码的值为UTF-8.
7.重启服务后运行成功!
*8.如果想设置响应编码的格式,只需要将成员变量ResponseEncoding的值设置为true.(在web.xml中配置)