HTTPSession
HTTP 要求を処理する以外に、タイムアウト カウンターをリセットする方法はありますか?
私は次のようなものを探しています
session.resetTimeout();
HTTPSession
HTTP 要求を処理する以外に、タイムアウト カウンターをリセットする方法はありますか?
私は次のようなものを探しています
session.resetTimeout();
それで、あなたはHttpSession
コンクリートを持っていなくても手元にありHttpServletRequest
ますか?
現在の非アクティブ時間と最大非アクティブ間隔の合計で最大非アクティブ間隔を増やすことができます。
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();