<filter-mapping></filter-mapping>咋没看到

解决方案 »

  1.   

    像你这样的情况我也遇到过,后来我换了一个版本的MyEclipse就好了,有可能是坏境的问题!希望lz能早日找出来!
      

  2.   

    第三方通过我提供的一个url返回参数给我 但是返回参数中含有中文 解析出来
    问题在这..
    URL不能传中文,要转换urlencode
      

  3.   


           param      method   encoderFilter   isFiltered               url                 pageEncoder      result         
       1:   汤勇        post        gbk            y               encoderServlet               gbk  汤勇
       2:   汤勇     get         gbk            y               encoderServlet               gbk  ????
       3:   汤勇        post        gbk            y               encoderStreamServlet         gbk  %CC%C0%D3%C2
       4:   汤勇        post        gbk            y               decoderJsp                   gbk  %CC%C0%D3%C2
       5:   汤勇        post        gbk            y               encoderAjaxServlet           gbk  姹ゅ媷   6:   汤勇     post        gbk            n               encoderServlet              gbk  ????
       7:   汤勇     get         gbk            n               encoderServlet              gbk  ????
       8:   汤勇     post        gbk            n               encoerStreamServlet         gbk  %CC%C0%D3%C2
       9:   汤勇        post        gbk            n               decoderJsp                  gbk  %CC%C0%D3%C2
      10:   汤勇        post        gbk            n               encoderAjaxServlet          gbk  ?±¤???   11:  汤勇       post         utf-8          y                encoderServlet             utf-8   汤勇
       12:  汤勇     get         utf-8          y                encoderServlet             utf-8  汤勇
       13:  汤勇       post         utf-8          y                encoderStreamServlet       utf-8         %E6%B1%A4%E5%8B%87
       14:  汤勇       post         utf-8          y                decoderJsp                 utf-8         %E6%B1%A4%E5%8B%87
       15:  汤勇       post         utf-8          y                encoderAjaxServlet         utf-8  汤勇
       16:  汤勇       post         utf-8          y                encoderServlet             gbk         ????
       17:  汤勇     get         utf-8          y                encoderServlet              gbk        ????
       18:  汤勇       post         utf-8          y                encoderStreamServlet       gbk         %CC%C0%D3%C2
       19:  汤勇       post         utf-8          y                decoderJsp                 gbk         %CC%C0%D3%C2
       20:  汤勇       post         utf-8          y                encoderAjaxServlet         gbk        汤勇   16:  汤勇       post         utf-8          n                encoderServlet             gbk         ????
       17:  汤勇     get         utf-8          n                encoderServlet              gbk        ????
       18:  汤勇       post         utf-8          n                encoderStreamServlet       gbk         %CC%C0%D3%C2
       19:  汤勇       post         utf-8          n                decoderJsp                 gbk         %CC%C0%D3%C2
       20:  汤勇       post         utf-8          n                encoderAjaxServlet         gbk        ?±¤???   21:  汤勇       post         utf-8          n                encoderServlet             utf-8        ?±¤???
       22:  汤勇      get        utf-8          n                encoderServlet             utf-8        汤勇
       23:  汤勇       post         utf-8          n                encoderStreamServlet       utf-8        %E6%B1%A4%E5%8B%87
       24:  汤勇       post         utf-8          n                decoderJsp                 utf-8        %E6%B1%A4%E5%8B%87
       25:  汤勇       post         utf-8          n                encoderAjaxServlet         utf-8        ?±¤???
    结论: 
     以上测试均在tomcate server.xml里面设制了    urlEncoding = "utf-8"
                                    是否用了过滤器      过滤器编码      页面编码      
            第一组测试-条件:            用了               gbk            gbk 第二组测试-条件             没有                              gbk        第三组测试-条件             用了               utf-8          utf-8        第四组测试-条件             用了               utf-8          gbk        第五组测试-条件             没用                              utf-8                              
     第二轮测试    测试均在tomcate server.xml 默认设制下进行的   param      method   encoderFilter   isFiltered               url                 pageEncoder      result         
                1:   汤勇        post        gbk            y               encoderServlet               gbk 汤勇    
       2:   汤勇     get         gbk            y               encoderServlet               gbk 汤勇
       3:   汤勇        post        gbk            y               encoderStreamServlet         gbk %CC%C0%D3%C2
       4:   汤勇        post        gbk            y               decoderJsp                   gbk %CC%C0%D3%C2
       5:   汤勇        post        gbk            y               encoderAjaxServlet           gbk 姹ゅ媷   6:   汤勇     post        gbk            n               encoderServlet              gbk  ????
       7:   汤勇     get         gbk            n               encoderServlet              gbk  ????
       8:   汤勇     post        gbk            n               encoerStreamServlet         gbk  %CC%C0%D3%C2
       9:   汤勇        post        gbk            n               decoderJsp                  gbk  %CC%C0%D3%C2
      10:   汤勇        post        gbk            n               encoderAjaxServlet          gbk  ?±¤???   11:  汤勇       post         utf-8          y                encoderServlet             utf-8   汤勇
       12:  汤勇     get         utf-8          y                encoderServlet             utf-8  ?±¤???
       13:  汤勇       post         utf-8          y                encoderStreamServlet       utf-8         %E6%B1%A4%E5%8B%87
       14:  汤勇       post         utf-8          y                decoderJsp                 utf-8         %E6%B1%A4%E5%8B%87
       15:  汤勇       post         utf-8          y                encoderAjaxServlet         utf-8  汤勇   16:  汤勇       post         utf-8          n                encoderServlet             utf-8   ?±¤???
       17:  汤勇     get         utf-8          n                encoderServlet             utf-8  ?±¤???
       18:  汤勇       post         utf-8          n                encoderStreamServlet       utf-8         %E6%B1%A4%E5%8B%87
       19:  汤勇       post         utf-8          n                decoderJsp                 utf-8         %E6%B1%A4%E5%8B%87
       20:  汤勇       post         utf-8          n                encoderAjaxServlet         utf-8  ?±¤???
    param                encoderMethod                     decoderMethod                       result 汤勇                    gbk                              iso8859-1                         ????  汤勇 gbk                              utf-8                             ????      汤勇 utf-8  iso8859-1    ?±¤???汤勇 utf-8  gbk    姹ゅ媷结论
           step_1 : 
                    pageEncoder :  
           step_2 : 
                    serverEncoder:       stop_3 : filterEncoder:
          
           step_4:  application:
     第二轮测试    测试均在tomcate server.xml GBK设制下进行的   param      method   encoderFilter   isFiltered               url                 pageEncoder      result         
                1:   汤勇        post        gbk            y               encoderServlet               gbk 汤勇    
       2:   汤勇     get         gbk            y               encoderServlet               gbk 汤勇
       3:   汤勇        post        gbk            y               encoderStreamServlet         gbk %CC%C0%D3%C2
       4:   汤勇        post        gbk            y               decoderJsp                   gbk %CC%C0%D3%C2
       5:   汤勇        post        gbk            y               encoderAjaxServlet           gbk 姹ゅ媷   6:   汤勇     post        gbk            n               encoderServlet              gbk  ????
       7:   汤勇     get         gbk            n               encoderServlet              gbk  ????
       8:   汤勇     post        gbk            n               encoerStreamServlet         gbk  %CC%C0%D3%C2
       9:   汤勇        post        gbk            n               decoderJsp                  gbk  %CC%C0%D3%C2
      10:   汤勇        post        gbk            n               encoderAjaxServlet          gbk  ????   11:  汤勇       post         utf-8          y                encoderServlet             utf-8   ????
       12:  汤勇     get         utf-8          y                encoderServlet             utf-8  ????
       13:  汤勇       post         utf-8          y                encoderStreamServlet       utf-8         %E6%B1%A4%E5%8B%87
       14:  汤勇       post         utf-8          y                decoderJsp                 utf-8         %E6%B1%A4%E5%8B%87
       15:  汤勇       post         utf-8          y                encoderAjaxServlet         utf-8  ????   16:  汤勇       post         utf-8          n                encoderServlet             utf-8   ?±¤???
       17:  汤勇     get         utf-8          n                encoderServlet             utf-8  ?±¤???
       18:  汤勇       post         utf-8          n                encoderStreamServlet       utf-8         %E6%B1%A4%E5%8B%87
       19:  汤勇       post         utf-8          n                decoderJsp                 utf-8         %E6%B1%A4%E5%8B%87
       20:  汤勇       post         utf-8          n                encoderAjaxServlet         utf-8  ????
      

  4.   

    出现乱码毫无疑问是编码和解码的方式不一样导致的!
    编码的顺序是这样的!1: 页面编码 也就是你的
    2: 服务器编码如果你 tomcate 设置的 urlEncoding  = ""  [这种情况只 对 get 提交有用]
    3: 过滤器编码 
    4: 到你的后台程序里面!不过奇怪的是 如果我把这段代码直接写在jsp页面中可以正常显示
    jsp页面的编码为gb2312 request.setCharacterEncoding("gbk"); 后可以正常获取参数
    很简单  jsp 执行顺序是先 转译 --》 再编译! 所以很好解释!要解决你的问题! 首先要知道发过来的url[也就是说第三方提供给你的url编码方式]如果你用的 ssh 那么  在struts.xml文件里面应该有设计编码方式![他比你加载过滤器先执行而且在action里面得到参数时真是用这种解码方式得到的所以你加过滤器也没用]
    反正记住一点!编码过程就这么几个地方
    1:jsp页面
    2:tomcate 如果你设置了
    3: 过滤器
    4: 到了后台了! 编码,解码一样就不会出现乱码!
      

  5.   

    问题有了一定的突破  已经确认传过来参数是gbk编码的过滤器编码utf-8    tomcat没设置  程序代码utf-8
    我重写了过滤器的方法  在过滤器中取一次我要的参数   不需要任何转码 只要
    request.getParameter("参数名");  执行这句话然后在程序中调用
    new String(request.getParameter("参数名").getBytes("iso-8859-1"), "GBK");
    中文正常
    但是如果不取一下值就算我在过滤器中设置request.setCharacterEncoding("GBK"); 或者request.setCharacterEncoding("ISO-8859-1");都没法正确解码这时我打印出request的编码显示utf-8不知道怎么转的
    我的项目是用springside3搭建的   struts2.1.8+spring2.5.6+hibernate3
    我去掉了struts2中的编码配置   开始怀疑过编码问题  去掉了试也还是不可以实在不知道怎么办  虽然可以通过上面很无奈的方法暂时解决这个问题
    但这不是最优的解决方案   所以想寻找正解