2011-09-28 71 views
1

我們計劃爲部分下的「使用Tomcat與Apache httpd和代理」通行證登錄信息

基本上在 http://code.google.com/webtoolkit/doc/1.6/DevGuideServerCommunication.html#DevGuideRPCDeployment 解釋來部署我們的GWT模塊中,我們配置了Apache/PHP服務器將請求傳遞給與URL的一部分匹配的Tomcat/GWT服務器。這符合預期。 現在我們想將當前登錄用戶的信息從Apache/PHP傳遞給GWT模塊。

我最初的想法是從一個PHP頁面加載GWT模塊(通過包括它的nocache.js)並且包含一個GWT模塊可以讀取的登錄令牌。 但我不確定是否安全地讀取DOM值並將其視爲登錄令牌。

任何建議什麼是最好的辦法嗎? 謝謝。

回答

4

恕我直言,使用從apache/php傳遞給您的gwt項目的登錄令牌是最好的主意。要通過此令牌,您有三種可能性:

第一個:您可以使用Cookie傳遞您的令牌。寫下您的令牌到一個cookie,並在您的GWT上下文讀一遍:

import com.google.gwt.user.client.Cookies; 
Collection<String> cookies = Cookies.getCookieNames(); 

一個例子在處理來自GWT你可以在GWT-Showcase找到餅乾。

第二個:而不是寫你的令牌一個cookie的,你可以用一個HTTP GET再次你的GWT-範圍內傳遞和閱讀:

// returns whole query string 
public static String getQueryString() { 
    return Window.Location.getQueryString(); 
} 

// returns specific parameter 
public static String getQueryString(String name) { 
    return Window.Location.getParameter(name); 
} 

這種方法是-IMHO-那個你永遠不應該選擇的人!

第三個:而不是HTTP GET,你也可以使用HTTP POST。 HTTP POST被髮送到服務器。所以你必須用一個簡單的servlet在服務器端處理請求。這可以作爲singelton實現,因此可以從您的GWT服務器上下文中讀取。這種方法有點複雜,並且帶來了很多工作,因爲您必須將您的信息傳遞迴GWT客戶端上下文。

哪個版本最適合你,取決於你項目的細節。通常我會說,Cookie版本是最好的。

+0

感謝您的回覆。我現在在PHP頁面上使用一個隱藏的輸入值來插入一個隨機標記並將該標記的用戶標識保存回數據庫中。在加載時,GWT模塊將讀取並刪除它。 – Satish