页面值传入后台出现中文乱码

1、form表单提交到后台

检查页面form的提交方式

通过form传入后台,提交方式分为post和get两种。两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:

   1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址会出现传入到后台的参数;而Post提交后地址栏中的地址不会出现参数。

   2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。

    一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。

    Get把参数添加到action属性指定的地址中,并以锚方式打开。
    Post通过HTTP post处理发送数据。

    如果将form中的参数含有汉字,提交到后台有可能也会出现乱码,一般如果method设置为“post”,将不会出现乱码,如果将method设置为“get”,可能在汉字传入到后台后会出现乱码问题。

2、后台转码处理

String userName=request.getParameter("userName");

try {
userName
=java.net.URLDecoder.decode(userName,"UTF-8");
}
catch (UnsupportedEncodingException e) {
log4j.error(e.getMessage());
e.printStackTrace();
}

原文地址:https://www.cnblogs.com/archie2010/p/1941483.html