filter代码:public class EncodingFilter implements Filter {

protected String encoding = null; //编码方式
protected FilterConfig config; 

/*
 * 初始化编码方式 
 */
public void init(FilterConfig filterConfig) throws ServletException{
this.config = filterConfig;
//从web.xml中获取编码方式的配置
this.encoding = filterConfig.getInitParameter("Encoding");
} /*
 * 统一编码方式 
 */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
if(request.getCharacterEncoding() == null){
String encode = getEncoding();
if(encode != null){
//设置request的编码方式
request.setCharacterEncoding(encode);
}
}
System.out.println("encoding:"+request.getCharacterEncoding()+"*");
chain.doFilter(request, response);
}

public String getEncoding(){
return encoding;
}

public void destroy(){

}
}filter配置: 
<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>com.kaituo.filter.EncodingFilter</filter-class>
   <init-param>
   <param-name>Encoding</param-name>
   <param-value>GB2312</param-value>
   </init-param>
  </filter>
  <filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
我想过滤全部文件(根目录下问价及其子文件夹下的所有文件,但是<url-pattern>/*</url-pattern>
这样设置在查看员工列表时控制台没有打印出编码方式,也就是filter没有过滤这个请求,同时分页查询时还是有乱码,大侠说下,为什么啊?

解决方案 »

  1.   

    http://space.itpub.net/12250504/viewspace-566835filter的详细配置在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。
    到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
    <filter>
        <filter-name>TestFilter</filtername>
        <filter-class>anni.TestFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>TestFilter</filtername>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>EXCEPTION</dispatcher>
    </filter-mapping>
      

  2.   

    目前除了strut2的本身拦截器之外没有了,就只有这个了
      

  3.   

    我现在要过滤的文件都是外部提交的请求,就是执行该请求时filter不起作用,不知道哪里配置不好?
      

  4.   

    doFilter方法中的打印语句放最上面。
    整个方法中的语句都try  catch.看有没有异常。
      

  5.   

    只要是请求,都可以过滤的,不管是get还是post!你这个删掉,再重新写一个试试
      

  6.   

    楼主。你用config.getInitParmater()得到requestEncoding 
    你的那个方法我不会你试试servlet的这个方法可以的。