Javascript 在 java 代码中

Javascript inside a java code

我需要编写一个 jax-rs 端点,其中 returns 一个 java 脚本函数。

我知道我们可以在 java 脚本中编写 java 代码。但我不知道我们是否可以在 java 代码中编写 javascript 代码。

但是我的主管让我写的。感谢任何帮助。

谢谢

您可以 return 代码中的字符串,并且可以将 html 标记声明为 returning 字符串。我会建议一个示例代码。

        @GET
        @Path("/")
        @Produces("text/html")
    public String getStatus(@Context HttpServletRequest request) {
    return "<html><head><script>put your java script code here...</script></head></html>"
}

当你想在 java 中使用 运行 java 脚本代码时,你应该看看 nashorn: http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html http://en.wikipedia.org/wiki/Nashorn_%28JavaScript_engine%29

这里有一个很好的教程: http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/

您不需要在服务器中执行 Java脚本。您只需要 return JavaScript 函数的字符串表示形式,这样客户端就可以动态执行 returned 代码(例如在浏览器中使用 eval)。

另一方面,如果您想 运行 Java在服务器内部编写脚本,您可以使用 JVM 内部可用的嵌入式引擎之一:

Java 1.7:犀牛

http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/

Java 8: 纳肖恩

http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html

看看 Rhino or Nashorn。后者由 Oracle 发布 Java 8.

Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine.

Nashorn is a JavaScript engine developed in the Java programming language by Oracle. It is based on the Da Vinci Machine (JSR 292) and has been released with Java 8.