前端传输中文到后台乱码问题--web.xml的加载顺序问题

前端提交数据,我想大家都会想到get和post方式,怎么解决已经有很多的帖子可以参考,比如如下地址http://www.cnblogs.com/super-z/p/6230119.html,但是对于某些情况来说,你会发现问什么这些动作都做了但还是存在乱码的情况,曾经就遇到过这个问题,找了很多的方法都不行,乱码一直存在,后来原因发现了,竟然是项目内做多了一个处理编码的拦截器,配置在web.xml内,加载顺序还比struts的靠前,解决办法如下:

1.发现问题,先使用ctrl+h(小烧用的是eclipse)全项目搜索filter关键字(有遵循命名规则的话。。。。)的过滤器,对过滤器进行查看,要是对传输过程有编码控制,则进入第二步;

2.在web.xml中查看是否有使用该过滤器,要是没有配置,那就不是本文所形容的情况了,建议另找文章,这些有很多;若是有配置该filter,那么他的顺序应该是在struts之上,如下(其中AntiSqlInjectionFilter为做了编码控制的过滤器)

<filter>
        <filter-name>AntiSqlInjectionfilter</filter-name>
        <filter-class>
            com.AntiSqlInjectionfilter
        </filter-class>
</filter>
    <filter-mapping>
        <filter-name>AntiSqlInjectionfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3.将过滤器的<filter-mapping>...</filter-mapping>段放置到struts2的<filter-mapping>...</filter-mapping>后,如

<filter>
        <filter-name>AntiSqlInjectionfilter</filter-name>
        <filter-class>
            com.AntiSqlInjectionfilter
        </filter-class>
</filter>
<filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>AntiSqlInjectionfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4.好了,现在可以重新测试一下有没有再次出现乱码问题了,愿君成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值