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方法进行增强。

    输出结果没有乱码。

  • 相关阅读:
    python学习----8.28---单例模式,网络编程
    python学习-----8.27----异常处理,元类
    python学习--8.23
    python学习-----8.22--classmethod和staticmethod
    Python学习---8.21组合,多态,封装
    python学习----8.20面向对象---继承与派生
    Python学习----8.17--面向对象编程
    python成长之旅 一
    python java php语言之间的对比
    python成长之旅
  • 原文地址:https://www.cnblogs.com/tonbby/p/9096461.html
Copyright © 2011-2022 走看看