当前位置: 首页 > wzjs >正文

b2b外贸网站建设电脑系统优化软件十大排名

b2b外贸网站建设,电脑系统优化软件十大排名,陕西建设教育培训网,wordpress slides目录 手动更新过期时间自定义 HttpSessionListener自定义 RedisOperationsSessionRepository 在 Spring Boot 集成 Redis 存储 Session 的场景下,调用 setAttribute 方法本身不会重置 Session 的过期时间。Session 的过期时间主要由以下配置决定: serve…

目录

      • 手动更新过期时间
      • 自定义 `HttpSessionListener`
      • 自定义 `RedisOperationsSessionRepository`

在 Spring Boot 集成 Redis 存储 Session 的场景下,调用 setAttribute 方法本身不会重置 Session 的过期时间。Session 的过期时间主要由以下配置决定:

  • server.servlet.session.timeout 配置:这是 Spring Boot 提供的通用配置项,用于设置 Session 的超时时间,单位为秒。

如果希望在每次调用 setAttribute 时重置 Session 的过期时间,可以通过以下方式实现:

手动更新过期时间

在调用 setAttribute 后,获取当前 Session 的剩余过期时间,并重新设置该过期时间。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpSession;@RestController
public class SessionController {@GetMapping("/setSessionAttribute")public String setSessionAttribute() {HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession();session.setAttribute("key", "value");session.setMaxInactiveInterval(1800); // 设置新的过期时间(秒)return "Session attribute set and timeout updated";}
}

自定义 HttpSessionListener

实现 HttpSessionListener,在监听到 Session 属性变更事件时,重置过期时间。

import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;@Component
public class SessionListener implements HttpSessionListener {@Overridepublic void sessionCreated(HttpSessionEvent se) {}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {}@Overridepublic void attributeAdded(HttpSessionBindingEvent event) {event.getSession().setMaxInactiveInterval(1800); // 设置新的过期时间(秒)}@Overridepublic void attributeRemoved(HttpSessionBindingEvent event) {}@Overridepublic void attributeReplaced(HttpSessionBindingEvent event) {event.getSession().setMaxInactiveInterval(1800); // 设置新的过期时间(秒)}
}

自定义 RedisOperationsSessionRepository

自定义 RedisOperationsSessionRepository,在保存 Session 时更新过期时间。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.session.data.redis.RedisOperationsSessionRepository;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;@Configuration
@EnableRedisHttpSession
public class RedisConfig {@Value("${server.session.timeout}")private int sessionTimeout = 1800;@Beanpublic RedisOperationsSessionRepository sessionRepository(RedisConnectionFactory connectionFactory) {RedisOperationsSessionRepository repository = new RedisOperationsSessionRepository(connectionFactory);repository.setDefaultMaxInactiveInterval(sessionTimeout);return repository;}
}

通过以上方法,可以在调用 setAttribute 时重置 Session 的过期时间。

http://www.dtcms.com/wzjs/76161.html

相关文章:

  • 做诈骗网站犯什么法搜索引擎营销的基本流程
  • 莱芜网站制作哪家好seo的概念
  • 聚云测网站怎么做的口碑营销的经典案例
  • 男女做a视频网站推广信息发布平台
  • 公司有些网站打不开搜索引擎优化的七个步骤
  • 使用wordpress的企业seo推广排名平台有哪些
  • 建筑模型网站环球网广东疫情最新消息
  • 网站设计开发方案安卓优化大师官网
  • 焦作北京网站建设软文是什么
  • 织梦cms怎么打不开网站免费建站系统
  • 电脑自带的做网站叫什么软件网络推广软件哪个好
  • 国务院建设行政主管部门网站百度app登录
  • 做网站一般多少平台软件定制开发
  • 网站制作教程:初学者肇庆seo
  • 网站建设 搜狐号百度引擎入口官网
  • 群晖ds216j能否做网站百度热榜排行
  • 网站建设可行性搭建网站步骤
  • 用什么网站做头像有哪些平台可以免费发广告
  • 沧州网站建设费用站长工具高清无吗
  • 杭州的网站设计公司近期国内热点新闻事件
  • 怎么注册公司名字和商标seo教程技术
  • 设计开发高中同步测控优化设计答案
  • 网站产品怎么改顺序永久免费自助建站软件
  • 想做网站去哪里做公司网络营销推广方案
  • 网站你懂我意思正能量免费软件广告seo是什么意思
  • 关注济南网站建设大连seo顾问
  • 深圳挖矿app开发优化提升
  • 怎么区分网站是模板做的百度精准推广
  • 天津河北做网站的公司南宁企业官网seo
  • 一重大连工程建设有限公司官方网站seo推广软件