2012-05-23 2 views
1

Я довольно новичок в разработке GAE/J и стараюсь использовать GAE Seesion. Как-то, когда я пытаюсь получить значение, хранящееся в сеансе, его возврат возвращается только нулевым. Вот что у меня есть.Сессия не работает - GAE/J

У меня есть loginservlet, где я устанавливаю переменную String на сеанс.

HttpSession hs=req.getSession(true); 
if(hs.isNew()){ 
hs.setAttribute("logininfo", "mylogininfo"); 
} 

я пытаюсь получить эту информацию внутри JSP страницы, как показано ниже -

<% 
HttpSession hs = request.getSession(false); 
String logininfo = (String) hs.getAttribute("logininfo"); 
%> 

Я всегда получаю «logininfo» строки в нуль - не знаю, почему.

У меня сессия включена в Appengine-web.xml

<sessions-enabled>true</sessions-enabled> 

Выше только пробный пример, который я пытаюсь запустить, я действительно хочу передать «» на маркер доступа JSP страницу из сервлета для facebook входа в систему.

ответ

1

Я не знаю, в каком порядке называются ваши страницы, но наиболее вероятным виновником является использование метода isNew().

Сессии устанавливаются, когда сервер отправляет куки-файлы в браузер пользователей. Это происходит при первом запросе любой страницы, авторизованной или несанкционированной.

Итак, isNew() имеет значение только при первом запросе на любой из ваших страниц, в то время как пользователь еще не получил никакого файла cookie. При любом последовательном запросе (даже через несколько дней, зависит от настройки Cookie Expiration: в GAE admin), он будет ложным.

+0

, который решил проблему, большое вам спасибо. – Jagdish

Смежные вопросы