servlet乱码及接收表单提交参数

servlet输出中文(输出到页面的中文乱码)
1)乱码产生的原因
out.println
方法默认情况下会使用“iso-8859-1”
response.setContentType("text/html;charset=utf-8");
注:
作用1out.println方法会使用指定的字符集来编码
作用2:设置content-type消息头的值
3.
如何读取请求参数值?
1
 request.getParameter(paramNane);//paramNane一定要与表单中标签的name属性值一致
注意有可能获得空值,也有可能获得空字符串,所以,在服务器端,一定要对请求参数值做相应的检查。
2
String[] request.getParameterValues(String paramName)//接收多个值如复选框
注意:
多选框每有选择任何选项会获得NULL
4.
表单半含有中文参数值,如何处理?(表单提交过来的中文乱码)
1)乱码产生的原因
表单提交是,浏览器会对表单中的参数值进行编码(打开表单所在的页面时使用的字符集来编码)服务器默认情况下,会使用“ios8859-1”来解码。
2)解决方式
1
step,保证表单提交时,使用指定的字符集来编码。
<meta http-equive="content-type"content="text/html;charset=utf-8"/>
2
step2,使用对应的字符集来解码
方式一
request.setCharacterEncoding("utf-8")
注意:
a.
该该方法要添加到所有的getParameter方法的前面。
b.
只针对post请求有效
方式二
new String(name.getBytes("iso-8859-1"),"utf-8");
即先还原(获得浏览器发送过来的字节数组),然后使用正确的字符集("utf-8")来解码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值