servlet3.0 中@WebFilter 比较纠结的问题。

//常规使用方法,使用注解方式,只需要这两个配置即可,其他跟以前一样
//其他参数可以参考 http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/
//比较坑爹就是如果是使用注解表示两个Filter,执行的先后顺序是根据class的名字来的定义
//假如有两个 AppFilter1 和 AppFilter0 那么使用注解方式,AppFilter0过滤一定是在前面的。

/**
 * 这是一个字符过滤器
 *
*/
@WebFilter(filterName = "encodingFilter", urlPatterns = "/*")
public class AppEncodingFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("encodingFilter init");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding(XConst.CODE_UTF_8);
        response.setCharacterEncoding(XConst.CODE_UTF_8);
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        System.out.println("encodingFilter destroy");
    }

}



你可能感兴趣的:(servlet3.0)