美文网首页
(六)SpringBoot拦截器实战和 Servlet3.0自定

(六)SpringBoot拦截器实战和 Servlet3.0自定

作者: 丛鹏 | 来源:发表于2022-06-30 10:31 被阅读0次

    一  Filter过滤器(非前后端分离)

        1.启动类添加@ServletComponentScan  进行扫描

    2.创建一个类实现Filter 接口 同时添加过滤条件   @WebFilter(urlPatterns ="/api/*", filterName ="loginFilter")  代表/api/* 进行过滤。

    init()容器加载的时候调用    doFilter()请求被拦截的时候进行调用   destroy()容器被销毁的时候被调用

    二  Servlet3.0的注解原生Servlet(弃用)

     1.启动类添加@ServletComponentScan  进行扫描

    2.添加引用 @WebServlet

    三  Servlet3.0的注解原生Listener监听器实战

    常用的监听器 

    servletContextListener     资源加载(db、redis、开线程)

    httpSessionListener

    servletRequestListener    统计

    必须启动类添加@ServletComponentScan,监听器加@WebListener

    过滤器与监听器的顺序

    contextInitialized(监听器--资源加载的时候被调用)-->init loginFilter(过滤器容器加载的时候调用)-->requestInitialized(监听器--统计开始)-->doFilter loginFilter(过滤器请求被拦截的时候进行调用)-->Controller-->requestDestroyed(监听器--统计结束)-->destroy loginFilter(过滤器容器被销毁的时候被调用)-->contextDestroyed(监听器资源销毁的时候被调用)。

    四 SpringBoot2.X拦截器

    1.启动类加@ServletComponentScan。

    2.新建一个类实现HandlerInterceptor接口。HandlerInterceptor是拦截器的一个业务

     注意:它包含preHandle(进入controller方法之前)、postHandle(调用完controller之后,视图渲染之前)、afterCompletion(整个完成之后,通常用于资源清理)

    3.创建一个类实现WebMvcConfigurer  类前面加上备注@Configuration 告诉springboot 这是一个配置类  可进行拦截

    过滤器与拦截器的执行顺序

    过滤前  拦截前 执行 拦截后过滤完

    过滤器只能执行一次 拦截器能执行n次

    相关文章

      网友评论

          本文标题:(六)SpringBoot拦截器实战和 Servlet3.0自定

          本文链接:https://www.haomeiwen.com/subject/mooovrtx.html