解决方法:
首先确定是tomcat的问题还是mysql的问题。
- 在servlet中添加打印,发现请求过来就是乱码了,排除mysql
apache-tomcat-9.0.62/conf/web.xml增加如下配置,此配置只是过滤post请求编码问题
<!--4.x-->
webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
<!--5.x-->
webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
webapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
<!--6.x-->
webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
<!--7.x (已经将这个Filter加入Tomcat内置了,具体位置:tomcat目录下的conf/web.xml,直接复制一下代码到你的项目web.xml中)-->
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
get请求编码问题,在Tomcat安装文件夹中找到server.xml文件,查找标签进行修改(此方法一劳永逸)
增加URIEncoding=“UTF-8”
<Connector URIEncoding="UTF-8"
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
connectionTimeout="20000" disableUploadTimeout="true" />