Я хотел бы знать, когда точно HttpSession будет истекать (не то же самое, что уничтожено)?
Я пытаюсь выяснить, даст ли session.getLastAccessedTime() + (session.getMaxInactiveInterval() * 1000) точное время истечения сеанса в миллисекундах каждый раз, когда приходит запрос с одним и тем же идентификатором сеанса!
Из javadocs:
длинный getLastAccessedTime()
Returns the last time the client sent a request associated with this session, as the number of milliseconds since midnight January 1, 1970 GMT, and marked by the time the container received the request.
интервал getMaxInactiveInterval()
Returns the maximum time interval, in seconds, that the servlet container will keep this session open between client accesses.
Допустим, у нас есть следующее:
Treq1 — the time the container received the 1st request
(HttpSession.lastAccessedTime)
Tresp1 — the time the container sends the 1st response
Preq1 — the time period between Treq1 and Tresp1 (the time period that the server processes the 1st request
Treq2 — the time the container received the 2nd request
(HttpSession.lastAccessedTime)
Preq1req2 — the time period between Treq1 and Treq2 (the time between requests entering the container)
Presp1req2 - the time period between Tresp1 and Treq2 (the time between the 1st response exiting the container and the 2nd request entering the container)
Итак, когда сервер считает сеанс просроченным? Когда:
1. Treq1 + maxInactiveInterval ‹ Treq1 + Preq1req2 => maxInactiveInterval ‹ Preq1req2
2 . Tresp1 + maxInactiveInterval ‹ Tresp1 + Presp1req2 => maxInactiveInterval ‹ Presp1req2
Эта часть, the servlet container will keep this session open between client accesses
, немного сбивает с толку. Имеется ли в виду между запросами, поступающими в контейнер, или между исходящим ответом и входящими запросами?
Кроме того, я знаю, что сеанс может быть не уничтожен в точное время истечения срока действия, но пока не уверен, что он уничтожается до того, как в контейнере произойдет какая-либо логика обработки запроса. Я имею в виду запрос, который содержит идентификатор сеанса с истекшим сроком действия.
С уважением,
Деспот