Отменить сессию, как правильно использовать? - PullRequest
1 голос
/ 10 сентября 2010

Когда вы звоните getPageContext().getSession().invalidate()?

Я попытался вызвать это на странице выхода из системы, затем переместить его обратно на главную страницу, и оно выдает исключение.

Как назначитьновый сеанс сразу после?

Документация гласит:

Невозможно уничтожить сеанс и создать сеанс по тому же запросу, поскольку создание нового сеанса включает в себяотправка файлов cookie сеанса назад. отправка файлов cookie сеанса назад.

Я думал, что размещение на главной странице уже квалифицируется как другой запрос, не так ли?

Ответы [ 3 ]

2 голосов
/ 10 сентября 2010

У Бен Наделя была серия постов, связанных с "убийственной" сессией.Насколько я помню, это не так просто, как один вызов метода.Я бы погуглил их.

2 голосов
/ 10 сентября 2010

getPageContext (). GetSession (). Invalidate () лишит законной силы сеанс, последующий запрос с этим sessionID получит ошибку при попытке доступа к области действия сеанса, но память не будет восстановлена ​​до фактического времени ожидания сеанса.

То, что вы можете сделать, это session.setMaxInactiveInterval (int) установить для него очень низкое число в мс, чтобы он сразу истекал и высвобождал память. Затем сделайте cflocation и для безопасного использования используйте addToken = "no"

0 голосов
/ 10 сентября 2010

Вы можете использовать любой из них для функции выхода из системы пользователя

1) Session.Remove (ключ)

2) Сессия (ключ) = ничего

Оба в порядке. Но позже будет лучше, если пользователь захочет повторно войти в систему или вы на самом деле .... экономите усилия по воссозданию нового ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...