Js提交代代码:
Var username= "中国";
URL = $.pathname()+ '/page/business/sup/facility/specificCollect/bridge.jsp?username=' + username;
1、使用post方式传递的数据
在控制台中打印获取到的username的值,显示的是乱码,这个是因为Request域中的采用的是ISO8859-1码表的,而我们的jsp使用的是utf-8编码的,所以当我们点击提交的时候,浏览器会将"中国"使用utf-8码表编码,然后web容器创建一对request/response容器对象,数据传入到request容器中,因为request容器使用的是iso8859-1编码的,所以当我们在Servlet中从request容器中读取数据,使用的是iso8859-1进行解码的,所以会出现乱码了,所以我们只需要将request的容器码表设置成和我们页面显示的码表一样就可以了。这样我们在getParameter的时候得到正确的解码(utf-8)数据
- request.setCharacterEncoding("utf-8");
- String name = request.getParameter("username");
- System.out.println("username:"+name);
2.使用get方式传递数据的乱码问题
发现request.setCharacterEncoding("UTF-8")这句代码失效,前后台编码统一都是UTF-8,但通过request.getParameter("username")接收到的表单数据依然乱码,后来发现原因是表单的提交方式没有设置,也就是采用了默认的GET方式提交。
那为什么GET方式会出现问题?难道request.setCharacterEncoding("UTF-8")这句代码只对POST方式提交数据才有效?
做了一些测试之后总结出了一点规律:
1、web浏览器对页面上通过