zoukankan      html  css  js  c++  java
  • (入门SpringBoot)SpringBoot结合拦截器(七)

    SpringBoot拦截器:

    1. 拦截器还是照旧和springmvc一样:

    @Component
    public class MyInterceptor implements HandlerInterceptor {
        /**
         * preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
         * @param request
         * @param response
         * @param handler
         * @return
         * @throws Exception
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            System.out.println("preHandle");
            //进行逻辑判断,如果ok就返回true,不行就返回false,返回false就不会处理改请求
            return true;
        }

        /**
         * postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView;
         * @param request
         * @param response
         * @param handler
         * @param modelAndView
         * @throws Exception
         */
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            System.out.println("postHandle...");
        }

        /**
         * afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);
         * @param request
         * @param response
         * @param handler
         * @param ex
         * @throws Exception
         */
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            System.out.println("afterCompletion...");
        }
    }

    1. 把拦截器放在实现了WebMvcConfigurer Java类中:


    /**
     * 使用WebMvcConfigurer可以来扩展SpringMVC的功能
     *
     * 在spring5.0之前可以继承WebMvcConfigurerAdapter此适配器进行配置,但spring5.0以后此适配器就被废弃(已被标注为@Deprecated),
     * 目前有两种解决方案,一种是直接实现WebMvcConfigurer,另一种是直接继承WebMvcConfigurationSupport,官方推荐第一种方案。
     */
    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {

        /**
         * 自定义拦截规则
         *
         * @param registry
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            // addPathPatterns - 用于添加拦截规则
            // excludePathPatterns - 用户排除拦截
            registry.addInterceptor(new MyInterceptor())
                    .addPathPatterns("/**")
                    .excludePathPatterns("/");
        }
    }

  • 相关阅读:
    Putty完全使用方法
    TCP端口扫描
    XSS学习笔记
    SQL漏洞学习笔记
    Codeforces Round #263 (Div. 1)
    hdu4987A simple probability problem.(凸包)
    Codeforces Round #262 (Div. 2)
    hdu3228Island Explorer
    hdu2297Run(凸包的巧妙应用)
    poj3301Texas Trip(三分)
  • 原文地址:https://www.cnblogs.com/historylyt/p/10933770.html
Copyright © 2011-2022 走看看