springboot中使用MVC拦截器


(1)springboot中使用MVC拦截器:







(2)应用:用户未登录时,编写拦截器使其无法访问部分页面



1.创建拦截器类com.cy.store.interceptor.LoginInterceptor,并实现1.org.springframework.web.servlet.HandlerInterceptor接口


public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
       if (request.getSession().getAttribute("uid") == null){
           response.sendRedirect("/web/login.html");
           return false;
       }
       return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
    }
}

2.创建LoginInterceptorConfigurer拦截器的配置类并实现org.springframework.web.servlet.config.annotation.WebMvcConfigurer接口


配置类需要添加@Configruation注解修饰:

//拦截器配置
@Configuration
public class LoginInterceptorConfigurer implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        //创建拦截器对象
        HandlerInterceptor interceptor=new LoginInterceptor();

        //白名单设置
        List<String> patterns = new ArrayList<String>();
        patterns.add("/bootstrap3/**");
        patterns.add("/css/**");
        patterns.add("/images/**");
        patterns.add("/js/**");
        patterns.add("/web/register.html");
        patterns.add("/web/login.html");
        patterns.add("/web/index.html");
        patterns.add("/web/product.html");
        patterns.add("/users/add");
        patterns.add("/users/login");


        //通过注册工具添加拦截器
        registry.addInterceptor(interceptor).addPathPatterns("/**").excludePathPatterns(patterns);



    }
}


posted @ 2022-04-06 21:14  卡卡发  阅读(193)  评论(0)    收藏  举报