如何从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可以做这项工作,但我经常认为这真的是老派。我不知道为什么。
我对任何实现这种客户端-服务器通信的提议都持开放态度。
EDIT:我想找到的理想解决方案是任何能够从客户端在服务器上直接调用方法的解决方案。例如,一个很好的解决方案是能够从Javascript调用Web服务,或者找到一个可以直接远程调用Java方法的框架。
现在,访问服务器端方法的标准方式是通过WebServices。
- 用Java编写业务逻辑
- 添加一个RESTWebservice层,将请求传递给java方法并返回响应
- REST库将提供servlet实现来路由您的请求——您只需要放置一些注释(试试Jersey RESTapi)
- REST库还将把java对象转换为JSON自动(使用类似Jackson的JSON库)
查看此REST Web服务教程:http://www.vogella.com/tutorials/REST/article.html
web服务就像一个web URL,只是它返回JSON文本而不是HTML。要调用该服务,您必须放置一个普通的Ajax请求,并将响应解释为JSON。我更喜欢使用JQuery,使它变得简单和跨浏览器安全。
- 调用此方法来放置ajax请求(异步)$.getJSON(url,callbackFn)
- 定义回调函数
-
收到响应时将调用该函数
函数回调Fn(responseObj){alert(JSON.toString(response))
}
示例:http://www.pureexample.com/jquery/get-json.html
我知道在java的分布式系统中直接调用java方法的唯一方法是使用RMI。但这种解决方案对你不利。首先,因为我认为只有当系统(客户端和服务器)都是Java系统时,才可以使用RMI。其次,安卓平台默认不支持rmi。
人们通常使用Web服务来解决这个问题。我建议您使用JSON如何在客户端和服务器之间传输格式,因为您必须在浏览器中处理此问题,并且使用JSON可以方便您的生活,而不是使用XML。
还有一个提示:我还建议您使用GSON库在JSON文件和Java模型之间进行转换/解析。您可以在此处获得更多信息,了解其工作原理:https://sites.google.com/site/gson/gson-user-guide
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 在phonegap中为android调用onload函数的最佳方式
- 在Android中从signalR调用服务器端功能
- 从javascript中调用的Android函数中获取值,并将其返回给js
- 如何使用phonegap在android中调用asp.net Web服务
- 如何从 AngularJS 指令调用 Android 方法
- TCP或WebSockets可以通过Android和iOS设备上的Javascript调用
- 从javascript调用android原生java代码
- 如何使用phonegap插件从android调用javascript函数
- 可以't从android手机调用全局javascript函数
- cordova应用程序是否可以调用android特定的操作
- 使用 webview 从 JavaScript 调用 Android 中的 Java 方法
- 在调用 android javascript 方法时传递 json 对象
- 从AngularJS控制器调用Android函数
- 倾听Javascript函数调用-Android
- 如何从phonegap HTML页面调用Android函数
- 如何从PhoneGap调用Android Activity
- Phonegap插件不能调用android的本地函数
- 从嵌入式WebView的javascript函数调用android原生api
- 使用JavaScript调用Android活动的方法