3

HTTPSessionHTTP 要求を処理する以外に、タイムアウト カウンターをリセットする方法はありますか?

私は次のようなものを探しています

session.resetTimeout();
4

1 に答える 1

3

それで、あなたは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();
于 2012-11-05T13:47:23.273 に答える