老师说我们在每个页面开始都要设置一下字符编码格式。
request.setChar*****("gb2312"); 这样的代码。
可以用过滤器 就不再这样重复着写着这样的冗余代码了。请前辈们指点一下啊。 希望能有个源码示例。 谢谢了。

解决方案 »

  1.   

    你要先实现一个Filter如:我这里是继承了FilterBase(它实现了Filter接口的)
    public class CharacterFilter extends FilterBase {
    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) arg0;
    if ("post".equalsIgnoreCase(request.getMethod())) {
    request.setCharacterEncoding("gbk");
    arg2.doFilter(request, arg1);
    } else {
    System.out.println("doget....");
    MyHttpServletRequestWrapper mhsrw = new MyHttpServletRequestWrapper(
    request);
    arg2.doFilter(mhsrw, arg1);
    }
    }
    }
    然后在web.xml进行配置:
    <filter>
    <filter-name>characterFilter</filter-name>
    <filter-class>com.sxt.filter.CharacterFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>characterFilter</filter-name>
    <url-pattern>/*</url-pattern>//这里是指定要过滤的路径
    </filter-mapping>
    希望对你有帮助
      

  2.   

    上面的代码不全,在doFilter方法里面就写你要过滤的操作