除了通过提供 HTTP 请求之外,有没有办法重置 HTTPSession
的超时计数器?
我正在寻找类似的东西
session.resetTimeout();
最佳答案
那么,您手头有 HttpSession
却没有具体的 HttpServletRequest
?
您可以使用 max inactive interval 和 current inactive time 的总和来增加 max inactive interval 。
int maxInactiveInterval = session.getMaxInactiveInterval();
int currentInactiveTime = (int) (System.currentTimeMillis() - session.getLastAccessedTime() / 1000);
session.setMaxInactiveInterval(maxInactiveInterval + currentInactiveTime);
然而,这需要一些 filter 当它的值从默认值关闭时,它会在每次请求时再次将其重置回默认的最大非 Activity 间隔。
session.setMaxInactiveInterval(defaultMaxInactiveInterval);
在 Servlet 3.0 上,此值可通过
SessionCookieConfig#getMaxAge()
获得。int defaultMaxInactiveInterval = getServletContext().getSessionCookieConfig().getMaxAge();
关于java - 如何重置 HTTPSession 的超时计数器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13233299/