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

    前提

    已经写好了一个controller

    public class HelloController {
    
        @GetMapping("/hello")
        public Object hello(){
            return "hello world";
        }
    }
    

    1.在controller包中创建一个interceptor包

    2.在interceptor包中创建一个UserTokenInterceptor.class 并去实现 HandlerInterceptor

    package com.imooc.controller.interceptor;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class UserTokenInterceptor implements HandlerInterceptor {
    
        /**
         * 拦截请求,在访问controller调用之前
         * @param request
         * @param response
         * @param handler
         * @return
         * @throws Exception
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
            System.out.println("进入到拦截器,被拦截。。");
    
            /**
             * false:请求被拦截,被驳回,验证出现问题
             * true: 请求在经过验证效验以后,是OK的,是可以放行
             */
            return false;
        }
    
        /**
         * 请求访问controller之后,渲染视图之前
         * @param request
         * @param response
         * @param handler
         * @param modelAndView
         * @throws Exception
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
        }
    
        /**
         * 请求访问controller之后,渲染视图之后
         * @param request
         * @param response
         * @param handler
         * @param ex
         * @throws Exception
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
        }
    }
    
    

    3.注册到容器里

    package com.imooc.config;
    
    import com.imooc.controller.interceptor.UserTokenInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Bean
        public UserTokenInterceptor userTokenInterceptor(){
            return new UserTokenInterceptor();
        }
    
        /**
         * 注册拦截器
         * @param registry
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(userTokenInterceptor())
                    .addPathPatterns("/hello");
    
            WebMvcConfigurer.super.addInterceptors(registry);
        }
    }
    
    

    4.请求/hello

  • 相关阅读:
    Oracle Spool详解
    转自云界漫步:同步容灾100公里的限制来自哪里
    中国十大基金公司排行榜
    DataGuard体系结构
    SWIFT国际资金清算系统
    linux -- 命令大全
    bootstrap -- css -- 图片
    bootstrap -- css -- 按钮
    bootstrap -- css -- 表单控件
    bootstrap -- css -- 表单
  • 原文地址:https://www.cnblogs.com/hardy-wang/p/13857202.html
Copyright © 2011-2022 走看看