Filter概述

1、什么是FilterChain

    FilterChain过滤器链:在一个Web应用中,可以开发编写多个Filter,这些Filter组合起来称为是一个过滤器链

    Web服务器根据Filter在web.xml文件中的注册顺序(mapping的配置顺序)决定先调用哪个Filter,依次调用后面的过滤器,如果没有下一个过滤器,则调用目标资源

2、FilterConfig对象的概述

(1)FilterConfig对象的作用:

用来获得Filter的相关的配置的对象

(2)FilterConfig对象的API

    getFilterName()

    getInitParameter(String name)

    getInitParameterNames()

    getServletContext()

3、的配置

    默认的情况下,过滤器会拦截请求,如果进行转发(需要拦截这次转发)

    dispatcher的取值有四个:

        REQUEST:默认值。默认过滤器拦截的就是请求

        FORWARD:转发

        INCLUDE:页面包含的时候进行拦截

        ERROR:页面出现全局错误页面跳转的时候进行拦截

4.Filter的生命周期描述

    Filter的创建和销毁是由web服务器负责。Web应用程序启动的时候,Web服务器创建Filter的实例对象,并调用其init方法进行初始化的操作(Filter对象只会创建一次,init方法也只会执行一次)

    每次Filter进行拦截的时候,都会执行doFilter的方法

    当服务器关闭的时候,或者应用从服务器中移除的时候,服务器会销毁Filter对象

5.的配置

    完全路径匹配:以/开始,例如/aaa  /aaa/bbb

    目录匹配:以/开始,例如/*  /aaa/*  /aaa/bbb/*

    扩展名匹配:不能以/开始,以*开始,例如*.jsp *.do *.action

6.的配置

    专门以Servlet的配置的名称拦截Servlet

7.通过上面的分析,现在要增强request的getParameter方法,增强的过程要写在过滤器当中

如何增强一个类中的方法?

继承

必须要能够控制这个类的构造

装饰者

被增强的类和增强的类需要实现相同的接口

在增强的类中获得被增强的类的引用

缺点:接口中的方法过多,会导致要重写很多其他的方法

动态代理

类需要实现接口

你可能感兴趣的:(Filter概述)