Voglio eseguire il codice JavaScript sul lato server. Voglio manipolare i risultati restituiti da JavaScript nel mio codice Java. Come può essere fatto?Come posso eseguire il codice JavaScript sul codice Java lato server?
risposta
Esegui il codice JavaScript con Rhino, una libreria JavaScript per Java.
È necessario un runtime JS all'interno di un runtime Java. Un modo per farlo è Rhino
Le altre risposte sono corrette che se si desidera eseguire JavaScript sul lato server, avresti bisogno di valutarlo nel contesto di un runtime JS.
Tuttavia, non sono convinto che questo sia esattamente quello che stai chiedendo. Penso che ci possa essere una possibilità che tu voglia eseguire alcune "tipiche" funzionalità JS relative a come la pagina viene visualizzata sul computer del cliente o interagita con il client - e che sarà non essere possibile eseguire sul server lato.
Come un esempio concreto:
- Se si desidera eseguire un qualche tipo di algoritmo in JS, senza porting di Java - per esempio, avete un po 'di codice JavaScript opaca che genera una particolare sequenza dato un seme - questo funzionerebbe bene se lo si esegue su Rhino sul server.
- Se si vuole richiamare una funzione JavaScript, mentre creando pagina, piuttosto che mentre è in esecuzione - per esempio, per ottenere la risoluzione del colore/profondità schermo dell'utente e cambiare modalità di generazione della pagina - quindi questo non essere possibile dal server, in quanto è nessun client a questo punto da interrogare.
In linea di massima, qualsiasi Javascript che coinvolge document
o navigator
o anche tutti gli elementi della pagina stessa, rischia di cadere in quest'ultima categoria.
Se è davvero necessario ottenere informazioni sull'ambiente client per controllare il rendering della pagina, questo deve essere estratto dal client nella pagina precedente e codificato nella richiesta (come parametri di query o dati del modulo) . Questi parametri possono quindi essere letti direttamente sul server e utilizzati per controllare l'output.
Ricorda che quando il tuo codice è in esecuzione sul lato server, stai creando una pagina (in ultima analisi un mucchio di HTML, CSS e JS) che verrà inviata al client una volta terminata - a questo punto ci sarà ancora nessun client e quindi non puoi interagire con loro.
Mi scuso se ho la parte sbagliata del bastone su questo, ma questo tipo di domanda viene in genere chiesto da persone che non hanno afferrato la separazione client/server.
L'inizio è chiaramente esaminare rhino.
penso troverete questo 3 link molto utili
- 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
Si può anche dare un'occhiata a helma
Helma è un ambiente Javascript server-side e un framework di applicazioni Web per la creazione e l'esecuzione rapida ed efficiente di siti Web e applicazioni Internet.
Helma è scritto in Java e utilizza Javascript per il suo ambiente di scripting server-side ...
Se si desidera chiamare JavaScript nel browser da Java sul server, guardare il quadro Fermi. Lo fa su WebSockets.
È possibile utilizzare RHINO o 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. eseguire codice lato server sul div click
- 2. Il modo più semplice per eseguire javascript sul lato server
- 3. esecuzione di codice lato server da JavaScript
- 4. Come si sincronizzano il codice lato server e lato client?
- 5. Come eseguire il debug del codice TypeScript sul lato server in WebStorm
- 6. È possibile eseguire jQuery sul lato server?
- 7. Come eseguire il debug e registrare il proprio codice sul lato server di Meteor?
- 8. Come eseguire facilmente il codice C# sul server Linux?
- 9. JavaScript sul lato server come PHP
- 10. : come ospitare il codice lato server nel repository Maven
- 11. Come posso includere file javascript lato server?
- 12. CSS sul lato server?
- 13. Come eseguire la copertura del codice per codice javascript lato client utilizzando grunt
- 14. Posso eseguire JavaScript nel codice Swift?
- 15. Come nascondere il codice lato server di Meteor dal browser?
- 16. Esistono librerie java per la convalida del codice HTML fornito dall'utente, sul lato server?
- 17. Come eseguire il codice MATLAB da Java?
- 18. nel codice lato server asp.net?
- 19. Framework javascript lato server
- 20. Come scrivere test unitari per il codice Meteor lato server?
- 21. Ha senso eseguire il rendering dei template sul lato server?
- 22. Analizzatore di codice JavaScript lato client
- 23. Ritaglia e carica l'immagine sul lato client senza codice lato server coinvolge
- 24. Non utilizzare System.out.println nel codice lato server
- 25. Come emettere l'evento SocketIO sul lato server
- 26. GWT I18N sul lato server
- 27. Come eseguire il debug del codice lato server in un'app Meteor
- 28. Come posso eseguire codice che ho scritto in JavaScript?
- 29. Reagire sul lato server e sul lato client non trasparente
- 30. Come posso eseguire l'impaginazione lato server con ng-table?
[Questa domanda] (http://stackoverflow.com/questions/14320308/how-to-run-javascript-in-java-programming) è simile, ma ha risposte diverse. – koppor