【Tomcat】Request中文乱码问题解决方法

303 阅读1分钟

项目背景:基于SpringMVC创建的Web Application,部署在tomcat9.0上

GET请求

  1. 打开tomcat根目录/conf/server.xml
  2. 找到标签
  3. 添加URLEncoding="utf-8"属性
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
               redirectPort="8443" URLEncoding="utf-8"/>

POST请求

在web.xml中设置过滤器

<!--设置编码过滤器-->
<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>
        <!--设置request和response都使用这个过滤器-->
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<!--设置拦截哪些请求进行过滤-->
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <!--拦截规则
    这里的springmvc是我在web.xml中预先设置好的<servlet>
    这里的规则意思是拦截符合springmvc这一servlet中定义的所有url
        <url-pattern></url-pattern> 根据url请求进行过滤
        <servlet-name></servlet-name> 具体指定过滤哪个servlet
    -->
    <servlet-name>springmvc</servlet-name>
</filter-mapping>