SpringMVC 前后端数据交互 中文乱码

 ajax 前台传入数据,但是后台接收到的数据中文乱码

 首先我们分析一下原因:我们调用接口的时候传入的中文,是没有乱码的

 此时我们看一下Java后台接口对应的编码:

  • 默认情况:Servlet容器(如Tomcat)默认使用ISO-8859-1解码请求参数

  • 中文问题:中文字符在ISO-8859-1编码下会变成乱码

 我们的程序是跑在tomcat 上面的,自然使用的是默认的编码:ISO-8859-1,我是使用tomcat插件启动的项目,并没有设置编码,所有采用的是默认的编码

如何来解决编码的问题,那就是:

  • 告诉Servlet容器使用UTF-8解码请求体(POST参数)

  • 必须在第一次调用request.getParameter()之前设置才有效

 

 

 

 如果在每个接口方法的前面都加上:

request.setCharacterEncoding("UTF-8");

就可以解决中文乱码的原因,但是这样的代码要在所有的接口中写一遍,确实优点不近人情,那么有没有什么好的解决办法,存在一个过滤器是在dispaterServlet 分发任务之前就可以执行,

所以我们可以在设置设置所有的方法都执行某个filter 这样就是统一设置编码了

 原生的过滤器:

public interface Filter {default void init(FilterConfig filterConfig) throws ServletException {}void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;default void destroy() {}
}

其实我们只要实现这个接口,就可以了,我们可以写自己的过滤器,也可以使用spring 自带的过滤器

<filter><filter-name>encodingFilter</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><param-name>forceEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

 处理之后;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

loads、dumps、jsonpath使用场景

在处理JSON数据时&#xff0c;loads、dumps 和 jsonpath 是三个非常有用的工具或概念。它们各自在不同的场景下发挥作用&#xff0c;让我们一一来看&#xff1a; 1. loads loads 函数是 Python 中 json 模块的一部分&#xff0c;用于将 JSON 格式的字符串解析成 Python 的数据…

Java学习手册:Spring 事务管理

一、事务管理的概念 事务是一组操作的集合&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。事务管理的目的是保证数据的一致性和完整性。在数据库操作中&#xff0c;事务管理尤为重要&#xff0c;例如银行转账、订单支付等场景都需要事务管理来确保数据的正确性。…

echarts自定义图表--柱状图-横向

区别于纵向表格 xAxis和yAxis对调 要将label全部固定到最右侧&#xff1a; 隐藏一个柱形 为每个label设置固定的偏移距离 offset: [300 - 80, 0] 在data中加入label的配置 根据现在的值生成距离右侧的偏移 更新方法 chart.setOption({series: [{},{data: data.map(v > ({v…

【CV数据集】Visdrone2019无人机目标检测数据集(YOLO、VOC、COCO格式)

visdrone2019的Task1是非常通用的目标检测数据集&#xff0c;也是许多人做目标检测论文和项目必然会用到的数据集&#xff0c;我将该数据集进行了处理&#xff0c;将其YOLO、VOC和COCO格式都整理好&#xff0c;通过下载我整理好的数据集和相关文件&#xff0c;可以直接在自己的…

常见电源的解释说明

英文缩写 BJT&#xff08;bipolar junction transistor&#xff09;双极型结晶体管FET&#xff08;field-effect transistor&#xff09;场效应管TTL&#xff08;Transistor-Transistor Logic&#xff09;三极管CMOS&#xff08;Complementary Metal Oxide Semiconductor&…

【2025年五一数学建模竞赛】A题 解题思路与模型代码

2025年五一数学建模竞赛 A题 问题一&#xff1a;推测支路 1 和支路 2 的车流量 1.1 问题描述 根据提供的主路历史数据以及已知的支路车流量变化趋势&#xff08;支路1呈线性增长&#xff0c;支路2先线性增长后线性减少&#xff09;&#xff0c;推测这两个支路在特定时间段&a…

d202551

目录 一、175. 组合两个表 - 力扣&#xff08;LeetCode&#xff09; 二、511. 游戏玩法分析 I - 力扣&#xff08;LeetCode&#xff09; 三、1204. 最后一个能进入巴士的人 - 力扣&#xff08;LeetCode&#xff09; 一、175. 组合两个表 - 力扣&#xff08;LeetCode&#xf…

RISC-V AIA SPEC学习(四)

第五章 Interrupts for Machine andSupervisor Levels 核心内容​​ 1.主要中断类型与默认优先级:​​ 定义了机器级别(M-level)和监管者级别(S-level)的标准中断类型(如MEI、SEI、MTI等)。默认优先级规则:本地中断(如软件/定时器)优先级高于外部中断,RAS事件(如低/高…

WSGI(Web Server Gateway Interface)服务器

0、什么是 WSGI WSGI &#xff08;Web Server Gateway Interface&#xff09; 是一种Python规范&#xff0c;它定义了 Web 服务器 和 Python Web 应用程序之间的通信接口。 即&#xff0c;能够让各种 Web 服务器&#xff08;如 Nginx、Apache 等&#xff09;和 Python Web 框架…

博客打卡-人类基因序列功能问题动态规划

题目如下&#xff1a; 众所周知&#xff0c;人类基因可以被认为是由4个核苷酸组成的序列&#xff0c;它们简单的由四个字母A、C、G和T表示。生物学家一直对识别人类基因和确定其功能感兴趣&#xff0c;因为这些可以用于诊断人类疾病和设计新药物。 生物学家确定新基因序列功能…

基本功能学习

一.enum枚举使用 E_SENSOR_REQ_NONE 的定义及用途 在传感器驱动开发或者电源管理模块中&#xff0c;E_SENSOR_REQ_NONE通常被用来表示一种特殊的状态或请求模式。这种状态可能用于指示当前没有活动的传感器请求&#xff0c;或者是默认初始化状态下的一种占位符。 可能的定义…

vitest | 测试框架vitest | 总结笔记

目录 测试框架 vitest 介绍 测试文件的写法 文件取名&#xff1a;文件名中要有 test&#xff0c;即 xxx.test.ts 引入库&#xff1a; test 测试&#xff1a; 测试运行&#xff1a; npx test 文件名 &#xff0c;每次保存后会重新运行。 ★ expect 方法&#xff1a; v…

ESP32开发-作为TCP客户端发送数据到网络调试助手

​​代码&#xff08;作为TCP客户端&#xff09;​​ #include <SPI.h> #include <EthernetENC.h> // 使用EthernetENC库// 网络配置 byte mac[] {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址 IPAddress ip(192, 168, 1, 100); // ESP32的IP IPAddr…

HTML5 WebSocket:实现高效实时通讯

一、引言 在当今的 Web 开发领域,实时通讯功能变得越来越重要。例如在线聊天、实时数据更新等场景都需要客户端与服务器之间能够进行高效的双向数据传输。HTML5 引入的 WebSocket 协议为我们提供了一种强大的解决方案,它在单个 TCP 连接上实现了全双工通讯,极大地改善了传统…

速通Ollama本地部署DeepSeek-r1

下载 Ollama 前往 Ollama官网 下载客户端&#xff0c;下载完成后点击Install安装即可。 完成后会自动安装在C:盘的AppData文件夹下&#xff0c;命令行输入ollama后&#xff0c;显示下图中的信息表明安装成功。 下载模型 在官网界面点击 DeepSeek-R1 超链接 跳转到DeepSeek安装…

总结C++中的STL

1.STL 概述 STL 即标准模板库&#xff0c;是 C 标准程序库的重要组成部分&#xff0c;包含常用数据结构和算法&#xff0c;体现了泛型化程序设计思想&#xff0c;基于模板实现&#xff0c;提高了代码的可复用性 2.容器 2.1 序列容器&#xff1a; 1. vector 特性&#xff…

自动驾驶-一位从业两年的独特视角

时间简介 2023.03 作为一名大三学生&#xff0c;加入到某量产车企&#xff0c;从事地图匹配研发 2023.07 地图匹配项目交付&#xff0c;参与离线云端建图研发 2023.10 拿到24届校招offer 2024.07 正式入职 2025.01 离线云端建图稳定&#xff0c;开始接触在线车端融图研发 自动…

《软件设计师》复习笔记(11.1)——生命周期、CMM、开发模型

目录 一、信息系统生命周期 系统规划阶段 系统分析阶段&#xff08;逻辑设计&#xff09; 系统设计阶段&#xff08;物理设计&#xff09; 系统实施阶段 系统运行与维护阶段 二、能力成熟度模型&#xff08;CMM/CMMI&#xff09; CMM 五级模型 CMMI 两种表示方法 真题…

1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版

五一特别制作 &#xff08;主要更新简述&#xff09; 全程由最新YCDISM2025装载制作 1、可选功能&#xff1a; 添加&#xff1a; Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增强&a…

爬虫逆向思维

爬虫逆向思维是指从目标网站的反爬机制入手&#xff0c;通过分析其防护逻辑来突破限制&#xff0c;获取数据的思路。以下是核心要点&#xff1a; 核心方向 - 分析反爬手段&#xff1a;如请求头校验、IP封禁、验证码、动态数据加密等。 - 模拟真实行为&#xff1a;伪造浏览器指…