SpringBoot 过滤器, 拦截器, 监听器 对比及使用场景

1. 过滤器 (实现 javax.servlet.Filter 接口)

① 过滤器是在web应用启动的时候初始化一次, 在web应用停止的时候销毁.

② 可以对请求的URL进行过滤, 对敏感词过滤,

③ 挡在拦截器的外层

④ Filter 是 Servlet 规范的一部分

2. 拦截器 (实现 org.springframework.web.servlet.HandlerInterceptor 接口)

① 不依赖Spring容器, 可以使用 Spring 容器管理的Bean

② 拦截器通过动态代理进行

③ 拦截器应用场景, 性能分析, 权限检查, 日志记录

3. 监听器 (实现 javax.servlet.ServletRequestListener, javax.servlet.http.HttpSessionListener, javax.servlet.ServletContextListener 等等接口)

① 主要用来监听对象的创建与销毁的发生, 比如 session 的创建销毁, request 的创建销毁, ServletContext 创建销毁

https://my.oschina.net/zdtdtel

原文地址:https://www.cnblogs.com/feng9exe/p/11217340.html

时间: 2024-11-02 09:46:54

SpringBoot 过滤器, 拦截器, 监听器 对比及使用场景的相关文章

过滤器/拦截器/监听器 —— Filter、Interceptor、Listener

一.Filter的功能 filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个"servlet chaining"(servlet 链). 一个Filter包括: 1)在servlet被调用之前截获; 2)在servlet被调用之前检查

springboot+springmvc拦截器做登录拦截

springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration 实现 WebMvcConfigurer 接口,注册拦截器 ResourceBundle 加载 properties文件数据,配置不进行拦截的路径 LoginInterceptor package com.ytkj.smart_sand.system.interceptor; import com.

过滤器 拦截器 区别

转 http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用 4.拦截器可以访问action上下文.值栈里的对象,而过滤器不能 5.在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

springboot实现拦截器

你首先需要一个搭建好的springboot项目,具体怎么搭建我还没有相应的随笔可以交给你,可以自己上网上看一下,学习一下,之后我要是总结出来的话,这里面我会通知的 首先这个项目的目录结构是这样子的 首先在Controller里面写上你想要展示的内容 package com.example.springBoot; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web

Idea基于springBoot的拦截器的简单实现

一.创建SpringBoot项目二.配置文件:1.启动文件InterceptortestApplication.java package com.jane.interceptortest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.

SpringBoot 的拦截器

首先注册我们要有完整的一个可以开始的开发环境 先自己创建一个配置类 InterceptorConfig, 实现springboot自带的拦截器接口 WebMvcConfigurer. 1 package com.example.demo.TestInterceptor; 2 3 import org.springframework.context.annotation.Configuration; 4 import org.springframework.web.servlet.config.a

27.Spring-Boot中拦截器中静态资源的处理(踩过坑)以及Spring mvc configuring拓展介绍

一.springboot中对静态资源的处理 默认情况下,springboot提供存放放置静态资源的文件夹: /static /public /resources /META-INF/resources 对于maven项目即就是存在src/main/resources 文件夹下. ? 如图:static文件夹就是springboot中默认的文件夹 在页面中这样写路径<link href="themes/bootstrap.min.css" rel="stylesheet&

springboot集成拦截器

一.首先对HandlerInterceptor进行封装,封装为MappingInterceptor.封装的方法里添加拦截器起作用的路径addPathPatterns(),及需要排除路径的方法excludePathPatterns() public interface MappingInterceptor extends HandlerInterceptor { String[] addPathPatterns(); String[] excludePathPatterns(); int orde

springboot的拦截器中注入redisTemplate为null的解决办法

原因:拦截器加载于IOC之前,所以这个时候注入RedisTemplate时是null 在SpringBoot配置类中做出如下调整,将自定义拦截器也加入到配置中,在拦截器执行的时候实例化拦截器Bean 原文地址:https://www.cnblogs.com/zj-mxcz/p/12422953.html