Filter过滤器学习

Filter过滤器学习:

 首先我们需知道什么是过滤器:

    Java servlet API中提供了一个Filter接口,实现了这个接口的类会被称之为Filter。Filter能够在用户访问某个资源之前拦截请求,从而对请求进行检查,实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

如何实现的:

 Filter接口中有一个doFilter方法,当我们编写好Filter,并配置对哪个web资源进行拦截后,WEB服务器每次在调用web资源的service方法之前,都会先调用一下filterdoFilter方法,因此,在该方法内编写代码可达到如下目的:

  1. 调用目标资源之前,让一段代码执行。
  2. 是否调用目标资源(即是否让用户访问web资源)。
  3. 调用目标资源之后,让一段代码执行。

web服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是filter接口中最重要的一个对 象,它也提供了一个doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service 法,即web资源就会被访问,否则web资源不会被访问。

参考博客:https://www.cnblogs.com/xdp-gacl/p/3948353.html

理解:实现Filter接口,实现dofilter方法,在doFilter方法中加入业务逻辑,在web.xml中用<filter></filter>标签注入Filter,在<filter-mapping>标签中注入拦截请求。其中,关于filter链的部分:filterchain会记录服务器中拦截器的注册顺序和数量,在调用dofilter的时候会检查chain中是否还有过滤器,有就按顺序调用,没有就访问资源。在映射过滤器时,可以拦截的有

<url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)
  <servlet-name>指定过滤器所拦截的Servlet名称。
  <dispatcher>指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARDERROR之一,默认REQUEST

 下面是关于拦截器、过滤器的层次:将在下一篇中学习:拦截器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章