переменные сеанса в случае перенаправления URL - PullRequest
1 голос
/ 14 декабря 2011

У меня есть приложение, работающее на сервере Tomcat, которое перенаправляется на другой веб-сайт для аутентификации по паролю (и сохраняет некоторые данные), а затем перенаправляется обратно на мой сервер Tomcat

EX

1 до A
От А до В
B до 2

Где 1 и 2 страницы моего приложения
A и B - страницы других приложений

Я устанавливаю переменную сеанса на своей странице 1, используя

HttpSession session = request.getSession(true);
session.setAttribute("loginUser", "loginUser");

и использовать его на странице 2, используя

String loginUser= session.getAttribute("loginUser");

, но для 2

получено исключение нулевого указателя

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Если вы выполняете перенаправление в том же контексте (приложение), лучше используйте RequestDispatcher, чтобы сделать forward (передавая request и response). Таким образом, вы проходите сессию до конца.

В противном случае я предлагаю не хранить loginUser в сеансе, а передать переменную идентификатора пользователя в виде некоторой интеллектуальной (и запутанной) строки в другое приложение, написать механизм для извлечения пользователя, вошедшего в сеанс, и продолжить оттуда. Это называется Single-Sign On.

0 голосов
/ 14 декабря 2011

это может происходить из-за

'Сеанс является переходным, и его время жизни заканчивается, когда происходит одно из следующих действий:

A user leaves your site and the user's browser does not accept cookies.

A user quits the browser.

The session is timed out due to inactivity.

The session is completed and invalidated by the servlet.

The user logs out and is invalidated by the servlet.'

относится http://docs.oracle.com/cd/E15523_01/web.1111/e13712/sessions.htm

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