【发布时间】:2022-01-14 20:02:17
【问题描述】:
情况如下: 我在 tomcat 中运行一个 web 应用程序,会话超时是 15 分钟。
所以所有请求都会刷新它的会话超时。
我有一个来自前端的请求,路径为“/not/refresh/sessiontimeout”
我希望“/not/refresh/sessiontimeout”请求不要刷新会话超时。
如何实现?
【问题讨论】:
标签: java spring http tomcat servlets
情况如下: 我在 tomcat 中运行一个 web 应用程序,会话超时是 15 分钟。
所以所有请求都会刷新它的会话超时。
我有一个来自前端的请求,路径为“/not/refresh/sessiontimeout”
我希望“/not/refresh/sessiontimeout”请求不要刷新会话超时。
如何实现?
【问题讨论】:
标签: java spring http tomcat servlets
你不能,但你可以修改会话的长度以获得类似的效果:
final HttpServletRequest req = ...;
final HttpSession session = req.getSession();
final long idleTimeMs = Instant.now().toEpochMilli() - session.getLastAccessedTime();
final int maxInactiveSec = session.getMaxInactiveInterval() - (int)(idleTimeMs / 1000);
session.setMaxInactiveInterval(maxInactiveSec);
【讨论】: