龙空技术网

Java面试-过滤器、拦截器、监听器到底能干啥?

三月的爸比 1471

前言:

如今小伙伴们对“敏感词java”都比较讲究,各位老铁们都需要学习一些“敏感词java”的相关资讯。那么小编同时在网摘上汇集了一些有关“敏感词java””的相关内容,希望咱们能喜欢,同学们快快来了解一下吧!

从设计和功能的角度来看,过滤器(Filter)就是从一群数据中,根据你定义的规则,筛选出来符合你要求的数据;拦截器(Interceptor)就是在执行一个事件时候,干预这次操作,像在执行前或者之后进行某些其他的操作;监听器(Listener)就是在执行事件时候,悄悄的关注整个事件的执行过程,不影响这个事件的流程走向。

图解:过滤器从所有的图形中筛选出五角星

拦截器:得到所有的五角星并且都变成红色

监听器:关注整个过程的一举一动,但是不干预

功能了解了之后,那这3个到底有啥作用呢?

过滤器(Filter):过滤器基于函数回调,可以对所有的请求进行过滤,一般使用在认证、登录、审核、敏感词和低俗文字的过滤。只初始化一次,但是以后就可以每次进行拦截。

拦截器(Interceptor):拦截器基于java反射机制,属于切面编程(AOP)的一种应用,只能对controller请求进行拦截,可以在方法执行前或者执行后进行操作。在生命周期内能多次调用。

监听器(Listener):监听器是属于系统级别的监听。监听器随Web应用启动而启动,只初始化一次,随Web应用停止而销毁,主要是做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

三者的执行顺序:从图解图上也基本可以看出三者的触发顺序是监听器->过滤器->拦截器

小结:从灵活性上来说,过滤器能做的事情拦截器基本都能做,而拦截器做的事情过滤器不一定做的了,拦截器对访问控制的粒度更细。

标签: #敏感词java