我想在服务器端运行JavaScript代码。我想在Java代码中处理由JavaScript返回的结果。如何做呢?如何在服务器端Java代码中运行JavaScript代码?
10
A
回答
2
您可以使用Rhino这个用于Java的JavaScript库执行JavaScript。
3
您需要一个Java运行库内部的JS运行时。要做到这一点的方法之一是Rhino
8
其他的答案是正确的,如果你要在服务器端执行JavaScript,你需要在JS运行的情况下对其进行评估。
但是,我不相信这正是你所问的。我认为你可能会希望运行一些“典型的”JS功能,这些功能与页面在客户端机器上的显示方式或在客户端上的交互方式有关,并且而不是可以在服务器上运行侧。
举一个具体的例子:
- 如果你想运行某种在JS算法没有将它移植到Java的 - 比如,你有一个生成给予一个种子特定序列的一些不透明的Javascript代码 - 这如果你在服务器上的Rhino上运行它,它会正常工作。
- 如果要调用一个JavaScript函数,而创建的页面,而不是同时它的运行 - 比如,要获得用户的颜色深度/屏幕分辨率和改变是如何产生的页面 - 那么这将不是可能从服务器,因为那里是没有客户端在这一点上查询。
从广义上来说,涉及document
或navigator
或页面本身的甚至任何元素任何JavaScript,很可能属于后一类。
如果您确实需要获取有关客户端环境的信息以控制页面的呈现方式,那么必须从前一页的客户端提取并编码到请求中(作为查询参数或表单数据) 。这些参数可以直接在服务器上读取并用于控制输出。
请记住,当您的代码在服务器端运行时,您将创建一个页面(最终是一堆HTML,CSS和JS),一旦完成就会发送到客户端 - 此时为还没有客户,所以你不能与他们互动。
道歉,如果我的棒上有错误的结束,但这种类型的问题通常是由没有掌握客户端/服务器分离的人提出的。
15
开始显然是看看rhino。
我想你会发现这3个环节非常有用
- JavaScript EE, Part 1: Run JavaScript files on the server side
- JavaScript EE, Part 2: Call remote JavaScript functions with Ajax
- JavaScript EE, Part 3: Use Java scripting API with JSP
你也可以看看到helma
Helma是一个服务器端Javascript环境和Web应用程序框架,用于快速高效地编写脚本并为您的网站和Internet应用程序提供服务。
Helma是用Java编写,并使用JavaScript来它的服务器端脚本环境...
-3
如果你想在服务器上从Java调用JavaScript的浏览器,看看Fermi架构。它通过WebSockets完成。
0
您可以使用RHINO或NASHORN。
public class RhinoApp {
private String simpleAdd = "var z=9; z*=9";
public void runJavaScript() {
Context jsCx = Context.enter();
Context.getCurrentContext().setOptimizationLevel(-1);
ScriptableObject scope = jsCx.initStandardObjects();
Object result = jsCx.evaluateString(scope, simpleAdd , "formula", 0, null);
Context.exit();
System.out.println(result);
}
相关问题
- 1. 运行的代码在服务器端
- 2. 在服务器端运行代码
- 3. 在服务器端运行jQuery代码?
- 4. 我如何在Firebase中运行服务器端代码?
- 5. 如何服务器代码运行MVC2
- 6. 码头服务器运行php代码
- 7. 从服务器端注册javascript代码
- 8. Java客户端服务器代码
- 9. 在服务器上运行Python代码
- 10. 如何从couchdb运行服务器端代码?
- 11. 如何在java中的服务器端代码上启用CORS
- 12. 我们如何在Firebase中添加服务器端Java代码?
- 13. 服务器端代码
- 14. AngularJS如何与服务器端Java EE代码进行对话?
- 15. 在safari中onbeforeunload不运行代码服务器端
- 16. 如何防止grails服务器端代码在运行时运行
- 17. 如何从服务器端C#代码触发客户端JavaScript?
- 18. 如何在服务器端代码中进行调试?
- 19. wamp服务器没有在javascript语句中运行PHP代码
- 20. 在java中安全运行javascript代码
- 21. 在javascript中运行java代码
- 22. 在Javascript中运行Java代码?
- 23. 使用Java代码在HTML文件中运行JavaScript代码
- 24. 如何从java代码中运行或不运行h2数据库服务器
- 25. 如何检查服务器是否在代码中运行?
- 26. 如何在PHP中运行JavaScript代码
- 27. 如何在HTML中运行java代码
- 28. 如何以编程方式在MongoDB中运行服务器端代码
- 29. 在服务器端调用服务器端代码
- 30. 服务器代码执行
[这个问题](http://stackoverflow.com/questions/14320308/how-to-run-javascript-in-java-programming)是相似的,但有不同的答案。 – koppor