美文网首页
三十、请求拦截器

三十、请求拦截器

作者: 那钱有着落吗 | 来源:发表于2020-12-02 09:11 被阅读0次

    我们可以新建一个拦截器,然后在mvc中添加这个拦截器,就可以达到拦截请求的功能了。

    
    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 {
            /**
             * 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
         * @throws Exception
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
        }
    }
    
    
    
        // 实现静态资源的映射
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**")
                    .addResourceLocations("classpath:/META-INF/resources/")  // 映射swagger2
                    .addResourceLocations("file:/workspaces/images/");  // 映射本地静态资源
        }
    
        @Bean
        public RestTemplate restTemplate(RestTemplateBuilder builder) {
            return builder.build();
        }
    
        @Bean
        public UserTokenInterceptor userTokenInterceptor() {
            return new UserTokenInterceptor();
        }
    
    
        @Override
        public void addInterceptors(InterceptorRegistry registry){
            registry.addInterceptor(userTokenInterceptor())
                    .addPathPatterns("/hello");
            WebMvcConfigurer.super.addInterceptors(registry);
        }
    

    如果不需要拦截,可以在拦截器里面做好配置


    image.png

    相关文章

      网友评论

          本文标题:三十、请求拦截器

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