Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript web应用程序链接到java_Java_Javascript_Web Applications_Rhino_Nashorn - Fatal编程技术网

将javascript web应用程序链接到java

将javascript web应用程序链接到java,java,javascript,web-applications,rhino,nashorn,Java,Javascript,Web Applications,Rhino,Nashorn,我正试图让java和javascript相互对话。理想情况下,我希望它们共享对象,但java应用程序调用javascript函数就足够了。我试过Rhino,但有点困难,因为它似乎无法在运行的js引擎中调用函数(也许可以,我就是不知道怎么做?)。有关如何实现此链接的任何提示?性能是一个问题,但不是非常关键 基本上;我有一个web应用程序,它使用javascript动态更新页面内容。页面的内容是通过java代码创建的,因此我需要一种方式让java代码告诉javascript什么时候发生了变化,什么发

我正试图让java和javascript相互对话。理想情况下,我希望它们共享对象,但java应用程序调用javascript函数就足够了。我试过Rhino,但有点困难,因为它似乎无法在运行的js引擎中调用函数(也许可以,我就是不知道怎么做?)。有关如何实现此链接的任何提示?性能是一个问题,但不是非常关键

基本上;我有一个web应用程序,它使用javascript动态更新页面内容。页面的内容是通过java代码创建的,因此我需要一种方式让java代码告诉javascript什么时候发生了变化,什么发生了变化

谢谢


LiveConnect似乎做到了这一点,但applet将是一个安全漏洞。Java8中的Nashorn会和Rhino做同样的事情吗?或者它能够保持JVM运行并监听调用吗?

没有办法让Java后端和JavaScript以您想要的方式直接相互对话。让他们交流的唯一方法是通过AJAX或WebSockets。

您需要更详细地解释您的目的。Rhino(以及整个javax.script包)允许您从Java内部调用Javascript,而不是相反。除了可以传递javascript-java对象之外,javascript还可以访问java类,还可以让javascript实现java接口。它创建自己的javascript引擎来执行代码。我不知道它怎么能以你想要的方式与随机的外部对象一起工作。不过,似乎Nashorn做到了这一点,我可以从JS访问我的Java对象,反之亦然。但是,nashorn没有窗口等功能。要使用Node.js和类似的libs等,Rhino/nashorn没有剪切它。我最终使用了WebSocket。