当前位置: 首页 > article >正文

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.lryc.cn/news/2404410.html

相关文章:

  • 【iOS安全】iPhone X iOS 16.7.11 (20H360) WinRa1n 越狱教程
  • MongoDB检查慢查询db.system.profile.find 分析各参数的作用
  • 智能标志桩图像监测装置如何守护地下电缆安全
  • 【网站建设】网站 SEO 中 meta 信息修改全攻略 ✅
  • 计算机视觉处理----OpenCV(从摄像头采集视频、视频处理与视频录制)
  • elasticsearch基本操作笔记
  • LVGL手势识别事件无上报问题处理记录
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- 第一篇:MIPI CSI-2基础入门
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(一)
  • 开源技术驱动下的上市公司财务主数据管理实践
  • 婚恋小程序直播系统框架搭建
  • day46 python预训练模型补充
  • CCPC chongqing 2025 H
  • Java建造者模式(Builder Pattern)详解与实践
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • 使用ORM Bee (ormbee) ,如何利用SQLAlchemy的模型生成数据库表.
  • 【win | 自动更新关闭】win11
  • win32相关(IAT HOOK)
  • 大模型高效提示词Prompt编写指南
  • 零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • ESP32开发之LED闪烁和呼吸的实现
  • 【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录、退款业务记录
  • 2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
  • Linux安装jdk、tomcat
  • WebRTC通话原理与入门难度实战指南
  • N元语言模型 —— 一文讲懂!!!
  • .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
  • Mac 安装git心路历程(心累版)
  • 计算机网络第2章(下):物理层传输介质与核心设备全面解析