02 过滤器详解

FilterConfig对象

FilterConfig对象,过滤器配置对象,用于加载过滤器的参数配置

过滤器参数使用:
1. 在web.xml文件中配置


    
        
        HelloFilter
        
        com.xxjqr.servlet_study.filter.FirstFilter
        
            AAA
            AAA'value
        
        
            BBB
            BBB'value
        
    

2. 在filter中使用

    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("2. Filter生命周期-init方法");
        
        /**
         * 通过FilterConfig对象得到参数配置信息
         */
        //得到一个参数
        System.out.println(filterConfig.getInitParameter("AAA"));
        
        Enumeration enums = filterConfig.getInitParameterNames();
        //遍历所有参数
        while(enums.hasMoreElements()){
            String paramName = enums.nextElement();
            String paramValue = filterConfig.getInitParameter(paramName);
            System.out.println(paramName+"="+paramValue);
        }
        
    }

过滤器链

过滤器链
doFilter(ServletRequest request, ServletResponse response, FilterChain chain): 执行过滤任务

参数一: ServletRequest是HttpServletRequest的父接口。实际上传入的是HttpServletRequest接口的实现类。
参数二: ServletResponse是HttpServletResponse的父接口。实际上传入HttpServletResponse接口的实现类。
参数三: FilterChain 过滤器链接口
               
doFilter(ServletRequest request, ServletResponse response):
执行过滤器链中的下一个过滤器,如果没有下一个过滤器则执行目标资源。

注意:过滤器链中的过滤器执行顺序问题:由web.xml中filter-mapping的配置决定顺序。先配置的优先被执行(前面的先执行)

02 过滤器详解_第1张图片
Paste_Image.png
02 过滤器详解_第2张图片
Paste_Image.png

你可能感兴趣的:(02 过滤器详解)