如何重置httpsession的超时计数器



除了通过服务HTTP请求以外,有没有办法重置HTTPSession的超时计数器?

我正在寻找

之类的东西
session.resetTimeout();

所以,您的 HttpSession没有具体的HttpServletRequest

you 可以使用当前非活动时间和最大不活动间隔的总和来增加最大不活跃的间隔。

int maxInactiveInterval = session.getMaxInactiveInterval();
int currentInactiveTime = (int) (System.currentTimeMillis() - session.getLastAccessedTime() / 1000);
session.setMaxInactiveInterval(maxInactiveInterval + currentInactiveTime);

但是,这需要一些过滤器将其重置回到每个请求的默认值时,当其值从默认值关闭时。

session.setMaxInactiveInterval(defaultMaxInactiveInterval);

在Servlet 3.0上,可以通过SessionCookieConfig#getMaxAge()获得此值。

int defaultMaxInactiveInterval = getServletContext().getSessionCookieConfig().getMaxAge();

相关内容

  • 没有找到相关文章

最新更新