2011-02-18 97 views
1

我有一些JavaScript,我想執行一個REST請求(GET)到我的servlet。 我想發在下面的格式記錄的格式...在我發送的每條記錄REST請求到JAVA Servlet

/id1/vara/varb/varc/timedelta1,timedelta2,timedelta3,....,timedeltaN/ 

所以基本上不會有5屬性。我需要批處理這些 - 我在單個GET請求中發送多個記錄。我的獲取網址可能看起來有點像以下內容。

myservletname/id1/vara/varb/varc/timedelta1,timedelta2,timedelta3/id2/vara/varb/varc/timedelta1,timedelta2,timedelta3/id3/vara/varb/varc/timedelta1,timedelta2,timedelta3/ 

我知道在URL字符串大約2000個字符的限制所以要保平安,我會確保URL的長度小於這個。 在上面的例子中,3條記錄被髮送到servlet。

我想知道如何在服務器端處理這些數據。在Java之前,還沒有真正使用過REST。我需要在服務器端處理這些URL以提取數據?

感謝

+0

您是否考慮過使用JAX-RS框架(如Jersey)來實現您的RESTful服務? http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html – 2011-02-18 11:40:19

回答

1

基本上

public class RestServlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response) { 
     String uri = request.getPathInfo(); 
     Pattern p = Pattern.compile(
      "/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(\d+)(?:,(\d+))*/" 
     ); 
     Matcher m = p.matcher(uri); 
     if (m.matches()) { 
      String id = m.group(1); 
      String vara = m.group(2); 
      String varb = m.group(3); 
      String deltas = m.group(4); 

      // etc 
     } 
    } 
} 

這不是如何做一個很好的模式,但它是簡單易懂的人不熟悉的Servlet

0

你應該認真考慮使用POST代替GET這一點。 REST(和URL)不是爲此目的而設計的。

+1

不是POST還是REST? – gigadot 2011-02-18 14:14:45

1

您可以使用JAX-RS或Restlets代替一個servlet

+0

Restlets看起來很有用,謝謝! – 2011-02-18 12:05:47