2010-04-20 55 views
2

我认为谷歌应用程序引擎不支持会话(上次我检查是几个月前)。现在,我又为它寻找,看到这一点:现在支持Google应用引擎会话吗?

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

表示支持:

javax.servlet.http.HttpSession 

这是否意味着我们有servlet会话的支持呢?如果是这样,有没有人有一个使用这个例子?我想创建自己的用户类,并支持用户登录和会话管理(我知道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 --------------------------- ----------------

它的工作原理,

感谢

+0

您可以编写您的用户存储在会话登录的servlet或者更丰富的客户端,只需简单的HTML就可以使服务器端无状态并远离Kludgy会话机制。 – 2010-04-20 13:22:18

+0

如何?你的意思是用户登录状态只存储在客户端上?就像在GWT中一样,只有一个'页面',在urls之间没有切换 - 所以javascript存储用户交互整个生命周期的登录用户对象?谢谢 – user246114 2010-04-20 14:16:01

回答

2

会议的支持是一个功能出来GAEJ盒子。在调度员的servlet

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

,然后,这样的代码控制:如果你使用像GWT客户

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