当前位置:首页 » 编程语言 » java调用js

java调用js

发布时间: 2022-07-12 16:03:36

java后台怎么调用前台js方法

可使用前台js申请后台java代码,把数据用返回值的方式,返回给前台。这种方式用的最多的就是使用ajax了。使用在后台与服务器进行少量数据交换,ajax可使网站实现异步更换。这意味着可在不重新加载整个网站的情况下,关于网站的某个部分进行更换。

⑵ 如何用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引用不 }
}

⑶ 请问怎么写java的时候调用node环境运行js代码

不知道你的具体需求是什么,java如果是用来做网页开发的话,本身项目就可以运行JS的,不需要调用 nodeJs 环境,而如果说是希望 java + nodeJs 的架构,那应该是一边提供接口,另一边发送请求的方式,也不需要说通过 java来调用 nodeJs 。
所以还是需要知道你具体的需求是什么。

⑷ java如何调用javascript的函数

[java] view plainprint?
<span style="font-size:18px;">package suggestion16;

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 ScriptText {

public static void main(String[] args) throws FileNotFoundException, ScriptException, Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Bindings bind = engine.createBindings();
bind.put("factor", 2); //这里绑定一个factor的值为2.
engine.setBindings(bind,ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
int first = input.nextInt();
int sec = input.nextInt();
System.out.println("输入的参数为:"+ first+ " , " + sec);
engine.eval(new FileReader("E:/cal.js"));
if(engine instanceof Invocable)
{
Invocable in = (Invocable)engine;
Double result = (Double)in.invokeFunction("cal",first,sec);
System.out.println("运算结果为:" + result.intValue());
}
}
}

}
</span>

其中的“E:/cal.js”就是我们js文件的保存路径。并且这个主函数可以循环的输入。
我们运行一下这个程序得到的结果如下:
[html] view plainprint?
<span style="font-size:18px;">1
2
输入的参数为:1 , 2
运算结果为:1
</span>
上面也就是 调用了 1 + 2 - 2 = 1 ,所以结果为1
我们将js文件中的function方法改变下,改编为下面的函数:
[javascript] view plainprint?
<span style="font-size:18px;">function cal(var1,var2)
{
return var1+var2*factor;
}</span>

⑸ java 调用 js函数

function是属于javascript里面的语法,而<%%>里面调用的是java的语法,所以想要用<%%>调用alert()是不行了,因为他们不是同一个东西。
不知道你的意思是不是页面一加载就进行调用alert(),如果是这样的话,建议使用onload事件,表示页面加载的时候调用alert();
或者如果是点击的时候调用,那么久调用onclick()..总而言之可以使用事件完成。

⑹ java调用请求页面js方法有哪些

其实网上有很多方法

/** 加载脚本引擎,并在java中调用js方法 */

public void test2(){

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("javascript");

try {

String str="2&1";

Double d = (Double) engine.eval(str);

Integer i=d.intValue();

System.out.println(i);

} catch (ScriptException ex) {

ex.printStackTrace();

} }

/*

* 在java中调用js,jdk1.6中有加载js引擎类,然后由它来调用js方法。

* 并通过JDK平台给script的方法中的形参赋值

*/

public void test(String name)

{

ScriptEngineManager sem = new ScriptEngineManager();

/**sem.getEngineByExtension(String extension)参数为js

sem.getEngineByMimeType(String mimeType) 参数为application/javascript 或者text/javascript

sem.getEngineByName(String shortName)参数为js或javascript或JavaScript

*/

ScriptEngine se = sem.getEngineByName("js");

try

{

String script = "function say(){ return 'hello,'"+name+"; }";

se.eval(script);

Invocable inv2 = (Invocable) se;

String res=(String)inv2.invokeFunction("say",name);

System.out.println(res);

}

catch(Exception e)

{

e.printStackTrace();

}

}

/** 演示如何将java中对象作为js中全局变量,同时演示将file类赋给脚本语言,并获得其属性。

*/

public void testScriptVariables()

{

ScriptEngineManager sem=new ScriptEngineManager();

ScriptEngine engine=sem.getEngineByName("js");

File file=new File("c:\\1.txt");

engine.put("f", file);

try {

engine.eval("println('path:'+f.getPath())");//无法使用alert方法

} catch (ScriptException e) {

e.printStackTrace();

}

}

/*

* 演示如何在java中如何通过线程来启动一个js方法

*/

public void testScriptInterface() throws ScriptException

{

ScriptEngineManager sem=new ScriptEngineManager();

ScriptEngine engine=sem.getEngineByName("js");

String script="var obj=new Object();obj.run=function(){println('test thread')}";

engine.eval(script);

Object obj=engine.get("obj");//获取js中对象

Invocable inv=(Invocable)engine;

Runnable r=inv.getInterface(obj,Runnable.class);

Thread t=new Thread(r);

t.start();

}

⑺ 如何通过java代码调用js

JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。
在Java中直接调用js代码
不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接调用js代码 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{

engine.eval("var a=3; var b=4;print (a+b);");

// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常
}catch(ScriptException e){

e.printStackTrace();
}
}
}

⑻ 如何在java中调用js方法

在Java中调用js文件中的function,传入调用参数,并获取返回值
js文件中的merge函数将两个参数a,b相加,并返回c。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}

在Java代码中读取js文件,并参数两个参数,然后回去返回值。
package com.sinaapp.manjushri;

import java.io.FileReader;
import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;
/** * Java调用并执行js文件,传递参数,并活动返回值 * * @author manjushri */

public class ScriptEngineTest {

public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");

String jsFileName = "expression.js"; // 读取js文件

FileReader reader = new FileReader(jsFileName); // 执行指定脚本
engine.eval(reader);

if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数

// c = merge(2, 3);

Double c = (Double)invoke.invokeFunction("merge", 2, 3);

System.out.println("c = " + c);
}

reader.close();

}
}

输出结果:
c = 5.0

⑼ java如何调用js里的变量

2种方法:

1、用一个隐藏的<input type="hidden" name="isNecessary" />,先将JS变量的值赋给input,然后在java里面用request.getParameter(" isNecessary");

此法为传说中的post方法。

2、通过链接的方式,即后面加问号的方式:

var isNecessary="aaa";

var URL='<%=request.getContextPath()%>/action/xx.do isNecessary='+isNecessary;

//这里假设JS里面的变量的值是isNecessary。

然后用window.location.href=URL;

JAVA里面依然用request.getParameter(" isNecessary")调用。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:536
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:232
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:532
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726