2011-10-17 17 views
1

我在我的GWT應用程序(從GAE運行)中爲桌面和移動客戶端使用不同的實現。一種解決方案是GWT中的用戶代理檢測。該解決方案將Desktop和Mobile實施加載到客戶端中。在GAE上向Mobile和Desktop客戶端返回不同的GWT插件

更清潔的解決方案將是服務器servlet上的用戶代理檢測。此解決方案僅返回客戶端的正確實施。

如何從GAE返回這個不同的實現?

回答

3

我已經做到了。你聲明的歡迎頁面映射到爲servlet的

<welcome-file-list> 
     <welcome-file>/urlToSomeServlet</welcome-file> 
    </welcome-file-list> 

在這個servlet你的userAgent值的網址:

String userAgent = request.getHeader("User-Agent"); 

然後,根據該值,您可以向前或重定向到您的桌面網頁或移動頁面:

request.getRequestDispatcher("desireedHtmlPage.html").forward(request,response); 

response.sendRedirect("desireedHtmlPage.html"); 

轉發將使瀏覽器認爲他仍然處於最初的請求,它仍然會顯示歡迎頁面url,而做重定向會實際告訴瀏覽器他被重定向到另一個資源,以便顯示資源的url在導航欄中。

0

這裏也有一個很好的例子GWT 2.1 Seminar 2010。這使用服務器端用戶代理檢查回退查詢參數(m = 1)。它在應用程序gwt.xml文件中執行此操作。