从 JS 访问 Java 方法

Posted

技术标签:

【中文标题】从 JS 访问 Java 方法【英文标题】:Access Java methods from JS 【发布时间】:2017-02-09 03:02:36 【问题描述】:

我的 Web 应用程序使用第三方 REST API,如 Amazon API、Qwintry Logistic API 等。我已经使用访问这些 API 的方法创建了服务层,但我还需要使用 javascript 中的 API。

我认为最好的方法是从 JS 访问我的服务方法(用 Java 编写),而不是编写在从 JS 调用后调用这些方法的控制器:

JS代码发出ajax请求 Java 控制器调用所需的服务方法 服务方法向 API 发出请求 API 发回响应同样长满错误和错误

那么问题是我可以以及如何从 JS 代码中调用 Java 方法吗?

【问题讨论】:

我假设 JS 代码在客户端运行,因此您需要某种形式的 Web 界面来访问这些服务,例如一个网络服务。 让我问一个明确的问题:您的 Java 代码是否充当“后端”,您希望客户端的 Javascript 向其发送 AJAX 调用?如果是这种情况,您只需使用指定的路由对 Java servlet 或代码进行所需的调用 我认为最好的方法是从 JS 访问我的服务方法(用 Java 编写),而不是编写从 JS 调用后会调用这些方法的控制器 ...你为什么这么认为? 【参考方案1】:

这称为 RMI(远程方法调用)。

您可以使用空白 AJAX 或某些框架。 就几个:

http://async-io.org/ https://spring.io/blog/2013/05/13/reactor-a-foundation-for-asynchronous-applications-on-the-jvm https://spring.io/guides/gs/messaging-stomp-websocket/

但我敢打赌他们都使用 Ajax 调用。

【讨论】:

以上是关于从 JS 访问 Java 方法的主要内容,如果未能解决你的问题,请参考以下文章

从 Jade 模板访问 Express.js 请求或会话

sails.js 从控制器方法访问控制器方法

如何从 Marionette.js ItemView 模板访问 Backbone.Model 方法?

无法从 Vue.js 中的方法访问数据(使用 Ionic)

如何从方法 JS 访问类变量

Vue.js 从方法访问子属性