Могу ли я получить доступ к данным, сохраненным в сеансе (ранее сервлетом), со страницы, созданной с помощью GWT? - PullRequest
0 голосов
/ 08 января 2012

У меня есть сценарий, в котором я пытаюсь зарегистрировать пользователя в своей базе данных, используя стандартный сервлет ... Теперь я хочу, чтобы после входа в систему должна была открыться веб-страница, созданная GWT, и она должна отображать идентификатор электронной почты зарегистрированного пользователя.

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

У меня есть пара вопросов об этом подходе ...

Во-первых, это безопасно? Есть ли какой-нибудь лучший способ выполнить аутентификацию пользователя?

Во-вторых, как мне получить доступ к переменной сеанса с веб-страницы, созданной с помощью GWT? Эта переменная должна быть доступна в этой функции -

public void onModuleLoad()

Или переменная должна быть доступна из другого места на веб-странице?

Я использую Google App Engine для Java / GWT и Google Identity Toolkit (GIT) для аутентификации.

Ответы [ 2 ]

2 голосов
/ 08 января 2012

метод onModuleLoad () является начальной точкой вашего клиентского приложения, написанного на gwt (который по сути является javascript)

Итак, вы спрашиваете, как я могу прочитать значения с сервера в Javascript.

В вашей ситуации с GWT это можно сделать разными способами:

  • сделать вызов RPC GWT и заставить сервер вернуть необходимые данные
  • встроить данные с динамической страницейи читать его с помощью словаря GWT или оверлеев Javascript
1 голос
/ 08 января 2012

Переменные сеанса не связаны с GWT, они связаны с JAVA.Если вы хотите использовать переменные сеанса, вы должны использовать их в пакете Server вашего GWT проекта.

Установить переменную сеанса:

session.setAttribute("MySessionVariable", 3);

Получить переменную сеанса

int param = (Integer) session.getAttribute("MySessionVariable");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...