zoukankan      html  css  js  c++  java
  • 通过重写request.getParameter方法来解决中文乱码问题。

    在原生servlet的商城项目中,BeanUtils.populate方法封装不上注册的参数。

    已知BeanUtils.populate方法是封装不上date对象的,于是自定义了一个转换器用来封装Data对象。

    封装成功后发现出现中文乱码问题。

    本来以为是数据库的问题。把数据库的表结构看了一下,发现就是utf-8;

    然后在将数据存入数据库之前,将数据进行输出,发现确实在之前就乱码了。

    试试比较常见的两个方法。

    以上设置没有什么卵用 = =,网上说上面两个方法只对post请求生效。然而我的就是post请求。可是没有效果。

    输出的结果仍旧乱码。

    在网上查找说,由于tomcat默认编码是iso-8859-1,设置tomcat配置文件中的server.xml,给配置文件中添加一个编码,为utf-8。

    由于我用的是myEcplise,虽然也不影响。于是兴冲冲的跑去看了看配置文件。

    emmm第一行就让我愣住了。本来就是utf-8啊= =,为什么还是会乱码。

    由于一直不清楚乱码的原因。

    于是采取了最破罐子破摔的办法 = = ,手动编码。

    然后它正常了。

    可是这样一个一个手动转换还是比较麻烦的。

    如果有一个转换器就好多了。

    有一个办法就是,重写request..getParameter方法。

    由于request的实现类是它的实现类的HttpServletRequestWrapper,所以我们的转换器需要继承这个类。

    测试代码如下:

    在这里重写的这个方法相当于一个包装类,将request包装起来,并对它的getParameter方法进行增强。

    输出结果没有乱码。

  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/tonbby/p/9096461.html
Copyright © 2011-2022 走看看