springboot的拦截器的简单使用

2021/10/19 6:11:08

本文主要是介绍springboot的拦截器的简单使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

首先创建一个类让他继承 HandlerInterceptor接口

实现其中的

preHandle
postHandle
afterCompletion
方法,这三个方法分别作用于请求来的前中后(顾名思义),一般会在登录成功之后再session域中放入用户登录的有关信息,
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    HttpSession session= request.getSession();
    User user=(User) session.getAttribute("user");
    if(user!=null){
        return true;
    }
    //拦截住跳转到登录页
    session.setAttribute("msg","请先登录!");
    response.sendRedirect("/");

    return false;
}

(关于request.getSession()与request.getSession(false)的区别,前者会先对是否已经有session做判断,没有回创建一个,而后者只取,如果没有返回null)


接下来写配置类,有与springboot框架基本舍弃了之前老项目xml配置文件,本人不太会操作properties或者yml配置文件也可以写配置类,其到同样的作用,
对于传统的xml文件也可以使用@ImportResources注解来引入。
@Configuration//次类为配置类==xml
public class AdminWebConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        WebMvcConfigurer.super.addInterceptors(registry);
        String[] addPathPatterns = {"/**"};//拦截所有请求
        String[] excludePathPatterns = {"/index","/", "/login", "/css/**", "/fonts/**", "/images/**", "/js/**"};
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns(addPathPatterns)
                .excludePathPatterns(excludePathPatterns);

    }
}

addPathPatterns:要拦截的请求
excludePathPatterns:要放行的请求,一般与登录相关的请求和静态资源文件是需要放行的。
 
 
 


这篇关于springboot的拦截器的简单使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程