除了通过服务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();