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日

相关文章

  • css3制作动态进度条以及附加jQuery百分比数字显示

    关于”css3制作动态进度条以及附加jQuery百分比数字显示”,我们可以分为以下两大步骤来讲解: 步骤一:使用CSS3制作动态进度条 1.1 制作进度条基本样式 我们可以使用div元素来制作一个进度条,首先需要定义进度条的样式,包括进度条的宽度、高度、背景色、边框等。代码实现如下: .progress-bar { width: 300px; height:…

    css 2023年6月10日
    00
  • vue项目做屏幕自适应处理方式

    针对”vue项目做屏幕自适应处理方式”,我们可以采用以下三步来实现: 1. 使用rem作为单位 rem是相对于根元素(html标签)的字体大小而言的。因此,我们可以通过设置根元素的字体大小,来达到屏幕自适应的目的。具体而言,我们可以根据设备屏幕尺寸来动态设置根元素的字体大小,例如我们可以在index.html的head中加入以下代码: <script&…

    css 2023年6月10日
    00
  • 兼容当前五大浏览器的渐变颜色背景gradient的写法

    下面我将详细讲解“兼容当前五大浏览器的渐变颜色背景gradient的写法”的攻略。 什么是渐变颜色背景gradient 渐变颜色背景gradient指的是使用两个或多个颜色之间渐变的背景色。这个效果可以通过CSS的background-image属性中的linear-gradient()或radial-gradient()函数实现。 渐变颜色背景的浏览器兼容…

    css 2023年6月9日
    00
  • 学习Xhtml+CSS2的一些心得体会

    学习XHTML+CSS2的一些心得体会 学习XHTML+CSS2的前置条件 在学习XHTML+CSS2之前,需要先了解HTML和CSS的基础知识。HTML是网页的基础语言,而CSS是网页样式的描述语言。如果没有HTML和CSS的基础,学习XHTML+CSS2会比较困难。 掌握XHTML+CSS2的基本语法 XHTML+CSS2的语法相对HTML和CSS来说更…

    css 2023年6月10日
    00
  • vue鼠标hover(悬停)改变background-color移入变色问题

    想要实现鼠标hover(悬停)时改变元素的背景颜色,可以使用Vue的绑定事件@mouseover和@mouseout。具体步骤如下: 首先,给需要实现鼠标悬停变色的元素绑定一个v-bind样式,样式名称可以是你自己定义的,例如hoverColor。同时,需要定义两个背景颜色变量,一个代表平时的背景颜色,另一个代表鼠标悬停时的背景颜色。 <templat…

    css 2023年6月9日
    00
  • 原生js实现给指定元素的后面追加内容

    下面是详细讲解“原生JS实现给指定元素的后面追加内容”的完整攻略: 1. 获取指定元素参考 要想向指定的元素后面追加内容,首先需要获取到该元素的引用。在原生JS中,我们可以通过document.getElementById()或document.querySelector()方法来获取指定元素的引用。举个栗子: // 获取id为"myDiv&quo…

    css 2023年6月10日
    00
  • CSS将img图片填满父容器div自适应容器大小的实现方法

    下面我将详细讲解一下如何使用CSS将img图片填满父容器div实现自适应容器大小的方法,敬请听我讲解。 一、使用CSS background属性将图片作为背景填充 使用 background 属性将父容器背景设置为要显示的图片,这样就可以填满整个父容器了。并且使用 background-size 属性控制背景图片缩放。 示例1:使用CSS填充父容器背景 .c…

    css 2023年6月10日
    00
  • 网页表格或div层在网页中被撑开解决之道

    网页中的表格或DIV层在内容较多时可能出现被撑开的情况,导致页面布局混乱,影响用户体验。下面是解决这种情况的完整攻略。 方法一:使用CSS属性overflow CSS属性overflow可以用来控制元素溢出的部分如何显示,可以将其设置为auto或scroll,来自动或手动添加滚动条。 示例一: table { width: 100%; overflow-x:…

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