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

来源:互联网 发布:linux 打开url命令 编辑:程序博客网 时间:2024/04/29 18:30

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")来解码

0 0
原创粉丝点击