过滤器Filter和拦截器Interceptor

  过滤器

一、什么是过滤器

        过滤器(Filter)是JavaWeb的三大组件之一,它可以将对url资源的请求进行拦截,然后进行一些处理;使用了过滤器之后,要想访问web服务器上的资源,必须先经过滤器,过滤器处理完毕之后,才可以访问对应的资源。

        以这种方式,一般我们可以用来进行登录校验、敏感字符处理等操作。

二、怎么使用过滤器

        第一步:定义一个过滤器的类,让他实现Filter接口,然后重写其中的所有方法销毁)

//定义一个类,实现一个标准的Filter过滤器的接口
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);

        System.out.println("Demo 拦截到了请求...放行后逻辑");
    }

    @Override //销毁方法, 只调用一次
    public void destroy() {
        System.out.println("destroy 销毁方法执行了");
    }
}

        第二步:配置过滤器:Filter类上加 @WebFilter 注解,配置拦截资源的路径。

@WebFilter(urlPatterns = "/*") //配置过滤器要拦截的请求路径( /* 表示拦截浏览器的所有请求 )
public class DemoFilter implements Filter {
    ...
}

过滤器Filter和拦截器Interceptor_第1张图片

        第三步:启动类上加 @ServletComponentScan 开启Servlet组件支持。

@ServletComponentScan
@SpringBootApplication
public class FilterApplication {

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

你可能感兴趣的:(我的笔记,servlet)