protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//POST提交解决乱码的方式 与GET方式不同的是请求new String(nameParam.getBytes("iso8859-1"), "UTF-8"); 响应是相同的
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8"); String nameParam = req.getParameter("name");//很奇怪 form表单获取的数据 乱码
//一般情况下,服务器默认的编码是“iso8859-1”,所以我们需要数据还原,然后再转换成UTF-8的形式
//不允许我去转呀 报错---解决:修改tomcat的server.xml文件 添加 URIEncoding="UTF-8" useBodyEncodingForURI="true" 哈哈 完美解决 好累
//nameParam = new String(nameParam.getBytes("iso8859-1"), "UTF-8"); System.out.println("找到了:"+ nameParam);//第一次进来null 输入店员姓名 点击查询 输出???é??

具体三种方式解决:------------第三种完美解决 也正是大家不太熟悉的方法   不知看到此文后你的问题有没有解决哪?

方法一: get方式提交的参数编码,只支持iso8859-1编码。因此,如果里面有中文。在后台就需要转换编码,如下
      String bname = request.getParameter("bname");
      bname = new String(bname .getBytes("iso8859-1"),"utf-8");
      前提是你页面编码就是utf-,如果是gbk,那上面那句代码后面就改成gbk。
      But修改后我的问题仍没解决,继续。。。 方法二:在客户端使用 URLEncoder.encode(“中文”,”UTF-”)对中文参数进行编码,在服务器端需要进行解码this.setName(java.net.URLDecoder.decode(name, “UTF-”));
比较麻烦! 方法三:修改tomcat的server.xml文件:       <Connector connectionTimeout="" port="" protocol="HTTP/1.1" redirectPort="" />     在其中添加URIEncoding="UTF-8" useBodyEncodingForURI="true"这一句。我使用的tomcat8,之前没有添加useBodyEncodingForURI="true",所以还是乱码,添加后问题解决!

当然 每次Servlet中总会有各种各样的中文请求,为了避免在每个Servlet种都添加request.setCharacterEncoding(“utf-8”)或者response.setCharacterEncoding(“utf-8”),为此可以考虑添加一个中文过滤器  具体代码如下:

1.web.xml

    <filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.pers.hoobey.filter.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<!-- 指定字符编码为UTF- -->
<param-value>UTF-</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<!-- 过滤所有的jsp页面的请求 -->
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

2.CharsetEncodingFilter

//采用filter统一处理字符集
public class CharsetEncodingFilter implements Filter {
private String encodeString; @Override
public void init(FilterConfig filterConfig) throws ServletException {
// 从init-param中获取param-name为encoding参数的值
encodeString = filterConfig.getInitParameter("encoding");
} @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("begin");
// 设置字符集
request.setCharacterEncoding(encodeString);
// 继续向下执行,如果还有其他filter继续调用其他filter,没有的话将消息发送给服务器或客户端
chain.doFilter(request, response);
System.out.println("end");
} @Override
public void destroy() {
}
}

servlet的xx方式传值中文乱码的更多相关文章

  1. 解决servlet中get方式中中文乱码问题(二):装饰者模式使用

    注意,这里是针对Tomcat容器中get方式提交的servlet中获得参数,参数中有中文的时候乱码的问题: 之前我已经讲过,Tomcat8.0及以上URIEncoding都是utf-8的默认编码,不会 ...

  2. get方式传值中文乱码

    问题描述: 本机可以,服务器乱码: 解决方案: 我采用了第三条,改server.xml配置 方法一: get方式提交的参数编码,只支持iso8859-1编码.因此,如果里面有中文.在后台就需要转换编码 ...

  3. 解决servlet中get方式中中文乱码问题前驱(一):装饰者模式再理解

    package day02; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; ...

  4. ajax()函数传值中文乱码解决方法介绍

    jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 复制代码 代码如下: $.ajax({ dataType : ‘json',type : ‘POST',url : ‘ht ...

  5. Servlet相关的几种中文乱码问题

    Servlet相关的几种中文乱码问题浏览器调用jsp,html等页面中文显示乱码使得文件本身以utf-8字符集编辑保存 让浏览器浏览器以utf-8字符集解析 在浏览器中右键选择编码格式为utf-8: ...

  6. 在Servlet中出现一个输出中文乱码的问题(已经解)。

    在Servlet中出现一个输出中文乱码的问题,已经解. @Override public void doPost(HttpServletRequest reqeust, HttpServletResp ...

  7. jquery的ajax()函数传值中文乱码解决方法介绍

    jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({ dataType : ‘json', type : ‘POST', url : ‘http: ...

  8. JS传值中文乱码解决方案

    JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static  String ...

  9. js url传值中文乱码完美解决(JAVA)

    js url传值中文乱码完美解决(JAVA) 首先在你的jsp页面这样更改: var url="你要传入的Action的位置&ipid="+ipid+"& ...

随机推荐

  1. 空间分析工具:GIS

    1.数据空间 数据空间是指用来表示空间实体的的位置.几何特征及其属性特征的数据. 位置:经纬度.地址.相对位置: 几何特征:点.线.面.形状: 属性特征:面积.周长.人口.经济等属性. POI数据.O ...

  2. 使用soupUI做接口测试

    第一步:点击“file”,选择测试项目采用的协议:(这里我们测试的是http协议的,所以选择第三项)   第二步:在弹窗中输入测试项目的接口URL,并点击“OK”: 第三步:设置和填写请求项的内容并点 ...

  3. 如何让你的数据有null

    2018-11-13   09:25:17 如何让你的数据有null 返回时null属性不显示: String str = JSONObject.toJSONString(obj); 返回为null属 ...

  4. 大数据及Hadoop的概述

    一.大数据存储和计算的各种框架即工具 1.存储:HDFS:分布式文件系统   Hbase:分布式数据库系统   Kafka:分布式消息缓存系统 2.计算:Mapreduce:离线计算框架   stor ...

  5. POJ 1328 安装雷达 (贪心)

    <题目链接> 题目大意: 以x轴为分界,y>0部分为海,y<0部分为陆地,给出一些岛屿坐标(在海中),再给出雷达可达到范围,雷达只可以安在陆地上,问最少多少雷达可以覆盖所以岛屿 ...

  6. [ 中危 ] dp意见反馈处存储型XSS

    XSS平台架设攻击代码,有很多,如我是在http://xss.fbisb.com上架设的. 在 xxx.dianping.com系统意见反馈处插入xss代码提交,而后等待后台管理员点击,可打到其COO ...

  7. Mac终端下的svn使用教程

    1.将文件checkout到本地目录 1 svn checkout path(path是服务器上的目录) 2 例如:svn checkout svn://192.168.1.1/svn 3 简写:sv ...

  8. python数据结构之quick_sort

    Quick sort , also known as partition-exchange sort, divides the data to be sorted into two separate ...

  9. ELK日志分析方案

    针对公司项目微服务化,随着项目及服务器的不断增多,决定采用ELK(Elasticsearch+Logstash+Kibana)日志分析平台进行微服务日志分析. 1.ELK整体方案 1.1 ELK架构图 ...

  10. 在用UEditor往后台传数据写入数据库时,出现错误:从客户端(NewsContent="<p><img src="http://...")中检测到有潜在危险的 Request.。。。

    解决办法: 把传数据的方式换了一下,加上 [ValidateInput(false)]就不报错了. 建议看看这个:http://www.360doc.com/content/10/0521/15/46 ...