我们需要在项目中对未登录的用户进行拦截,使其登录后才能访问

1、实现 HandlerInterceptor 接口

创建 LoginInterceptor.java,实现 HandlerInterceptor 接口

@Component
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 获取当前sessionHttpSession session = request.getSession();// 根据session获取登录用户UserInfo ui = (UserInfo) session.getAttribute(Const.SYSTEM_USER_SESSION);// 没登录,重定向到登录页面if (null == ui) {response.sendRedirect(request.getContextPath() + "/login");return false;}// 已经登录return true;}
}

我们通过实现 HandlerInterceptor 接口,重写 preHandle 方法,该方法在业务处理器处理请求之前被调用

我们通过从 HttpSession 中获取用户信息,用户信息为空,则表示“未登录”,跳转至“登录界面”

若用户信息不为空,表示“已经登录”,返回 true 即可

2、拦截器 HandlerInterceptor 方法介绍

以下内容参考博客:https://blog.csdn.net/zhibo_lv/article/details/81699360

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;

preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了 Service 并返回 ModelAndView ,但未进行页面渲染),有机会修改 ModelAndView ;
afterCompletion:在 DispatcherServlet 完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面)

如您在阅读中发现不足,欢迎留言!!!

【SpringBoot】7、SpringBoot中实现未登录拦截相关推荐

  1. java 拦截指定jsp_详解Struts2中对未登录jsp页面实现拦截功能

    struts2中拦截器大家都很经常使用,但是拦截器只能拦截action不能拦截jsp页面.这个时候就有点尴尬了,按道理来说没登录的用户只能看login界面不能够通过输入url进行界面跳转,这显然是不合 ...

  2. .NETMVC 使用过滤器完成未登录拦截

    实现功能:当程序未登录时不能通过URL访问其他页面. 具体:未登录时访问其他页面会自动跳转到登陆页面. 1.创建MVC项目 不过多累述. 2.创建过滤器 如图可创建一个文件夹,把拦过滤器类收录在内. ...

  3. Spring mvc 未登录 拦截跳转登陆页面

    在拦截的时候 会遇到未登录 直接 跳转 到 login.jsp 之前做项目,用到了两种方法 (1) ajax 异步登录 如果未登录 返回一个 restfulMessage (自定义的返回类)里面定义一 ...

  4. SpringBoot和SpringSecurity整合,未登录请求自定义controller访问前端页面,出现 302状态码,一直在登录页面重定向

    出现问题: 在登录界面点击 自定义注册界面的跳转 或者 自定义首页界面的跳转 在url路径上虽然通过自定义的controller层访问到 但是页面始终在登录界面,通过F12控制台查看 出现状态码302 ...

  5. uniapp 拦截器-未登录跳转到登陆页面

    uniapp实现未登陆拦截 效果: 拦截器前 加了拦截器后 建一个interceptor.js //页面白名单const whiteList = ['/user-pages/bindPhone',]f ...

  6. Play 1.x框架学习之六:未登陆拦截机制 (Not Login intercept In play framework)

    为什么80%的码农都做不了架构师?>>>    未登录拦截功能,这是web应用中比较常见的,在本文中,我们结合redis来做未登录拦截.其原理是将sessionid作为key,等登陆 ...

  7. SpringBoot——使用拦截器拦截未登录用户

    前置知识SpringBoot配置拦截器基于HandlerInterceptor接口实现,关键三个方法 preHandle()执行目标之前 postHandle()执行目标之后 afterComplet ...

  8. Springboot实现登录拦截的三种方式

    文章目录 1. 登录认证 1.1 介绍 1.2 方式 1.3 扩展 2. 实现 2.1 项目结构以及前置准备 2.2 过滤器实现登录拦截 2.3 拦截器实现登录拦截 2.4 AOP+自定义注解实现 2 ...

  9. 七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

    一.CURD的Demo 1开发前准备工作 新建一个SpringBoot工程 引入starter-web maven依赖 引入html页面和assert文件夹里的样式文件等等 2 实现访问登录页面 方式 ...

最新文章

  1. 线段覆盖加强版(快速+贪心)
  2. 深度学习核心技术精讲100篇(四十三)-人工智能新技术-知识普及篇:一文带你深入认识下联邦学习的前世今生
  3. 消灭 Java 代码的“坏味道”【转】
  4. Modbus协议栈开发笔记之六:Modbus RTU Master开发
  5. linux系统优化 io,Linux硬件IO的优化简介
  6. 近期两篇双目图像超分辨算法论文解读 |AAAI2020 SPL2020
  7. Spring自动装配(autowire)篇
  8. HeadFirstJava 11异常处理
  9. ASP.NET编程总结
  10. ExtJs6学习(五)【Extjs MVC开发模式详解】
  11. C# 阿里云 短信api接口
  12. 固态硬盘是什么接口_今天说事儿—固态硬盘接口,防你入坑
  13. pdf文件太大?看pdf压缩大小的方法吧
  14. 显示空闲链表和隐式空闲链表_使用空闲资源添加Espresso UI测试
  15. codeforces 1567 E. Non-Decreasing Dilemma
  16. 什么是土壤电阻率,它如何影响防雷接地
  17. 2017年大工考博英语加试试题。给学弟学妹们一点帮助
  18. 夏普电视显示服务器连线异常,夏普电视黑屏的原因?夏普电视常见故障!
  19. iOS 一步一步带你实现引导页
  20. 安全教育APP开发应该具备哪些功能

热门文章

  1. 兔子运送胡萝卜_一次运送一个重构并提供一个小片段,以降低风险
  2. 《SQL 入门教程》第07篇 多表连接查询
  3. 获取指定时区的天数,小时数
  4. 少年游 于天河偶遇王生少年聊以寄之
  5. 「SymPy」符号运算(7) Matrix进阶运算与线性代数
  6. NR PDSCH(五) PDSCH 信道编码与调制流程
  7. 题解 | #字符串操作之substring_index提取#
  8. 【Android】Crystal Screen(手机投影到电脑)
  9. 如何做好工作汇报总结PPT?
  10. ubuntu:查看ubuntu系统的版本信息