报错解决:form表单提交存入数据库出现中文乱码

遇到问题:在JavaWeb学习阶段,通过表单提交对数据库数据进行修改,发现原本为中文字段的数据,表单提交之后都变成了乱码。

解决措施:针对form表单的请求方式修改编码格式

get和post请求的区别

  1. get请求的请求参数会附在URL之后(将数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连。而post请求是将表单的内容放在Html header里面发送到所请求的action中,通过request body传递参数;
  2. get请求提交的URL数据有限制(浏览器或者服务器的限制,HTTP协议对URL长度并无限制),但是post请求无限制;
  3. post请求相对于get请求更为安全。get请求传递的参数会显示在URL中,容易被人通过地址获取私人信息,但是post请求的数据不会被用户看到,安全性更高。

更多细节参考:史上最容易理解————GET和POST两种基本请求方法的区别

乱码问题解决

参考:jsp如何解决Form表单乱码问题; form表单提交中文乱码的详细解析

get请求

服务器是由Tomcat默认的编码格式,或者自定义的编码格式进行编码,这个编码过程是通过Tomcat服务器完成的。因此,如果是对于form表单的get请求,存入数据库出现中文乱码,基本就是Tomcat服务器本身的编码配置问题:

  1. 对于Tomcat 7及以前的版本,默认编码格式为:ISO- 8859-1。在配置文件./conf/server.xml修改以下代码行,添加URIEncoding="UTF-8"即可。

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
    
  2. 对于Tomcat 8版本及之后的版本,默认编码格式为UTF-8

post请求

由于请求的数据是作为请求体的一部分传递给服务器的,所以只要修改请求体内的编码即可。只要在服务器端的最开始处将请求的数据编码格式修改为UTF-8即可,插入以下语句。

request. setCharacterEncoding(“UTF-8);
  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YuanbaoQiang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值