现在支持Google应用引擎会话了吗?

时间:2010-04-20 13:17:25

标签: java google-app-engine

我认为谷歌应用引擎不支持会话(上次我检查的是几个月前)。现在我再次寻找它并看到了这个:

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

表示支持:

javax.servlet.http.HttpSession

这是否意味着我们现在有servlet会话支持?如果是这样,有没有人有这个使用它的例子?我想创建自己的User类并支持用户登录和会话管理(我知道app引擎已经为谷歌用户提供支持,但是我希望自己的用户满足各种需求)

谢谢!

------------更新---------------------------------- ---------

我把它放在我的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页面无法解决用户登录的事实。我希望能够在用户刷新时找出用户登录到目标网页,如果可能的话。

由于

------------ Update 2 --------------------------------- ----------

有效,

由于

1 个答案:

答案 0 :(得分:2)

会话支持是GAEJ开箱即用的一项功能。

您可以编写将用户存储在会话中的登录servlet:

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

然后,在您的调度程序servlet中编写这样的控件:

HttpSession session = request.getSession(false);
 if (session.getAttribute("user") != null){
    User user=(User)session.getAttribute("user");
    //user logged in