java里的js,java里的joptionpane怎么换行

发布时间:2023-12-08

java里的js,java里的joptionpane怎么换行

更新:2022-11-21 00:03

本文目录一览:

  1. [java web中javascript主要用哪些](#java web中javascript主要用哪些)
  2. 如何在java中调用js方法
  3. java程序中运行js脚本
  4. 如何用java执行指定页面中的js代码

java web中javascript主要用哪些

java web中javascript主要用途是在页面上完成特定按钮的事件功能并且实现前后台交互。 JavaScript 是一种跨平台,面向对象的脚本语言。作为一种小巧且轻量级的语言,JavaScript 无意于独立运行,而是被设计为可以轻易嵌入到其它的产品和应用中,比如 Web 浏览器。在宿主环境中,JavaScript 可以被连接到环境中的对象之上,以提供对其的编程控制。 核心的 JavaScript 中包含有一组核心的对象,包括 Array,Date 和 Math,以及一组核心的语言要素,包括操作符,控制结构和语句。出于多种目的,可以通过为其增补附加的对象,对核心 JavaScript 加以扩展;例如: 客户端 JavaScript 提供了用于控制浏览器(Navigator 或者其它浏览器)以及其中的文档对象模型(DOM)的对象,从而扩展了核心 JavaScript。例如,客户端扩展允许应用程序在 HTML 的表单中加入元素,以便响应用户事件,比如鼠标点击,表单输入和页面导航。 服务器端 JavaScript 提供了服务于在服务器上运行 JavaScript 的对象,从而扩展了核心 JavaScript。例如,服务器端扩展可以允许应用程序访问关系型数据库,在应用程序的不同调用间提供信息的连续性,甚至于处理服务器之上的文件。 借由 JavaScript 的 LiveConnect 功能,您可以让 Java 和 JavaScript 间实现通讯。从 JavaScript 中,您可以创建 Java 对象并访问它们的公共方法和域。从 Java 中,也可以访问 JavaScript 的对象,属性和方法。 Netscape 发明了 JavaScript 并将 JavaScript 首先用于 Netscape 浏览器中。

如何在java中调用js方法

js代码如下:

function formula(var1,var2){
    return var1+var2-factor;
}

java代码如下:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class AboutJavaScript {
    public static void main(String[] args) throws Exception {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
        Bindings bind = engine.createBindings();
        bind.put("factor", 1);
        engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);
        Scanner input = new Scanner(System.in);
        while (input.hasNextInt()) {
            int first = input.nextInt();
            int sec = input.nextInt();
            System.out.println("输入参数是:" + first + "," + sec);
            engine.eval(new FileReader("F:/model.js"));
            if(engine instanceof Invocable){
                Invocable in = (Invocable) engine;
                Double result = (Double) in.invokeFunction("formula", first, sec);
                System.out.println("运行结果:" + result.intValue());
            }
        }
    }
}

java程序中运行js脚本

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

function execute(s1, s2){
    return s1 + s2;
}

首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

/**
 * 接口中的方法签名必须与要执行的JavaScript方法一致
 * @author yuncong
 */
public interface Methods {
    public String execute(String s1,String s2);
}

然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class ExecuteScript {
    public static void main(String[] args) {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        try {
            String path = ExecuteScript.class.getResource("").getPath();
            System.out.println(path);
            // FileReader的参数为所要执行的js文件的路径
            engine.eval(new FileReader(path + "JavaScriptMethods.js"));
            if (engine instanceof Invocable) {
                Invocable invocable = (Invocable) engine;
                Methods executeMethod = invocable.getInterface(Methods.class);
                System.out.println(executeMethod.execute("li", "yuncong"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行ExecuteScript类,输出如下:

1
2
/C:/Users/yuncong/git/login/target/classes/executescript/
liyuncong

如何用java执行指定页面中的js代码

要在java中执行js代码,首先明白,java不支持浏览器本身的方法。支持自定义的js方法,否则会报错 先新建一个js文件:jsss.js 内容如下:

function aa(a,b){    
    return a+b;
}

然后在java中写代码:

public class ZipTest {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        String jsFileName = "G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js";
        FileReader reader = new FileReader(jsFileName);  // 执行指定脚本
        engine.eval(reader);
        if(engine instanceof Invocable) {
            Invocable invoke = (Invocable)engine;  // 调用merge方法,并传入两个参数
            Double c = (Double)invoke.invokeFunction("aa", 2, 3); //调用了js的aa方法
            System.out.println(c);
        }
        // engine.eval("alert(\"js alert\");");  // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不
    }
}