面试官:过滤器Filter和拦截器Interceptors有什么区别?

简介: 面试官:过滤器Filter和拦截器Interceptors有什么区别?

写在前面


今天我们来说一个比较基础的问题,那就是过滤器Filter和拦截器Interceptors有什么区别?这个虽然很少被人提起,偶然还是被面试官提到,所以下面就来看一下吧。


过滤器Filter和拦截器Interceptors有什么区别?


在聊这两者有什么区别之前,我们先来看一下这两者到底是个什么?

过滤器Filter:通过函数的回调,可以针对请求进行过滤,但是每个过滤器针对单个请求只能过滤筛选一次。

通常我们会在使用Filter过滤器时,解决加密解密,参数筛选等等的需求情况。

拦截器Interceptors:拦截器通过AOP原理,进行面向切面的操作,一般都是在执行某个方法时进行拦截,比如指定注入一些特定参数等等的情况。

两者的区别?


  1. 其实刚才在特征的时候就说到了,Filter过滤器是基于函数的回调机制,Interceptors拦截器是基于Java的反射机制,通过AOP原理进行方法拦截。
  2. Filter过滤器本质上是要有Servlet才行,比如有tomcat相关包才可以,而拦截器不需要如此。
  3. Filter过滤器是针对访问请求的过滤,可以做到每个请求只有一次的过滤要求;拦截器因为本身是Java的概念,所以他只能拦截一些接口方法,做一些参数填充等等的工作。
  4. 还有一个很重要,也很明显的点,就是过滤器只能被请求调用一次,拦截器不一样,同一个请求可以通过方法进入拦截器多次,次数不做限制。


总结一下


今天我们学习了过滤器Filter和拦截器Interceptors的区别,面对金三银四的好时候,也到了该背面试题的时候了,所以就开始吧。


相关文章
|
2月前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
187 93
|
17天前
|
存储 缓存 NoSQL
京东面试:亿级黑名单 如何设计?亿级查重 呢?(答案含:布隆过滤器、布谷鸟过滤器)
尼恩,40岁的老架构师,近期在读者交流群中分享了几个大厂面试题及其解决方案。这些问题包括亿级数据查重、黑名单存储、电话号码判断、安全网址判断等。尼恩给出了三种解决方案:使用BitMap位图、BloomFilter布隆过滤器和CuckooFilter布谷鸟过滤器。这些方法不仅高效,还能显著提升面试表现。尼恩还建议大家系统化学习,刷题《尼恩Java面试宝典PDF》,并提供简历修改和面试辅导,帮助大家实现“offer自由”。更多技术资料和PDF可在公众号【技术自由圈】获取。
|
18天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
编译器
经典面试题:变量的声明和定义有什么区别
在编程领域,变量的“声明”与“定义”是经典面试题之一。声明告诉编译器一个变量的存在,但不分配内存,通常包含变量类型和名称;而定义则为变量分配内存空间,一个变量必须至少被定义一次。简而言之,声明是告知变量形式,定义则是实际创建变量并准备使用。
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
119 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
1月前
|
前端开发 小程序 JavaScript
面试官:px、em、rem、vw、rpx 之间有什么区别?
面试官:px、em、rem、vw、rpx 之间有什么区别?
43 0
|
2月前
|
Java 关系型数据库 MySQL
面试官:GROUP BY和DISTINCT有什么区别?
面试官:GROUP BY和DISTINCT有什么区别?
91 0
面试官:GROUP BY和DISTINCT有什么区别?
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
12天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
13天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
39 4