java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot设置session过期时间

springboot项目如何设置session的过期时间

作者:yyk的萌

这篇文章主要介绍了springboot项目如何设置session的过期时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

这里我们只介绍springboot2.0的session时间设置

Duration转换字符串方式,默认为正,负以-开头,紧接着P,(字母不区分大小写)D :天 T:天和小时之间的分隔符 H :小时 M:分钟 S:秒 每个单位都必须是数字,且时分秒顺序不能乱。

例如PT10M,就是设置为10分钟,

下面这种方式是设置24小时的

在这里插入图片描述

错误的设置是下面这种方式,这种是不起效果的

server.servlet.session.timeout=30s

或者使用第二种方式

session1.setMaxInactiveInterval(60*60);//设置session一小时后失效

springboot设置session失效的几种方式

如果是1.5.6版本

这里 可以在application中加上bean文件

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class DemoApplication {undefined
public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}
//设置session过期时间
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        public void customize(ConfigurableEmbeddedServletContainer container) {
            container.setSessionTimeout(7200);// 单位为S
        }
    };
}
}

在这里插入图片描述

第二个

还可以设置

application.yml

server:
port: 8081
servlet:
session:
timeout: 60s

在这里插入图片描述

第三个

@RestController
public class HelloController {undefined
@PostMapping("test")
public Integer getTest(@RequestParam("nyy")String nn, HttpServletRequest httpServletRequest ){
    HttpSession session = httpServletRequest.getSession();
   session.setMaxInactiveInterval(60);
    int maxInactiveInterval = session.getMaxInactiveInterval();
    long lastAccessedTime = session.getLastAccessedTime();
    return maxInactiveInterval;
}
}

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文