Сеанс HTTP поддерживается файлом cookie HTTP, который связан с конкретным доменом и по умолчанию также с контекстным путем. Поэтому, если вы потеряете сеанс, это может быть вызвано переходом в другой домен и / или контекстный путь. Однако также возможно аннулировать сеанс программно, вызвав HttpSession#invalidate()
.
Таким образом, чтобы решить вашу проблему, вам нужно убедиться, что вы переходите на страницу в том же домене и контексте и что ваш код на стороне сервера не вызывает ненужных вызовов invalidate()
куда-то.
Если проблема на самом деле вызвана переключателем в контекстном пути, и вы хотите, чтобы он был исправлен, вам необходимо настроить его в servletcontainer. Неясно, какой из них вы используете, но, например, в Apache Tomcat вы бы хотели установить атрибут emptySessionPath
элемента <Connector>
в /conf/server.xml
равным true
. Также см. этот документ .