То, как является серверной стороной JavaScript, использовало/реализовывало?

Да, это возможно. Под каждым можно добавить еще один класс с основным методом для того, который выполняет требуемый класс / метод на основе аргумента.

, например,

public static void main(String... args) {
    if ("foo".equals(args[0])) {
        Foo.main(args);
    } else if ("bar".equals(args[0])) {
        Bar.main(args);
    }
 }

(не забудьте сами добавить очевидные проверки, такие как args.length и т. Д.)

, которые вы можете использовать следующим образом:

java -jar YourJar.jar foo

Если хорошо однако, это может сделать излишним метод main() других классов. Э.Г.

public static void main(String... args) {
    if ("foo".equals(args[0])) {
        new Foo().execute();
    } else if ("bar".equals(args[0])) {
        new Bar().execute();
    }
 }

Чтобы абстрагироваться от этого больше (чтобы избавиться от блоков if / else), вы можете позволить им реализовать некоторый интерфейс Action с void execute() и получить их в Map:

private static Map<String, Action> actions = new HashMap<String, Action>();
static {
    actions.put("foo", new Foo());
    actions.put("bar", new Bar());
}

public static void main(String... args) {
    actions.get(args[0]).execute();
}
5
задан Crescent Fresh 30 November 2009 в 17:15
поделиться

7 ответов

Для работы на стороне сервера javascript требуется механизм javascript, который можно встраивать. Большинство этих «встраиваемых» движков предоставляют API, который позволяет вам взаимодействовать между исполняющимся кодом javascript и вашими собственными объектами / методами. Например, у вас может быть подключен код javascript, чтобы разрешить выполнение функций, написанных на Java или C #, или вы можете расширить таблицу символов сценария, чтобы включить в вашу систему доступ к объектам, не относящимся к javascript.

Я бы взглянул на некоторые из этих движков, я полагаю, что Rhino может быть лучше всего подходит для вас, поскольку его написано на Java. В их руководствах описывается внедрение Rhino в среду Java.

  1. Учебное пособие по внедрению Rhino: http://www.mozilla.org/rhino/tutorial.html
  2. V8 - это движок Google. V8 в настоящее время не является потокобезопасным, поэтому он, вероятно, не будет соответствовать вашим потребностям в серверной среде. http://code.google.com/p/v8/
  3. SpiderMonkey - это движок, обеспечивающий выполнение javascript в Firefox. Это прямо C. http://www.mozilla.org/js/spidermonkey/

Edit в ответ на ваш второй вопрос.

Я не совсем уверен, что вы имеете в виду под созданным контентом библиотекой javascript. Однако вы упоминаете ExtJS, который, как я полагаю, подразумевает HTML-контент? Важно понимать разницу между DOM (которую Javascript может читать и изменять, но не является «частью» Javascript как таковой) и языком Javascript. Если вам нужна идея серверной части DOM , это совсем другая история, если вам нужен язык Javascript , то приведенные выше параметры должны вам помочь.

6
ответ дан 18 December 2019 в 11:58
поделиться

Mozilla Rhino JavaScript-движок довольно легко встроить; он позволяет создавать подклассы классов Java и реализовывать интерфейсы, а также просто выполнять некоторые быстрые и грязные трюки с объектами JavaScript. Я работаю над внедрением его в GeoServer в нерабочие моменты уже пару месяцев. Вы можете взглянуть на код Java , который встраивает Rhino, и несколько примеров JavaScript в нашем репозитории SVN. У Rhino также есть неплохое руководство , чтобы начать работу.

3
ответ дан 18 December 2019 в 11:58
поделиться

ASP и ASP.NET поддерживают серверный JavaScript. Для ASP все, что вам нужно сделать, это объявить:

<%@LANGUAGE=JAVASCRIPT%>

В самом верху ASP-файла, и вы кодируете на JavaScript. ASP.NET - в основном то же самое, за исключением того, что вы получаете доступ к платформе .NET.

Не могу помочь на фронте сервлетов Java, никакого опыта работы с ним.

2
ответ дан 18 December 2019 в 11:58
поделиться

«Helma - это серверная среда Javascript и структура веб-приложений для быстрого и эффективного создания сценариев и обслуживания ваших веб-сайтов и интернет-приложений». - http://helma.org/

1
ответ дан 18 December 2019 в 11:58
поделиться

Check out http://www.commonjs.org/

-- MV

1
ответ дан 18 December 2019 в 11:58
поделиться

У меня большой опыт использования серверного Javascript в среде Windows. Хост сценариев Windows во всех системах Windows предоставляет Javascript как один из языков по умолчанию. Вы можете создать COM-объект для взаимодействия с ним на любом языке, поддерживающем COM. Я думаю эта страница MSDN поможет вам начать, если вы захотите использовать этот подход.

Я чувствую, что вы будете счастливее, если выберете что-то, что не связано с COM. Я просто хотел убедиться, что у вас есть все варианты.

1
ответ дан 18 December 2019 в 11:58
поделиться

Если все, что вам нужно сделать, это благословить ваш HTML как Excel, вам может быть лучше послать HTML-код на сервер и вернуть его с заголовком content-disposition и соответствующим типом MIME. . Серверный JS обычно не реализует DOM, подобный браузеру, поэтому Ext не будет работать на стороне сервера.

В качестве альтернативы вы можете сгенерировать свой HTML-сервер на стороне сервера и пропустить обратный путь. Например, библиотека Java POI может генерировать реальные двоичные файлы Excel с несколькими листами и функциями ячеек.

Если вы действительно хотите использовать серверный JS в качестве сервера приложений, рассмотрите Myna . Я упомянул в этом вопросе некоторые из его преимуществ.

1
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: