如何使用/实现服务器端的JavaScript?

时间:2009-10-20 21:11:40

标签: java javascript serverside-javascript

我很长时间都知道服务器端的javascript,但我不知道它是如何工作的。有人能指出我正确的方向吗?

我对如何使用服务器端javascript + Java Servlet技术感兴趣

编辑

大!我以前见过这些技术,但由于某些原因我没有将它们与“服务器端”javascript相关联(doh!)

补充问题:如果我想使用javascript库来创建内容(例如ExtJs),我能否像在客户端那样在服务器端修改“文档”?

(我想我会在第一次尝试时发现)

7 个答案:

答案 0 :(得分:6)

运行javascript服务器端需要可嵌入的javascript引擎。这些“可嵌入”引擎中的大多数都提供了一个API,允许您在执行的javascript代码和您自己的对象/方法之间进行接口。例如,您可能连接了javascript代码以允许执行用Java或C#编写的函数,或者您可以扩充脚本的符号表以包含对系统中非JavaScript对象的访问。

我会看看其中的一些引擎,我猜测Rhino可能是最适合你的,因为它是用Java编写的。他们的教程概述了如何在一个Java环境中嵌入Rhino。

  1. Rhino嵌入教程:http://www.mozilla.org/rhino/tutorial.html
  2. V8是谷歌的引擎。 V8目前不是线程安全的,因此它可能无法满足您在服务器环境中的需求。 http://code.google.com/p/v8/
  3. SpiderMonkey是Firefox的javascript执行的引擎。它是直的C. http://www.mozilla.org/js/spidermonkey/
  4. 编辑以回应您的第二个问题。

    我不确定javascript库生成的内容究竟是什么意思。你提到ExtJS,这会暗示我相信的HTML内容吗?理解DOM(Javascript可以读取和修改但不是Javascript本身的“部分”)和Javascript语言之间的区别非常重要。如果你需要一个不同故事的 DOM 服务器端的想法,如果你需要Javascript 语言,那么上面的选项可以帮助你。

答案 1 :(得分:3)

Mozilla的Rhino JavaScript引擎很容易嵌入;它允许子类化Java类和实现接口,以及只是做一些快速的脏JavaScript对象技巧。我一直在努力将它嵌入GeoServer我的关闭时刻,现在已经有几个月了。您可以在我们的SVN存储库中查看嵌入Rhino的Java代码和一些JavaScript examples。开始时,Rhino还有一个非常好的guide

答案 2 :(得分:2)

ASP和ASP.NET支持服务器端JavaScript。对于ASP,您所做的就是声明:

<%@LANGUAGE=JAVASCRIPT%>

在ASP文件的最顶层,您使用JavaScript进行编码。除了可以访问.NET框架之外,ASP.NET基本相同。

无法帮助Java servlet,没有经验。

答案 3 :(得分:1)

“Helma是一个服务器端Javascript环境和Web应用程序框架,用于快速有效地编写脚本并为您的网站和Internet应用程序提供服务。” - http://helma.org/

答案 4 :(得分:1)

我在Windows环境中使用服务器端Javascript的经验丰富。所有Windows系统上的Windows Scripting Host都提供Javascript作为默认语言之一。您可以使用支持COM的任何语言创建COM对象以与其进行交互。我想如果您想使用这种方法,this MSDN page将帮助您入门。

我的直觉是,如果你选择不涉及COM的东西,你会更快乐。我只是想确保你面前有所有的选择。

答案 5 :(得分:1)

答案 6 :(得分:1)

如果您需要做的就是将您的HTML保存为Excel,那么最好将HTML发送到服务器并使用内容处置标头和相应的MIME类型进行回送。服务器端JS通常不会实现类似浏览器的DOM,因此Ext不会在服务器端工作。

或者,您可以生成HTML服务器端并跳过往返。例如,POI Java库可以生成具有多个工作表和单元函数的实际二进制Excel文件。

如果您真的想使用服务器端JS作为您的应用服务器,请考虑Myna。我在这个question中提到了它的一些优点。