2010-11-14 86 views
1

我正在創建一個使用REST Web服務的Web服務。客戶端代碼是用HTML/JavaScript編寫的。我的困境是我是否應該通過Ajax或通過Servlets/JSP直接調用REST webservices

  1. 應該直接使用REST資源使用AJAX調用?

  2. 我應該創建的Servlet/JSP的(如REST調用將被製作和數據將被髮送到客戶端(AJAX/JAVSCRIPT))。

我已經看到很多網絡應用程序遵循第二個程序,但在我看來,它是以間接的方式做第一個相同的事情。

第一次使用第二個程序有什麼優勢嗎?

HTML/javaScript客戶端使用REST服務的標準方式是什麼?

請讓我知道,如果我甚至想在正確的方向,如果不是請給你寶貴的見解。

回答

2

您可以使用任一種方法,但請注意,瀏覽器將對腳本實施相同來源策略,因此如果REST服務位於與腳本不同的域上,則需要在同一域中使用servlet /腳本腳本代理到其他域的調用。我懷疑這就是爲什麼你看到使用第二種方法。

如果不是所有的響應都是需要的,代理/中間人servlet也可能有用;您可以使用該servlet去除JavaScript所不需要的信息,以減少發送到瀏覽器的數據量。

0

直接訪問通過AJAX的資源(一個或多個)開銷較少的明顯的好處,是恕我直言,更優雅的解決方案,然而同樣重要的是要注意,並非所有的瀏覽器支持PUT和本地DELETE請求。

爲了解決這個問題,你可能想要支持常見的「_method」黑客攻擊。這stackoverflow question提到這種方法。