Java Web Spring Boot中的Filter过滤器详解
概念解释
Filter(过滤器):Filter是Java Web的三大组件之一,另外两个是Servlet和Listener。Filter用于在请求到达目标资源之前或响应返回客户端之前,对请求和响应进行预处理和后处理。Filter可以实现一些通用的操作,如登录校验、统一编码处理、敏感字符处理等。
JWT令牌:JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境间安全地将信息作为JSON对象传输。JWT令牌通常用于身份验证和授权。
Spring Boot:Spring Boot是一个用于简化Spring应用开发的框架,它提供了自动配置、嵌入式服务器等特性,使得开发者可以快速构建和部署Spring应用。
Filter的基本使用
1. 定义过滤器
首先,我们需要定义一个过滤器类,实现javax.servlet.Filter
接口,并重写其所有方法。
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
public class DemoFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("init 初始化方法执行了");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("Demo 拦截到了请求...放行前逻辑");
// 放行
chain.doFilter(request, response);
}
@Override
public void destroy() {
System.out.println("destroy 销毁方法执行了");
}
}
init
方法:过滤器的初始化方法,在Web服务器启动时调用一次。doFilter
方法:每次拦截到请求时调用,可以进行预处理和后处理。destroy
方法:过滤器的销毁方法,在Web服务器关闭时调用一次。
2. 配置过滤器
在Spring Boot中,我们可以使用@WebFilter
注解来配置过滤器,并指定拦截的请求路径。
import