http://....?search='aa like %你好%'通过javascript escape函数后变为:http://....?search=%28aa%20like%20%27%25%u4F60%u597D%25%27%29在resin中通过request.getParameter("search")可以正确读出search='aa like %你好%',但在jboss中始终为null。jboss中已经写了filter,public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain)throws IOException, ServletException {
           request.setCharacterEncoding("GBK");
           // 传递控制到下一个过滤器
           chain.doFilter(request, response);
    }

解决方案 »

  1.   

    你在filter中getParameter一下看有没有?
    ps:request.setCharacterEncoding("GBK");这句用来解码javascript.escape()应该是乱码才合理.escape编码出来的形式是unicode形式%uXXXX,而java URLEncoder编码出来的形式GBK应是%XX%XX,UTF8应是%XX%XX%XX.
      

  2.   

    filter中getParameter一下仍旧是null
      

  3.   

    那你看看当前filter之前还有其他filter?关注一下request这个对象的变化.request.toString();
      

  4.   

    没有其他filter了,哪位机子上有jboss(4.0.3),也可以试试看,会不会有同样的结果啊。分数不够俺再加。