您的位置:首页 > 编程语言 > Java开发

【配置】SpringBoot2.3.0添加拦截器并排除静态资源

2020-06-28 05:08 1376 查看
  • 前言: springboot版本:2.3.0
  • thymeleaf版本:3.0.11
  • Jq和Bootstrap用的webjars
  • 实现HandlerInterceptor接口

    package com.live.config;
    
    import org.springframework.util.StringUtils;
    import org.springframework.web.servlet.HandlerInterceptor;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MyHandlerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    //测试所用 *_*
    String login_user = (String) request.getSession().getAttribute("login_user");
    if (!StringUtils.isEmpty(login_user) &&login_user.equals("admin")) {
    return true;
    } else {
    response.sendRedirect("index");
    return false;
    }
    }
    }
  • 添加拦截器

    需要排除掉静态资源

  • 直接写static目录下的xxx文件,如:

    /asserts/**

  • 如果写

    /static/
    **

    会有以下问题
  • 资源被解释为 样式表,但使用 MIME 类型 text/plain 进行了传输
  • 如果用的webjars:

    /webjars/**

  • 目录结构

  • package com.live.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration
    public class MyViewConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new MyHandlerInterceptor())
    .addPathPatterns("/**")
    .excludePathPatterns("/login","/"
    ,"/asserts/**","/webjars/**");
    }
    }

    完!

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: