springMVC-11 中文乱码处理

前言        

        本文介绍了springMVC中文乱码的解决方案,同时也贴出了本人遇到过的其他乱码情况,可以根据自身情况选择合适的解决方案。

其他-jdbc、前端、后端、jsp乱码的解决

Tomcat导致的乱码解决


自定义中文乱码过滤器

老方法,通过javaWeb-Filter解决

准备工作

1.把上一章中的取消数据绑定的设置注释掉:

    //恢复注解@NotEmpty(message="不能为空")private String name;
//MonsterHandler中注释掉取消数据绑定
//webDataBinder.setDisallowedFields("name");

2.输入中文:

3.后台显示中文乱码:name='佩恩'

Filter回顾

Filter的生命周期图解

自定义实例

1.创建com/stein/springMVC/filter/MyCharacterFilter.java

import javax.servlet.*;
//注意Filter接口不要引用错了
public class MyCharacterFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {}@Overridepublic void destroy() {}
}

2.在doFilter()中执行

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//设置utf-8编码servletRequest.setCharacterEncoding("utf-8");//放行过滤器filterChain.doFilter(servletRequest,servletResponse);}

3.在web.xml中配置Filter

        建议放在最前面

    <!--配置自定义的中文乱码过滤器--><filter><filter-name>MyCharacterFilter</filter-name><filter-class>com.stein.springMVC.filter.MyCharacterFilter</filter-class></filter><filter-mapping><filter-name>MyCharacterFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

4.重新测试

        后台输出:name='佩恩'。乱码解决

Spring提供的过滤器 

        通过上面的自定义的方法,在代码中写死了字符集是"uft-8",属于硬编码的方式,不够灵活;自己灵活处理的话,又比较麻烦。于是有了spring给我们提供的字符过滤器。

1.在web.xmlx中注释掉刚刚自己定义的MyCharacterFilter

2.重新配置spring的过滤器

        1)utf-8 或者 UTF-8都一样

        2)encoding这个参数名,可以在CharacterEncodingFilter这个类名,按Ctrl+B进入查看到

    <!--使用spring提供的过滤器处理中文,放在其它Servlet前--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><!--大小写都可以 utf-8--><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

3.重新测试

        中文正常显示!

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

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

相关文章

mysql-innoDB存储引擎事务的原理

InnoDB 存储引擎支持 ACID 事务&#xff0c;其事务机制是通过 Redo Log&#xff08;重做日志&#xff09;、Undo Log&#xff08;回滚日志&#xff09; 和 事务日志系统 来实现的。下面详细解析 InnoDB 事务的工作原理。 1.事务的基本特性&#xff08;ACID&#xff09; 特性描…

在GIS 工作流中实现数据处理

通过将 ArcPy 应用于实际的 GIS 工作流&#xff0c;我们可以高效地完成数据处理任务&#xff0c;节省大量时间和精力。接下来&#xff0c;本文将结合具体案例&#xff0c;详细介绍如何运用 ArcPy 实现 GIS 数据处理的全流程。 数据读取与合并 假设我们有多个 shapefile 文件&a…

第十四届蓝桥杯_省赛B组(C).冶炼金属

题目如下: 拿到题我们来看一下&#xff0c;题目的意思&#xff0c;就是求出N个记录中的最大最小值&#xff0c;言外之意就是&#xff0c;如果超过了这个最大值不行&#xff0c;如果小于这个最小值也不行&#xff0c;所以我们得出&#xff0c;这道题是一个二分答案的题目&#x…

​​Android 如何查看CPU架构?2025年主流架构有哪些?​

在开发安卓应用或选购手机时&#xff0c;了解设备的CPU架构至关重要。不同的架构影响性能、兼容性和能效比。那么&#xff0c;​​如何查看安卓设备的CPU架构&#xff1f;2025年主流架构有哪些&#xff1f;不同架构之间有什么区别&#xff1f;​​ 本文将为你详细解答。 ​​1.…

飞算 JavaAI 2.0.0:开启老项目迭代维护新时代

在软件开发领域&#xff0c;老项目的迭代与维护一直是开发团队面临的难题。代码逻辑混乱、技术栈陈旧、开发效率低下等问题&#xff0c;让老项目改造犹如一场 “噩梦”。而飞算 JavaAI 2.0.0 版本的正式上线&#xff0c;通过三大核心能力升级&#xff0c;为老项目开发带来了全新…

Linux初步介绍

Linux是一种开源的类Unix操作系统内核&#xff0c;广泛应用于服务器、桌面、嵌入式设备等各种计算平台。它由Linus Torvalds于1991年首次开发&#xff0c;因其稳定性、安全性和灵活性&#xff0c;被全球开发者和企业广泛采用。 特点&#xff1a; 开放性&#xff08;开源&#…

OneNet + openssl + MQTT

1.OneNet 使用的教程 1.在网络上搜索onenet&#xff0c;注册并且登录账号。 2.产品服务-----物联网服务平台立即体验 3.在底下找到立即体验进去 4.产品开发------创建产品 5.关键是选择MQTT&#xff0c;其他的内容自己填写 6.这里产品以及开发完成&#xff0c;接下来就是添加设…

行为设计模式之Memento(备忘录)

行为设计模式之Memento&#xff08;备忘录&#xff09; 前言&#xff1a; 备忘录设计模式&#xff0c;有点像vmware快照可以回滚&#xff0c;idea的提交记录同样可以混滚&#xff0c;流程引擎中流程可以撤销到或者回滚到某个指定的状态。 1&#xff09;意图 在不破坏封装性的…

动画直播如何颠覆传统?解析足球篮球赛事的数据可视化革命

在5G和AI技术快速发展的今天&#xff0c;体育赛事直播正在经历一场深刻的变革。传统视频直播虽然能提供真实的比赛画面&#xff0c;但在战术可视化、数据深度和交互体验方面存在明显短板。而基于实时数据驱动的动画直播技术&#xff0c;正通过创新的方式弥补这些不足&#xff0…

二刷苍穹外卖 day01

nginx nginx反向代理 将前端发送的请求由nginx转发到后端服务器 好处&#xff1a; 提速&#xff1a;nginx本身可缓存数据 负载均衡&#xff1a;配置多台服务器&#xff0c;大量请求来临可均衡分配 保证后端安全&#xff1a;不暴露后端服务真实地址 server{listen 80;server_…

5.2 HarmonyOS NEXT应用性能诊断与优化:工具链、启动速度与功耗管理实战

HarmonyOS NEXT应用性能诊断与优化&#xff1a;工具链、启动速度与功耗管理实战 在HarmonyOS NEXT的全场景生态中&#xff0c;应用性能直接影响用户体验。通过专业的性能分析工具链、针对性的启动速度优化&#xff0c;以及精细化的功耗管理&#xff0c;开发者能够构建"秒…

模型训练-关于token【低概率token, 高熵token】

Qwen团队新发现&#xff1a;大模型推理能力的提高仅由少数高熵 Token 贡献 不要让低概率token主导了LLM的强化学习过程 一 低概率词元问题 论文&#xff1a;Do Not Let Low-Probability Tokens Over-Dominate in RL for LLMs 在RL训练过程中&#xff0c;低概率词元&#xff08…

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag

gRPC、WebSocket 与 HTTP 的核心区别对比

gRPC、WebSocket 与 HTTP 的核心区别对比&#xff0c;涵盖通信模式、协议特性及适用场景&#xff1a; &#x1f504; ‌一、通信模式‌ ‌HTTP‌ ‌单向请求-响应‌&#xff1a;客户端发起请求&#xff0c;服务器返回响应后连接立即关闭13。‌无状态协议‌&#xff1a;每次请求…

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…

讲讲JVM的垃圾回收机制

垃圾回收就是对内存堆中已经死亡或者长时间没有使用的对象进行清楚或回收。 JVM 在做 GC 之前&#xff0c;会先搞清楚什么是垃圾&#xff0c;什么不是垃圾&#xff0c;通常会通过可达性分析算法来判断对象是否存活。 在确定了那些垃圾可以被回收后&#xff0c;垃圾回收器&…

QT软件外包开发费用

国内QT软件外包开发费用是一个非常复杂的问题&#xff0c;没有一个固定的价格&#xff0c;它受到多种因素的影响。以下将详细阐述影响QT软件外包开发费用的主要因素&#xff0c;并提供大致的价格区间供参考&#xff08;请注意&#xff0c;这些价格仅为估算&#xff0c;实际报价…

iOS 16 SwiftUI 优雅跳转实践:用枚举路由和 NavigationStack 实现多页面导航

引言&#xff1a;跳转的混乱与优雅的必要性 SwiftUI 给我们带来了声明式界面的全新开发体验&#xff0c;但当涉及到页面跳转时&#xff0c;许多开发者仍然面临一些“旧痛”。最初的 NavigationLink(destination:isActive:) 或 sheet(isPresented:) 等方式虽然能用&#xff0c;…

TikTok矩阵养号实战:住宅IP纯净度与设备指纹联动方案

在TikTok矩阵运营中&#xff0c;住宅IP纯净度和设备指纹管理是规避风控的核心。以下方案整合多平台风控逻辑与实战数据&#xff0c;覆盖环境隔离、行为模拟到风险防控全流程。 &#x1f527; 一、住宅IP纯净度维持策略 IP筛选与验证 静态住宅IP优选&#xff1a;核心账号绑定目标…

Elasticsearch增删改查语句

创建索引库&#xff1a;不带映射的 PUT /索引名称 {"settings": {"number_of_shards": 3, // 主分片数"number_of_replicas": 1 // 每个主分片的副本数} } 创建带映射的索引库&#xff1a; PUT /products {"settings": {"…