首页 > 其他分享 >使用Filter接口编写过滤器解决post乱码

使用Filter接口编写过滤器解决post乱码

时间:2024-07-03 12:11:00浏览次数:1  
标签:Filter utf request 乱码 过滤器 post response

在使用tomcat9以及之前的版本,request-character-encoding和response-character-encoding使用的字符编码默认不是utf-8,所以导致前端发送到后台的中文乱码.如果使用的是tomcat10以及之后的版本,在apache-tomcat-10.1.25\conf\web.xml已设置好默认的字符集编码为utf-8,如果所示:

所以使用tomcat9以及之前的版本,可以手动编写过滤器来处理中文乱码:

  • 首先编写实现Filter接口的实现类
package com.powernode.springmvc.filter;

import jakarta.servlet.*;

import java.io.IOException;

public class CharacterEncodingFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        //设置请求体的字符集
        request.setCharacterEncoding("utf-8");
        //设置响应体的字符集
        response.setCharacterEncoding("utf-8");
        //执行下一步
        chain.doFilter(request,response);
    }
}
  • 然后在web.xml中,定义过滤器的名称等

    <!--配置字符编码过滤器-->
    <filter>
        <!-- 定义过滤器的名称,这个名字是唯一的,并且在整个web.xml文件中被引用 -->
        <filter-name>characterEncodingFilter</filter-name>
        <!-- 定义过滤器的全类名,即这个过滤器实现类的完整路径 -->
        <filter-class>com.powernode.springmvc.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

这样提交post中含有中文就不会乱码了.

标签:Filter,utf,request,乱码,过滤器,post,response
From: https://www.cnblogs.com/DuWenjie/p/18281355

相关文章

  • jmeter之CSV文件传参乱码
    1.使用xlsx文件设置参数进行传参,  2.请求之后解析为乱码,原因是xlsx文件编码格式不是UTF-8 解决方案1.文另存为CSVUTF-8格式 2.保存完成后选择对应文件传参 3.运行后解析正确,没有乱码 ......
  • 【postgresql】表操作
    创建表(CREATETABLE):CREATETABLEtable_name(column1data_typeconstraint,column2data_typeconstraint,...);插入数据(INSERTINTO):INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,...);查询数据(SELECT):SELECTcol......
  • 黑马点评下订单-小程序下单没问题但是Postman发送请求失败了,返回401
    经过多方探索,这个✓8错误就是由于黑马点评使用了拦截器,我们直接发送请求是会被拦截器拦截下来的,我给出的解决方案是通过配置Postman解决,方法很简单!解决方案右边的value写上Redis里面登录所用token值就可以了!!!......
  • 【0299】Postgres内核之哈希表(Hash Tables)
    0.哈希表(HashTables)哈希表是一种用于存储键值对的数据结构。与使用索引号访问元素的基本数组不同,哈希表使用键来查找表条目。这使得数据管理对于用户来说更易于管理,因为按属性对数据条目进行分类比按它们在一个巨大的列表中的数量更容易。在C++中,我们将哈希表实现为......
  • logstash 收集 http POST请求中的json日志时,字段冲突问题
    https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html修改vim/etc/logstash/logstash.ymlpipeline.ecs_compatibility:disabled不关闭的话,会自动添加这几个字段可能会与json中的同名字段冲突{"@version"=>"1","user_agent"......
  • .Net Core 链接postgresql 数据库
    安装依赖包Npgsql.EntityFrameworkCore.PostgreSQL必须Npgsql.EntityFrameworkCore.PostgreSQL.Design数据迁移相关新建数据库上下文类AppDbContext.cs注意当前文件,所在的项目,必须安装上面的依赖包//命名空间namespaceService{///<summary>///继承......
  • postman使用笔记
    Postman是一个广泛使用的API开发工具,它提供了一个用户友好的图形界面来发送HTTP请求、查看响应、组织测试用例和创建自动化测试。以下是一些基本的Postman使用教程,结合了搜索结果中的信息:安装Postman访问Postman官方网站下载适用于Windows、MacOS和Linux的......
  • 保存到redis中的token乱码了
    示图:原因是缓存保存到redis需要序列化操作,没有序列化会出现这样的问题序列化redis第一步:packagecom.abliner.test.configure.redis;importcom.fasterxml.jackson.annotation.JsonAutoDetect;importcom.fasterxml.jackson.annotation.PropertyAccessor;importcom......
  • POST和GET请求乱码问题
    简介:在很多情况下我们使用get或者post请求时会出现乱码问题。本文的目标是教会读者解决该问题。1.get请求乱码问题使用get请求提交数据时,数据会回显在uri上,例如:/springmvc/login?username=张三&password=123(注意:这不是一个很好的示范username和password这种敏感信息不应该使用......
  • 如何在Oracle、MySQL、PostgreSQL中改变SQL提示格式
    HowtoChangeinSQLPromptformatinOracle,MySQL,PostgreSQL像UNIX的PS1环境变量可以改变shell操作提示符,在日常工作环境中可以提升一些效率可以防止一些误操作,很多年前在看tom关于在练习oracle操作前的一些环境配置像login.sql,比起”SQL>”还可以显示当前的用......