SpringBoot - Web开发 拦截器

在做网站的时候,很多页面希望用户在登录后才能访问,此时我们就要为我们的Web项目添加登录拦截器,拦截器其实是一种AOP编程思想的体现,这是在之前的安卓开发中接触比较少的一块内容。好,接下来看一下如何实现在SpringBoot中添加登录拦截器。

一.定义拦截器

/**
 * 登录拦截器
 * @author BaoZhou
 * @date 2018/5/16
 */
public class LoginHandlerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String username = (String) request.getSession().getAttribute("username");
        if (StringUtils.isEmpty(username)) {
            request.setAttribute("msg", "请先登录");
            request.getRequestDispatcher("/index").forward(request,response);
            return false;
        } else {
            return true;
        }
    }
    }
}

此拦截器的功能就是根据Session来中的username字段来判断用户是否登录。

二.配置拦截器

在Config文件中配置拦截器

 /**
     * 拦截器
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/", "/index", "/user/login");
    }

这个配置的意思就是让这个拦截器在所有的页面生效除了(("/", "/index", "/user/login"))这三个路径。

三.运行

运行正确

此时我们请求dashboard页面时,请求被拦截器截获,返回登录页面并提示消息。

但是中间还是碰到了一个坑反复研究没有解决。按照道理来说SpringBoot的自动配置让拦截器不会拦截静态资源,但是在登录界面中我们引入的本地Bootstrap却被拦截了。。。。。。。

    <link th:href="@{/dist/css/bootstrap.min.css}" rel="stylesheet">``
Bootstrap被拦截,CSS无法获取

后将Bootstrap引入语句改为下面这句才通过。

  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/4.4.1/css/bootstrap.min.css">

反复检查,资源存放路径也不存在问题。


静态资源路径

最后也没有找到具体原因,SpringBoot版本2.0.1.RELEASE,如果有大神知道原因所在并解答,那必万分感激!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,737评论 19 139
  • 拦截器对使用SpringMvc、Struts的开发人员来说特别熟悉,因为你只要想去做好一个项目必然会用到它。拦截器...
    恒宇少年阅读 106,377评论 92 69
  • 拦截器是Struts2框架的核心,它主要完成解析请求参数、将请求参数赋值给Action属性、执行数据校验、文件上传...
    重山杨阅读 4,087评论 2 13
  • 每逢周末、佳节,不出去浪?怎么可能! 说到出游,选择哪种出行方式是你不得不考虑的问题了。高铁、动车的快速,...
    无尘_小菜鸟阅读 418评论 0 0
  • 首先肯定的是,我生命中确实遇到了很多的贵人。有上学时的老师,有工作后单位的领导,同事,还有退休后给提醒的老同志。无...
    华筠沁阅读 576评论 0 3

友情链接更多精彩内容