tomcat之post和get编码问题

  1. 一个表单发送的请求,是一个http报文,一个http报文最重要的部分有两个,1.请求行和2.请求头,请求行包括url,请求头包括很多键值对,get请求会把表单内的内容添加到请求行的url中作为参数,post则直接把表单内的键值对添加到请求头内。请求行和请求头的内容的编码格式都取决于这个html或者jsp文件本身的编码,当然form表单可以设置accept-character属性改变编码。
  2. Tomcat这个容器,会把这个http报文加载到request对象内,它只对请求头内的报文数据进行提取,不对请求行(包括了url)进行重排,但是tomcat本身默认的编码是iso-8859-1所以,只要是对请求头内的数据进行提取,他就得经过tomcat的编码重置,就会乱码,因为http请求头编码本身和tomcat的编码并不同,不过tomcat提供了对request编码进行设置的办法,request.setCharacterEncoding(“…”);仅作为第一个该对象函数调用使用有效。请求行,tomcat并不对他进行对象封装,所以编码格式并不会被打乱,本来是什么编码格式,提取出来后,就是什么编码格式,所以设置get方法请求不会乱码,而设置post请求会乱码。但是值得注意的是,tomcat不对请求行做对象封装,也就无法通过request内的编码设置函数来改变请求行(包括url和其参数)数据的编码,如果提交的编码格式有误,只能通过Java语言本身字符串String(字符串,编码)_函数来改变特定字符串参数的编码格式,实际应用的话就要写为String u =new String(request.getparameter(参数).getbytes(”iso-8859-1”),“tuf-8),这样就可以改变某个特定url参数的编码格式了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值