繁体   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