技术开发 频道

JSP&Servlet处理参数中的中文乱码总结

【IT168技术文档】

从form表单提交信息到一个JSP页面或者一个Servlet进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???。现在通过一个例子来进行总结如下:
写一个用户信息提交页面,通过这个页面向一个JSP页面或者一个servlet提交用户信息,代码如下:

1<%@ page language="java" contentType="text/html; charset=gbk"%> 2<html> 3 <head> 4 <title>表单提交</title> 5 </head> 6 <body> 7 <form action="deal.jsp" method="post"> 8 用户名:<input type="text" name="username"><br> 9&nbsp;&nbsp;码:<input type="password" name="password"><br> 10&nbsp;&nbsp;好:<input type="radio" name="love" value="运动">运动&nbsp; 11 <input type="radio" name="love" value="音乐">音乐<br> 12 &nbsp;&nbsp;<input type="submit" value="提交"> 13 </form> 14 </body> 15</html>

现在写deal处理页面,代码如下:

1<%@ page language="java" contentType="text/html; charset=gbk"%> 2<html> 3 <head> 4 <title>显示用户信息</title> 5 </head> 6 <body> 7 <% 8 //request.setCharacterEncoding("gb2312"); 9 String username = request.getParameter("username"); 10 //String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"gbk"); 11 String password = request.getParameter("password"); 12 //String love = new String(request.getParameter("love").getBytes("iso-8859-1"),"gbk"); 13 String love = request.getParameter("love"); 14 %> 15 <%= username %>您好,你的密码是:<%= password %>,您的爱好是:<%= love %>! 16 </body> 17</html>


从前面的信息提交页面提交来的信息包含中文,这时就会出现乱码。如:

??????您好,你的密码是:1234569,您的爱好是:????!
现在,把第8行的注释符号去掉,重新执行页面(请确保web服务器会自动加载更改后的页面,否则请重新启动web服务器),这时可以看到正确的中文信息了,如:

王中玉您好,你的密码是:9856322,您的爱好是:音乐!
也可以使用另外一种方法进行处理,把deal.jsp的第8行注释掉,然后把第9行、第13行也注释掉,去掉第10行和第12行的注释符号,保存好重新执行页面(方法同上),同样会显示正常的信息。

0
相关文章