Springboot 过滤器和拦截器
2022/3/10 6:14:54
本文主要是介绍Springboot 过滤器和拦截器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
过滤器(Filter)
过滤器是对数据进行过滤和预处理。开发人员可以对客户端提交的数据进行过滤处理,也可以对服务器返回的数据进行处理。
比如验证用户的登录情况,权限验证,对静态资源进行访问权限控制等...
过滤器使用的两种方式
注解配置
-
定义一个JwtFilter 实现Filter接口。重写里面的三个方法。(按Ctrl+I 一键重写)
package com.smile.blog.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; @WebFilter(filterName = "jwtFilter",urlPatterns = "/*") public class jwtFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { //jwt 过滤器开启 System.out.println("jwt 过滤器开始"); Filter.super.init(filterConfig); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("开始验证 ..."); filterChain.doFilter(servletRequest,servletResponse); System.out.println("验证结束 ...."); } @Override public void destroy() { //jwt过滤器结束 System.out.println("jwt 过滤器结束"); Filter.super.destroy(); } }
解释说明:
-
@WebFilter
注解,用于将类声明为过滤器
,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值) -
@Order
注解,用于定义组件的加载顺序,值越小,加载的优先级越高 -
init()
方法只会执行一次,初始化过滤器 -
destory()
只会在项目停止或项目重新部署执行 -
doFilter()
核心方法,配置过滤器的逻辑代码@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //预处理 System.out.println("开始验证 ..."); filterChain.doFilter(servletRequest,servletResponse); //后处理(处理servletResponse) System.out.println("验证结束 ...."); }
对每个请求及响应增加额外的预处理和后处理逻辑。执行该方法之前,即对用户请求进行预处理,执行该方法后,即对服务器进行后处理。
-
-
在Application上添加注解
@ServletComponentScan
解释说明:
@ServletComponentScan
注解后,Servlet
,Filter
,Listener
可以直接通过@WebServlet
,@WebFilter
,@WebListener
注解自动注册package com.smile.blog; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
-
结果验证
java配置
- 定义java
这篇关于Springboot 过滤器和拦截器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程