2010-04-20 53 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