zoukankan      html  css  js  c++  java
  • 07springboot拦截器

    springboot拦截器

    2.0之前的拦截器(WebMvcConfigurerAdapter)

    • 使用注解 @Configuration配置拦截器
    • 继承WebMvcConfigurerAdapter
    • 重写addInterceptors 添加需要的拦截器地址
    @Configuration
    public class WebMvcConfigurer extends WebMvcConfigurerAdapter {//或者在主类上及继承
        //-------------------------------------------------------------------------------
    
        /**
        使用的时候才定义拦截器
        */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            /**
             * 拦截器按照顺序执行
             */
            registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/two/**")
                                                         .addPathPatterns("/one/**");//new TwoInterceptor()定义拦截器
            registry.addInterceptor(new OneInterceptor()).addPathPatterns("/one/**");
    
            super.addInterceptors(registry);
        }
    
        //-------------------------------------------------------------------------------
        //或者先定义后使用:
        @Bean  //定义i=
        public LoginInterceptor loginInterceptor() {
            return new LoginInterceptor();
        }
        @Override //配置使用
        public void addInterceptors(InterceptorRegistry registry) {
            // addPathPatterns 用于添加拦截规则
            // excludePathPatterns 用户排除拦截
            // 登录拦截(登录,退出的去掉)
            registry.addInterceptor(loginInterceptor()).addPathPatterns("/ucareschedule/**")  //添加拦截
                    .excludePathPatterns("/ucareschedule/manager/login")
                    .excludePathPatterns("/index.html/");
        }
        //-------------------------------------------------------------------------------
    
    }

    2.0之后的拦截器

    主类设置继承类

    implements WebMvcConfigurer
    //拦截设置一致

    具体拦截类

    public class OneInterceptor implements HandlerInterceptor  {//或extends HandlerInterceptorAdapter
    
        /**
         * 在请求处理之前进行调用(Controller方法调用之前)
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
    
            System.out.println("被one拦截,放行...");
            return true;//true继续,false,拦截校验失败
    
        }
    
        /**
         * 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView mv)throws Exception {
    
        }
    
        /**
         * 在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行
         * (主要是用于进行资源清理工作)
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception ex)throws Exception {
    
        }
    }




  • 相关阅读:
    UVA 12697 Minimal Subarray Length
    学渣乱搞系列之后缀数组
    HDU 3518 Boring counting
    NYOJ 832 合并游戏
    如何在SAP里创建configurable material物料主数据
    在Kubernetes上运行SAP UI5应用(下): 一个例子体会Kubernetes内容器的高可用性和弹性伸缩
    使用SAP C4C rule editor动态控制UI上某个按钮是否显示
    ABAP SICF服务和Java Servlet的比较
    一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA的方法介绍
    Java实现的有道云笔记图片批量下载工具
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/bb627f17a003b9fe329cd37a89a84420.html
Copyright © 2011-2022 走看看