前言:学习自https://www.bilibili.com/video/BV1aE41167Tu
写下此文
问题背景
出现乱码
问题解决
失败案例1
在之前的Servlet中,我们用HttpServlet Request / Response解决乱码,现在也尝试一下
还是乱码
失败案例2
在之前的Servlet中,拦截器的方式也可以解决(当然,和直接在Servlet中用req和resp设置原理一样,这里顺便借这个错回顾一下)
当然,和上面是同样的原理,不出所料,也是不行
失败案例3
利用produces属性,当然,这也和失败案例1的原理相同
成功案例1
当我们将之前的POST方式提交,改为GET方式请求
则不再出现乱码问题,可见,请求方式的不同,也会导致乱码问题的出现
成功案例2(推荐)
Spring MVC 帮我们配置了一个过滤器,直接在web.xml中配置即可
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
也成功解决
注:这种方法,有些极端情况过滤器对 get 请求方式的支持不好
处理方法:
1、修改tomcat配置文件,设置编码
2、自定义过滤器(去网上找大佬自己写的过滤器,或者自己有能力就自己写)