servlet输出中文(输出到页面的中文乱码)
(1)乱码产生的原因
out.println方法默认情况下会使用“iso-8859-1”
response.setContentType("text/html;charset=utf-8");
注:
作用1:out.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")来解码
servlet乱码及接收表单提交参数
最新推荐文章于 2022-02-03 23:05:06 发布