2009-10-20 6 views
4

Je connais le javascript côté serveur depuis longtemps, mais je n'ai aucune idée de comment cela fonctionne. Quelqu'un peut-il m'indiquer la bonne direction?Comment le javascript côté serveur est-il utilisé/implémenté?

Je suis intéressé par la façon d'utiliser la technologie javascript + Java côté serveur Servlet

EDIT

Great! J'ai déjà vu ces technologies, mais pour une raison quelconque, je ne les ai pas associées à javascript côté serveur (doh!)

Question complémentaire: si je veux utiliser une bibliothèque javascript pour créer du contenu (ExtJs par exemple), suis-je capable d'avoir un "document" à modifier côté serveur comme je le fais dans le client?

(je suppose que je vais trouver dans mes premières tentatives)

+0

Je pense qu'une meilleure question est pourquoi voudriez-vous l'utiliser? –

+0

@Elizabeth: Merci pour le commentaire. Voici l'histoire courte: J'ai besoin de servir HTML généré par une bibliothèque JavaScript comme application/vnd.ms-excel J'ai essayé du côté client, mais cela ne fonctionne pas (parce que je ne peux utiliser que du texte/html ') L'histoire complète est ici http://stackoverflow.com/questions/1479020/save-the-document-generated-by-javascript – OscarRyz

Répondre

6

L'exécution du côté serveur JavaScript requiert un moteur JavaScript qui peut être intégré. La plupart de ces moteurs "embarquables" fournissent une API qui vous permet d'interfacer entre le code javascript en cours d'exécution et vos propres objets/méthodes. Par exemple, vous pourriez avoir un code javascript branché pour permettre l'exécution de fonctions écrites en Java ou C#, ou vous pourriez augmenter la table de symboles d'un script pour inclure l'accès à des objets non-javascript dans votre système.

Je voudrais jeter un oeil à certains de ces moteurs, je suppose que Rhino peut être le meilleur choix pour vous comme il est écrit en Java. Leurs tutoriels décrivent l'intégration de Rhino dans un environnement Java.

  1. Un tutoriel intégration Rhino: http://www.mozilla.org/rhino/tutorial.html
  2. V8 est le moteur de Google. V8 n'est pas threadsafe pour le moment, il ne sera probablement pas adapté à vos besoins dans un environnement serveur. SpiderMonkey est le moteur alimentant l'exécution de javascript de Firefox.
  3. Il est C. http://www.mozilla.org/js/spidermonkey/

droit Modifier en réponse à votre deuxième question.

Je ne sais pas exactement ce que vous entendez par contenu généré par une bibliothèque javascript. Vous mentionnez cependant ExtJS, ce qui impliquerait le contenu HTML je crois? Il est important de comprendre la différence entre le DOM (que Javascript peut lire et modifier mais ne fait pas partie de Javascript en soi) et Javascript la langue. Si vous avez besoin de l'idée d'un côté serveur DOM c'est une histoire différente, si vous avez besoin de la langue alors les options ci-dessus devraient vous aider.

2

ASP et ASP.NET prend en charge JavaScript côté serveur. Pour ASP, tout ce que vous faites est de déclarer:

<%@LANGUAGE=JAVASCRIPT%> 

Au sommet du fichier ASP et vous codez en JavaScript. ASP.NET est fondamentalement le même sauf que vous avez accès au framework .NET.

Ne peut pas aider sur le front servlet Java, aucune expérience avec elle.

3

Rhino Le moteur JavaScript de Mozilla est assez facile à intégrer; Il permet de sous-classer des classes Java et d'implémenter des interfaces, tout en faisant juste quelques trucs d'objets JavaScript. J'ai travaillé sur l'intégrer dans GeoServer dans mes moments de repos depuis quelques mois maintenant. Vous pouvez jeter un oeil à la fois le code Java qui intègre Rhino et quelques JavaScript examples dans notre référentiel SVN. Rhino a aussi un joli guide pour commencer.

1

"Helma est un environnement Javascript et un environnement d'application web côté serveur pour un traitement rapide et efficace des scripts et de la diffusion de vos sites Web et de vos applications Internet." -

1

J'ai une grande expérience de l'utilisation de Javascript côté serveur dans un environnement Windows. Windows Scripting Host sur tous les systèmes Windows fournit Javascript comme l'une des langues par défaut. Vous pouvez créer un objet COM pour l'interfacer avec n'importe quel langage prenant en charge COM. Je pense que this MSDN page vous permettra de démarrer si vous souhaitez utiliser cette approche. Mon sentiment est que vous serez plus heureux si vous choisissez quelque chose qui ne concerne pas COM. Je voulais juste m'assurer que vous aviez toutes les options devant vous.

1

Si tout ce que vous devez faire est de bénir votre HTML comme Excel, vous pourriez être mieux servi d'envoyer votre HTML sur le serveur et l'ont servi de retour avec un contenu -en-tête d'en-tête et le type MIME approprié. JS côté serveur n'implémente normalement pas de DOM semblable à un navigateur, alors Ext ne fonctionnera pas côté serveur.

Vous pouvez également générer votre serveur HTML et ignorer l'aller-retour. Par exemple, la bibliothèque Java POI peut générer de vrais fichiers Excel binaires avec plusieurs feuilles et fonctions de cellule.

Si vous voulez vraiment utiliser un JS côté serveur comme serveur d'applications, prenez en compte le Myna. J'ai mentionné dans le question certains de ses avantages.