Filter

Filter (过滤器)

1.概念

​Filer称之为过滤器,在web开发时,可以通过filter实现对访问的拦截,然后对拦截后的请求或者响应做一些操作再放行,或者不放行。

​说明:

  • 过滤器可以拦截对资源的访问

  • 一个过滤器可以拦截多个资源,一个资源也可以被多个过滤器拦截

  • 可以根据访问的url地址判断是否拦截

  • 所谓的拦截就是阻截代表请求的 request 和代表响应的 response

  • 拦截后可以控制是否放行,也可以在放行之前做一些额外的操作

2.开发过滤器

开发步骤:

  1. 写一个类实现Filter接口
  2. 在web.xml中配置过滤器

Filter 接口

  • init方法:初始化方法,当Filter对象被创建时调用此方法

  • destroy方法:善后的方法,当Filter对象被销毁时调用

  • doFilter方法:是过滤器的核心方法,当过滤器拦截到对资源的访问时,服务器就会调用此方法,所有的过滤器的逻辑都在此方法中

web.xml 中的配置

<filter>

        <filter-name>myfilter01</filter-name>

        <filter-class>cn.tedu.filter.MyFilter01</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>myfilter01</filter-name>

        <url-pattern>/*</url-pattern> //拦截资源的路径,/*代表拦截所有资源

    </filter-mapping>


3.filter中的相关对象

  • FilterConfig:init方法的参数,可以用来获取ServletContext
  • FilterChain:代表过滤器链,提供了doFilter方法,用来放行当前过滤器

4.Filter生命周期

当web应用启动时,filter随之创建,创建时调用init方法进行初始化,一旦创建,则一直存活,直到web应用被销毁时,filter随之销毁,在销毁之前会调用destroy方法进行善后。

在存活期间,每当有资源被拦截时,就调用MyFilter01的doFilter方法处理业务逻辑

posted @ 2020-04-21 23:24  仰观云  阅读(171)  评论(0编辑  收藏  举报
Live2D