美文网首页
SpringBoot-拦截器

SpringBoot-拦截器

作者: 是归人不是过客 | 来源:发表于2021-01-24 14:59 被阅读0次

    通过addInterceptors方法可以设置多个拦截器,比如特定的URL设定拦截器以检查用户是否登录,或用户没有登录就能进入主页。

    拦截器有一下三个方法需要覆盖实现:
    preHandle,在调用Controller方法前会调用此方法
    postHandle,在调用Controller方法结束后,页面渲染之前调用此方法,比如可以在这里渲染的试图名称更改为其他视图名称
    afferCompletion:页面渲染完毕后调用此方法

    举个例子:
    首先我们创建一个拦截器(需要继承HandlerInterceptor):

    public class LoginHandlerInterceptor implements HandlerInterceptor {
        // 目标方法执行之前
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
        return false;
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                               ModelAndView modelAndView) throws Exception {
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
                throws Exception {
        }
    }
    

    对提交的数据进行判断后进行你想要的处理(例如跳转页面)

    第二步(拦截器的注册)
    在springboot中的扩展功能里添写

    // 注册拦截器
                @Override
                public void addInterceptors(InterceptorRegistry registry) {
    //                super.addInterceptors(registry);
                    // springboot 已经做好了静态资源的拦截功能,所以不需要处理
                     // registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
                       //       .excludePathPatterns("/","/index.html","/user/login");
                }
    

    相关文章

      网友评论

          本文标题:SpringBoot-拦截器

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