springboot2中session超时,退到登录页面方式

在Spring Boot 2中,控制Session超时并重定向到登录页面的方式有多种。下面是其中一种完整攻略:

1. 设置Session超时时间

application.properties文件中添加以下配置,设置Session超时时间:

server.servlet.session.timeout=30m

表示Session超时时间为30分钟。也可以使用以下格式:

server.servlet.session.timeout=1800

表示Session超时时间为1800秒。

2. 配置Interceptor拦截器

在Spring Boot应用中,可以使用Interceptor拦截器来控制Session的超时和重定向到登录页面的处理。

首先,创建一个继承HandlerInterceptorAdapter类的拦截器:

@Component
public class SessionTimeoutInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession(false);
        if(session == null || session.getAttribute("user") == null) {
            response.sendRedirect(request.getContextPath() + "/login");
            return false;
        }
        return true;
    }
}

上述拦截器判断Session是否存在或Session中是否有"user"属性,如果不存在或为空,则重定向到登录页。

接下来,在WebMvcConfigurer的实现类中添加拦截器:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Autowired
    private SessionTimeoutInterceptor sessionTimeoutInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(sessionTimeoutInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
    }
}

上述代码将拦截器注册到InterceptorRegistry中,对所有请求进行拦截,除了登录页。

3. 示例说明

下面的示例演示如何在Spring Boot应用中使用上述拦截器来控制Session的超时和重定向到登录页面的处理。

示例1

用户打开系统,并在30分钟内没有进行任何操作。当用户再次操作时,应该提示用户Session已过期,并重定向到登录页面。

示例2

用户正在访问系统,正在进行某项操作。如果超过30分钟没有进行任何操作,应该提示用户Session已过期,并重定向到登录页面。

以上就是使用Interceptor拦截器来控制Session超时并重定向到登录页面的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot2中session超时,退到登录页面方式 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 让示例代码在手机上换行显示以避免恼人的滚动条

    让示例代码在手机上换行显示以避免恼人的滚动条是网站优化与美化中一个较为普遍的需求,我们可以采取以下方法来实现: 方法一:使用“pre”标签 在HTML中,我们可以使用“pre”标签来定义格式化文本,这里的“pre”指的是preformatted(预格式化)。使用“pre”标签的代码块会保留原有的空格、换行符等元素,而不会将它们作为网页渲染的内容处理。代码示例…

    css 2023年6月10日
    00
  • CSS3 @font-face属性使用指南

    下面将详细讲解“CSS3 @font-face属性使用指南”的完整攻略。 一、@font-face属性概述 @font-face是CSS3引入的一个用于设置字体的规则,它可以让网站使用自定义字体,而无需将字体上传到服务器。 @font-face的语法如下: @font-face { font-family: <family-name>; src:…

    css 2023年6月9日
    00
  • CSS Position 使用详细小结

    关于CSS Position的使用详细小结,我会结合示例来进行讲解,以下是总结: 学习CSS Position CSS Position 在CSS中,Position属性用于设置元素的定位方式。Position属性可以让元素相对于它的容器以及文档本身来进行定位,同时它也是实现一些高级布局的重要手段。 CSS Position属性有如下取值: static(默…

    css 2023年6月9日
    00
  • 使用 CSS3 中@media 实现网页自适应的示例代码

    下面我来详细讲解如何使用 CSS3 中@media 实现网页自适应的示例代码及其攻略。 什么是@media @media是CSS3中的一个规则,可以用于在不同的媒体条件下为不同的设备提供不同的样式。主要用来设置针对不同输出设备如屏幕、打印机等的不同样式。 通过@media规则,可以根据不同的设备来匹配不同的样式,因此可以使用它来实现网页自适应。 使用@med…

    css 2023年6月10日
    00
  • CSS的一些圆角图形实例分享

    那我详细讲解一下“CSS的一些圆角图形实例分享”的完整攻略。 讲解CSS圆角图形的攻略 圆形 如果想要创建一个圆形,可以使用border-radius属性并将其设置为50%。示例代码如下: .circle { width: 100px; height: 100px; border-radius: 50%; background-color: red; } 正…

    css 2023年6月10日
    00
  • 纯js实现轮播图效果

    下面是使用纯JS实现轮播图效果的完整攻略: 确定HTML结构 首先,我们需要确定轮播图的HTML结构。可以使用以下结构: <div id="slider"> <ul> <li><img src="img/slide1.jpg" alt="Slide 1"&g…

    css 2023年6月10日
    00
  • 实现React单页应用的方法详解

    实现React单页应用的方法详解 React是一个流行的JavaScript库,可以用于构建单页应用(SPA)。本文将对实现React单页应用的方法进行详细说明。 前置知识 在学习本文内容之前,你应该熟悉以下技术: 前端开发HTML、CSS、JavaScript。 React框架及其基本使用。 Webpack工具的基本使用。 实现React单页应用的方法详解…

    css 2023年6月9日
    00
  • 实现表格中行点击时的渐扩效果!

    要实现表格中行点击时的渐扩效果,可以采用以下步骤: 在HTML页面中创建一个表格,并将每一行封装在一个<tr>标签内: <table> <tr> <td>行1, 列1</td> <td>行1, 列2</td> </tr> <tr> <td>…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部