Filter学习笔记!

当我们访问一个资源的时候,这个资源可以是html页面,jsp页面,图片,mp4等资源,如果我们访问html之类时候,我们可以在html中写上过滤的代码,但是图片写不了代码,这就需要我们来实现Filter接口对访问路径进行过滤。

Filter是什么?

1.Filter过滤器是JavaWeb的三大组件之一(Servlet程序,Filter过滤器,Listener监听器)
2.Filter过滤器是JavaEE的规范,也就是接口。
3.Filter过滤器它的作用是拦截请求,过滤响应
注:Filter过滤器在浏览器访问目标资源前进行执行

Filter过滤器的使用步骤:

1.定义一个类实现Filter接口
2.重写doFilter()方法
3.到web.xml文件下配置Filter的拦截资源

创建类来实现Filter接口,重写Filter中的方法
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一个简单的实现doFilter方法,httpServletRequest.getRequestDispatcher().forward()表示请求转发
在这里插入图片描述

FilterConfig

FilterConfig是Filter的配置文件类,包含了Filter的配置文件的信息。
作用:
1.获取filter-name ---------> filterConfig.getFilterName();
2.获取Filter中配置的init-param初始化参数 --------> filterConfig.getInitParameter(“key”);返回一个value值
3.获取ServletContext对象 -------> filterConfig.getServletContext();

FilterChain:过滤器链

过滤中的所有代码,在过滤特定请求的时候都会执行。
filterChain.doFilter()的作用
1.执行下一个Filter过滤器(如果有Filter)
2.执行目标资源(没有Filter)
多个Filter的执行顺序与它们在web.xml配置文件中的先后顺序有关。
多个Filter的特点:
1.都在同一个线程中执行(默认情况下)
2.多个Filter共同执行时,它们公用一个request域对象

Filter的拦截路径:

拦截路径就是指web.xml文件中filter-mapping中的url-pattern。
1.精确匹配:(指明文件的路径以及后缀名)
2.目录匹配:(在一个目录后面写上*)
比如上面图片中的url-patern写上"/source/"
3.后缀匹配:(比如
.jpg) -----> 后缀匹配不能以“/”开头

另外,Filter只关心请求的地址是否匹配,不关心请求的资源是否存在。

Filter过滤器的执行细节

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值