【问题标题】:How is server-side javascript used/implemented?服务器端 javascript 是如何使用/实现的?
【发布时间】:2010-12-08 12:20:27
【问题描述】:

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

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

编辑

太棒了!我以前见过这些技术,但由于某种原因,我没有将它们与“服务器端”javascript(doh!)联系起来

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

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

【问题讨论】:

  • 我认为一个更好的问题是你为什么要使用它?
  • @Elizabeth:感谢您的评论。这是一个简短的故事:我需要将JavaScript库生成的HTML作为application/vnd.ms-excel提供服务,我已经从客户端尝试过,但它不起作用(因为我只能使用text/html)完整的故事在这里@ 987654321@

标签: java javascript serverside-javascript


【解决方案1】:

运行 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/

编辑以回答您的第二个问题。

我不确定您所说的由 javascript 库生成的内容究竟是什么意思。但是,您提到了 ExtJS,这意味着我相信 HTML 内容吗?了解 DOM(Javascript 可以读取和修改但不是 Javascript 本身的“一部分”)和 Javascript 语言之间的区别很重要。如果您需要 DOM 服务器端的想法,那就另当别论了,如果您需要 Javascript 语言,那么上述选项应该可以帮到您。

【讨论】:

    【解决方案2】:

    如果您需要做的只是将您的 HTML 保存为 Excel,则最好将您的 HTML 发送到服务器并使用内容处置标头和适当的 MIME 类型将其返回。服务器端 JS 通常不实现类似浏览器的 DOM,因此 Ext 不能在服务器端工作。

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

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

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            Mozilla 的Rhino JavaScript 引擎非常容易嵌入;它允许 Java 类的子类化和实现接口,以及只是做一些快速的 n' 脏 JavaScript 对象诡计。几个月来,我一直在努力将其嵌入到GeoServer 中。您可以查看嵌入 Rhino 的 Java 代码和我们 SVN 存储库中的一些 JavaScript examples。 Rhino 也有一个不错的 guide 开始使用。

            【讨论】:

              【解决方案7】:

              ASP 和 ASP.NET 支持服务器端 JavaScript。对于 ASP,您只需声明:

              <%@LANGUAGE=JAVASCRIPT%>
              

              在 ASP 文件的最顶部,您正在使用 JavaScript 进行编码。 ASP.NET 基本相同,只是您可以访问 .NET 框架。

              在 Java servlet 方面无能为力,没有经验。

              【讨论】:

                猜你喜欢
                • 2019-11-23
                • 2010-12-01
                • 1970-01-01
                • 2011-01-27
                • 2010-12-14
                • 1970-01-01
                • 2016-01-03
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多