Post请求中文乱码——web.xml中配置过滤器

<!-- spring提供的characterEncodingFilter配置 -->
<!--Post请求过滤器-->
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <!--观察发现这个类 CharacterEncodingFilter 有一个属性 encoding 所以提供一个initparm以及 value -->
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!-- 给 CharacterEncodingFilter类的对象进行初始化的赋值  request.setCharacterEncoding-->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!-- 响应编码的设置 true 设置response -->
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<!-- 过滤器对哪些资源进行过滤呀 -->
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
     <!--“/*”表示所有的请求 -->  
    <url-pattern>/*</url-pattern>
</filter-mapping>

以上处理针对于post请求,如果是get请求,则可以采用如下两种解决方案:

注:Tomcat8.5以上不用处理get请求

方案1:使用字符串的方法将获取的中文字符转换为utf-8

方案2:修改server.xml中的 <connector port="9090" URIEncoding="utf-8">或者<Connector port="9090" useBodyEncodingForURI="true">

最后修改:2021 年 08 月 30 日 02 : 03 AM
如果觉得我的文章对你有用,请随意赞赏