1、filter
先看下web服务器的filter所处的位置。filter是一个前后连接的链,前面处理完成之后传递给下一个filter处理。
1.1 filter的接口定义
filter的入参是request和response,filter一般是用来做一些预处理工作,比如做一些检查,验证等工作。
1.2 自定义filter
2、springboot中filter注册几种方式
2.1 手动注册
2.2 注解注册
2.2.1 在filter上增加注解@WebFilter
2.2.2 在启动类上增加注解@ServletComponentScan
注:
@ServletComponentScan 会扫描所有的带有@WebFilter的类,并且注册为servlet。
如果启动类不添加此注解,在filter上添加Component注解也可以注册为filter
order注解可以调整filter的顺序
2.3 通过servletContext 注册
3、原理
3.1 ServletContext
Web容器在启动时会为每个web应用创建一个ServletContext对象,而这个ServletContext对象就代表当前这个web应用。
一个ServletContext对象代表一个web应用,web应用中所有的Servlet和其他资源都共享一个ServletContext对象,
如果有必要我们就可以通过ServletContext对象进行Servlet之间的通讯。
ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。
ApplicationContext 是ServletContext的实现类,可以看到里面有相应的注册的方法
在程序中获取ServletContext
3.1.1 使用自动注入
3.1.2 request获取servletContext
3.1.3 实现 ServletContextListener
3.2 ServletRegistrationBean
看下Filter的定义,可以看到和webfilter注解内容一样
在开发中一般使用他的子类FilterRegistrationBean,使用上面2.1 手动注册
4、总结
filter 作为web服务器中的重要的一部分,一般常用来做一些前置处理和对调用请求的中断
filter的注册几种方式总结,在开发中一般灵活使用,没有特殊的请求,常规都够用
了解原理是为了更好的理解,filter的过滤链式Spring Security的重要切入点,理解了filter再理解其他的框架就不难了,甚至可以自己简单写出一个列斯的框架
到此这篇关于一文详解Springboot中filter的原理与注册的文章就介绍到这了,更多相关Springboot filter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
一文详解Springboot中filter的原理与注册
发布日期:2025-01-03 17:50 点击次数:88
上一篇:没有了
下一篇:打开Win7系统nrg文件的方法【详解】
下一篇:打开Win7系统nrg文件的方法【详解】