解决【Spring MVC 表单提交数据乱码】 问题

今天在练习一个SSM的CRUD项目时,发现前端页面通过表单提交过来的数据保存到数据库后是乱码的!

于是,开始查找问题原因!

经过测试查找,发现数据库是可以保存中文的,不会发生乱码,不是问题所在;

同时,前端页面可以正常显示中文,问题同样不在这儿;

真正的问题在于:前端的中文数据通过Spring MVC提交到Controller后,数据变为了乱码!

那么,知道了问题所在,接下来就是解决问题了:↓ ↓ ↓ 

通过搜索查找,成功找到了解决乱码的办法:

首先,确保各个地方的编码格式是【UTF-8】格式,如:HTML页面、JSP页面等,还有如数据库的连接参数等地方(当然,这里我的数据库连接是没有问题的)

[注意:]
在设置数据库的连接参数时,如果是使用配置文件的方式,而配置文件又是XML文件的话,需要注意一个问题:
【 & 】字符需要进行转义!!!
详情,参考我的另一篇博客:https://blog.csdn.net/qq_37164975/article/details/82496826

然后,就是重点了,也是我解决项目中乱码的办法:↓ ↓ ↓ 

在 web.xml 文件中添加 Spring 编码过滤器配置[注意:form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果]

<!-- 编码过滤器配置 -->
<filter>
    <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

需要注意的是:匹配原则必须为【 /* 】,不能为【 / 】因为我们本来就是对【 .html 】或【 .jsp 】页面进行编码过滤!!!

在这里再提一句:【 /* 】和【 / 】 /的区别:

<url-pattern>/</url-pattern>

会匹配到如:【 /springmvc 】这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。

<url-pattern>/*</url-pattern>

会匹配到所有的url:不管是如【 /springmvc 】这样的路径型url,还是如【 .jsp 】、【 *.html 】这样的后缀型url

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十甫寸木南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值