Контейнер сервлета, как правило, делает недействительным и удаляет сеансы, время которых истекло. Вам действительно не нужно беспокоиться об этом вообще. Однако вы можете настроить время ожидания сеанса в web.xml
следующим образом:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Значение указывается в минутах, а значение по умолчанию составляет 30 минут. Это означает, что если клиент долго не запрашивал страницу, связанную с сеансом, сеанс будет признан недействительным.
Если вы хотите ограничить количество одновременно открытых сессий, вам нужно реализовать HttpSessionListener
и сделать увеличение / уменьшение на sessionCreated()
и sessionDestroyed()
соответственно. Если вы хотите отслеживать фактические ссылки HttpSession
, а также по некоторым неопределенным причинам, убедитесь, что вы храните их в WeakHashMap
, чтобы они автоматически удалялись при аннулировании / разыменовании в памяти сервера, иначе это приведет к загрязнению и переполнению памяти сервера.
Еще раз, вам не нужно беспокоиться о ведении сессий. Пусть веб-контейнер выполняет свою задачу, для чего он и предназначен.