一,过滤器Filter
1.过滤器入门程序
Filter是javaweb三大组件之一,而不是springboot提供的,而我们想要在spring中使用javaweb三大组件,就必须在启动类上加上@ServletComponentScan用于标识spring是支持javaweb的
package com.itheima.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("init初始化方法执行了");
}
@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("destory销毁方法执行了");
}
}
package com.itheima;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@ServletComponentScan //当前开启了对servlet组件的支持
@SpringBootApplication
public class TliasWebManagementApplication {
public static void main(String[] args) {
SpringApplication.run(TliasWebManagementApplication.class, args);
}
}
2.过滤器详解
1)过滤器执行流程
2)过滤器的拦截路径
3)过滤器链
3.使用Fileter实现登录校验
二.拦截器 Interceptor
1.拦截器入门程序
拦截器-Interceptor详解
1)拦截路径
2)拦截器执行流程
登录校验Interceptor
Filter与Interceptor区别
1.接口范围不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口。
2.拦截范围不同:过滤器Filter会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源