簡體   English   中英

如何從HTML / JS和android調用Java服務器端方法?

[英]How to call Java server side methods from HTML/JS and android?

我想用Java編碼的服務器,一個HTML / JS客戶端(具有確定的框架)和一個Android客戶端創建一個人事項目。

我希望能夠僅通過一種實現從這兩個客戶端調用Java方法。 我可以使用哪種方法?

我考慮過Websocket ,但是似乎我只能發送消息,然后服務器端必須解析它並進行方法調用。 那是可行的,但我想找到一個更好的解決方案。

使用AJAX(我從未真正使用過)似乎有相同的問題。 發送了http請求,但是我需要一種解析器來讀取請求並將其分派。

我知道servlet可以完成這項工作,但是我常常認為這確實是老派的。 我不知道為什么。

我真的很樂意實現此客戶端-服務器通信的任何主張。

編輯 :我想找到的理想解決方案是可以從客戶端在服務器上進行直接方法調用的任何方法。 例如,一個很好的解決方案是能夠從Javascript調用Web服務,或者找到一個框架,通過該框架可以直接遠程調用Java方法。

目前,訪問服務器端方法的標准方法是通過WebServices。

  1. 用Java編寫您的業務邏輯。
  2. 添加一個REST Web服務層,以將請求傳遞給java方法並返回響應。
  3. REST庫將提供servlet實現來路由您的請求-您只需要添加一些注釋(請嘗試Jersey REST api)
  4. REST庫還將自動將Java對象轉換為JSON(使用Jackson之類的JSON庫)

在REST Web服務上查看本教程: http : //www.vogella.com/tutorials/REST/article.html

Webservice就像Web URL一樣,只不過它返回JSON文本而不是HTML。 要調用該服務,您必須發出一個普通的Ajax請求並將響應解釋為JSON。 我更喜歡使用JQuery來簡化和跨瀏覽器的安全。

  1. 調用此方法放置ajax請求(異步)$ .getJSON(url,callbackFn);
  2. 定義一個回調函數
  3. 收到響應后將調用該函數

    函數callbackFn(responseObj){alert(JSON.toString(response));
    }

例如: http : //www.pureexample.com/jquery/get-json.html

我知道在Java的分布式系統中直接調用Java方法的唯一方法是使用RMI。 但是此解決方案對您不利。 首先,因為我認為您只能在兩個系統(客戶端和服務器)均為Java系統時才能使用RMI。 其次,默認情況下,Android平台不支持rmi。

人們通常解決此問題的方法是使用Web服務 我建議您使用JSON如何在客戶端和服務器之間傳輸格式,因為例如您將必須如何在瀏覽器中處理該格式以及使用json可以簡化您的生活,而使用XML。

更多提示:我還建議您使用GSON庫在JSON文件和Java模型之間進行轉換/解析。 您可以在此處獲取更多信息,了解其工作原理: https//sites.google.com/site/gson/gson-user-guide

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM