02 过滤器详解

FilterConfig对象

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

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

<!-- 过滤器配置 -->
    <filter>
        <!-- 内部名称 -->
        <filter-name>HelloFilter</filter-name>
        <!-- 类全名:包+简单类名 -->
        <filter-class>com.xxjqr.servlet_study.filter.FirstFilter</filter-class>
        <init-param>
            <param-name>AAA</param-name>
            <param-value>AAA'value</param-value>
        </init-param>
        <init-param>
            <param-name>BBB</param-name>
            <param-value>BBB'value</param-value>
        </init-param>
    </filter>

2. 在filter中使用

    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("2. Filter生命周期-init方法");
        
        /**
         * 通过FilterConfig对象得到参数配置信息
         */
        //得到一个参数
        System.out.println(filterConfig.getInitParameter("AAA"));
        
        Enumeration<String> 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的配置决定顺序。先配置的优先被执行(前面的先执行)

Paste_Image.png
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,947评论 19 139
  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 12,090评论 3 56
  • Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤、判断用户的登...
    重山杨阅读 5,045评论 0 12
  • 仅作为自己学习记录使用,文章来自: 1、http://blog.csdn.net/csh624366188/art...
    BakerZhang阅读 4,685评论 1 5
  • 1、break语句 用在switch语句中,用于终止case语句,跳出switch分支结构; 运行结果如下所示: ...
    Liam大大阅读 3,362评论 0 0

友情链接更多精彩内容