Evaluating javascript using java code

It may not be practical, but for me it is a task. I have an open ServerSocket in java. Now I want to read a file containing html and javascript and output the javascript result to the browser. So I would appreciate server side javascript. So I want what's inside for an assessment.

I tried to check it, it worked, but it has some problems, for example, it prints a message in System.out. And engine.eval ("print ('Welocme to java worldddd')"); doesn't return a string so that I can output it to the socket output stream:

import javax.script.*;
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
try {
     // evaluate JavaScript code from String
     engine.eval("print('Welocme to java worldddd')");
     //engine.eval("a");
} catch (ScriptException ex) {
     Logger.getLogger(doComms.class.getName()).log(Level.SEVERE, null, ex);
}
+5
source share
2 answers

script ( print() JavaScript), ScriptContext:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
ScriptContext context = engine.getContext();
StringWriter writer = new StringWriter();
context.setWriter(writer);

engine.eval("print('Welocme to java worldddd')");

String output = writer.toString();

System.out.println("Script output: " + output);
+8

, javascript eval() , :

import javax.script.*;
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
try {
     // evaluate JavaScript code from String
     engine.eval("function sum(a,b){ return a + b;}");
     System.out.println(((Invocable) engine).invokeFunction("sum", new Object[]{10,20}));
} catch (ScriptException ex) {
     Logger.getLogger(doComms.class.getName()).log(Level.SEVERE, null, ex);
}

, invokeFunction ( ) .

, . , javascript? while(true){} .

+5

All Articles