网站首页 > java教程 正文
从设计和功能的角度来看,过滤器(Filter)就是从一群数据中,根据你定义的规则,筛选出来符合你要求的数据;拦截器(Interceptor)就是在执行一个事件时候,干预这次操作,像在执行前或者之后进行某些其他的操作;监听器(Listener)就是在执行事件时候,悄悄的关注整个事件的执行过程,不影响这个事件的流程走向。
图解:过滤器从所有的图形中筛选出五角星
拦截器:得到所有的五角星并且都变成红色
监听器:关注整个过程的一举一动,但是不干预
功能了解了之后,那这3个到底有啥作用呢?
过滤器(Filter):过滤器基于函数回调,可以对所有的请求进行过滤,一般使用在认证、登录、审核、敏感词和低俗文字的过滤。只初始化一次,但是以后就可以每次进行拦截。
拦截器(Interceptor):拦截器基于java反射机制,属于切面编程(AOP)的一种应用,只能对controller请求进行拦截,可以在方法执行前或者执行后进行操作。在生命周期内能多次调用。
监听器(Listener):监听器是属于系统级别的监听。监听器随Web应用启动而启动,只初始化一次,随Web应用停止而销毁,主要是做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。
三者的执行顺序:从图解图上也基本可以看出三者的触发顺序是监听器->过滤器->拦截器
小结:从灵活性上来说,过滤器能做的事情拦截器基本都能做,而拦截器做的事情过滤器不一定做的了,拦截器对访问控制的粒度更细。
猜你喜欢
- 2024-11-04 【快学springboot】12.实现拦截器
- 2024-11-04 Spring Boot 中的拦截器和过滤器到底有什么区别?
- 2024-11-04 SpringBoot中的过滤器和拦截器有什么区别?
- 2024-11-04 为什么你写的拦截器注入不了Java bean?
- 2024-11-04 使用Spring Cloud Zuul实现过滤器或拦截器功能案例
- 2024-11-04 java服务-springboot拦截器实现用户登录Token及权限校验
- 2024-11-04 JAVAEE就业工程师教程之第4章 Struts2拦截器
- 2024-11-04 Spring框架功能分为哪些模块?(spring框架有哪几部分组成)
- 2024-11-04 高级码农Spring Boot实战进阶之过滤器、拦截器的使用
- 2024-11-04 轻量级 Java 权限认证框架Sa-Token初体验(五)
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)