Поддерживаются ли сеансы ядра приложений Google? - PullRequest
2 голосов
/ 20 апреля 2010

Я думал, что Google App Engine не поддерживает сессии (последний раз, когда я проверял это несколько месяцев назад). Теперь я снова искал это и увидел это:

http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions

говорит, что поддерживает:

javax.servlet.http.HttpSession

означает ли это, что у нас теперь есть поддержка сеансов сервлетов? Если так, у кого-нибудь есть пример использования этого? Я хотел создать свой собственный класс User и поддерживать логин пользователей и управление сеансами (я знаю, что механизм приложений уже поддерживает это для пользователей Google, но хотел, чтобы мои собственные пользователи отвечали различным требованиям)

Спасибо!

------------ Обновление ---------------------------------- ---------

Я поместил это в свой GreetingServiceImpl, просто чтобы дать ему шанс:

public void login(String username, String password) {
    HttpSession session = getThreadLocalRequest().getSession(false);
    session.setAttribute("username", username);
}

затем я пытаюсь выяснить, можно ли обнаружить сеанс на моей целевой странице jsp, после обновления страницы в моем браузере:

<body>
<%
  String username = null;
  HttpSession mysession = request.getSession(false);
  if (mysession.getAttribute("username") != null) {
      username = (String)mysession.getAttribute("username");
  }
%>

но кажется, что страница jsp не может разрешить тот факт, что пользователь вошел в систему. Я хотел бы иметь возможность выяснить, что пользователь вошел в систему на целевой странице при обновлении пользователя, если это возможно.

Спасибо

------------ Обновление 2 --------------------------------- ----------

Работает,

Спасибо

1 Ответ

2 голосов
/ 20 апреля 2010

Поддержка сеансов - это функция, встроенная в GAEJ.

Вы можете написать сервлет входа, который хранит вашего пользователя в сеансе:

HttpSession session = request.getSession();
if(ProvidedUserParametersAreOK){
   session.setAttribute("user", "name");

, а затем кодируйте элемент управления следующим образом в вашем сервлете диспетчера:

HttpSession session = request.getSession(false);
 if (session.getAttribute("user") != null){
    User user=(User)session.getAttribute("user");
    //user logged in 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...