[Java2023] Day12.9-过滤器Filter的快速入门

69 阅读1分钟
说明
  • 1.过滤器filter并不是SpringBoot的功能, 所以需要加上特殊的注解
  • 2.每个http请求, 都会先经过拦截器, 放行之后才能继续前往对应的控制器方法

步骤

  • 1.创建filter目录, 和测试过滤器 DemoFilter
package com.tlias.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter(urlPatterns = "/*")
public class DemoFilter implements Filter {

    @Override // 初始化方法, 只调用一次
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("初始化方法调用");
        Filter.super.init(filterConfig);
    }

    @Override // 拦截到请求之后调用, 多次
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("拦截到请求");

        // 放行
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {
        System.out.println("销毁方法调用");
        Filter.super.destroy();
    }
}
  • 2.springboot入口文件添加特殊注解
package com.tlias;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@ServletComponentScan // 开启对Servlet的支持: 由于拦截器不是springboot内置的, 需要添加支持
@SpringBootApplication
public class TliasApplication {

    public static void main(String[] args) {
        SpringApplication.run(TliasApplication.class, args);
    }

}