java后台调用js代码 java如何调用js

Java调用JS脚本里的方法;本例子使用了JDK 以上的javax script包 通过Invocable接口实现JAVA调用JS脚本里的方法 本例中调用分为内部执行脚本和外部执行脚本 外部执行脚本分为不带参数调用和带参数调用 主要采用invokeFunction方法调用ObjectinvokeFunction(String name Object… args)用于调用脚本中定义的顶层程序和函数ObjectinvokeMethod(Object thiz String name Object… args)对以前的脚本执行中已经编译的脚本对象(以 ScriptEngine 的状态保持)调用某一方法package de javase;import javax script Invocable;import javax script ScriptEngineManager;import javax script ScriptEngine;import java io File;import java io Reader;import java io FileReader;public class AjavaInvokingFunction {public static void main(String[] args) {// 获得一个JavaScript脚本引擎 也可以是ECMAScript脚本引擎ScriptEngineManager manager = new ScriptEngineManager()ScriptEngine engine = manager getEngineByName( JavaScript )String titlescript = function sayTitle() {println( 源码实例 使用javax script调用JS脚本里的方法 )println( )} ;try {
// 调用内部脚本执行engine eval(titlescript)// 转换为InvocableInvocable invocableEngine = (Invocable) engine;// 不带参数调用sayTitle方法invocableEngine invokeFunction( sayTitle )// 调用外部脚本执行// 创建JS文件的File对象 并读入流File functionscript = new File( ajava js )Reader reader = new FileReader(functionscript)// 开始执行ajava js里的程序engine eval(reader)// 不带参数调用sayHello方法invocableEngine invokeFunction( sayHello )// 带参数调用sayHello方法invocableEngine invokeFunction( sayHello mark )} catch (Exception e) {e printStackTrace()}}}ajava js文件function sayHello(){sayHello(null)}function sayHello(name){if(name==null){println( 欢迎你!请注册Ajava会员 )}else{println(name独立JAVA社区欢迎你 )}}运行结果(控制台)源码实例 使用javax script调用JS脚本里的方法 lishixinzhi/Article/program/Java/hx/201311/26436
如何在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
JavaScript的对象怎么在java后台调用JavaScript的对象怎么在java后台调用
// java调用js脚本的例子
ScriptEngineManager scriptEngineMgr = new ScriptEngineManager();
ScriptEngine jsEngine = scriptEngineMgr.getEngineByName("JavaScript");
StringBuffer sb = new StringBuffer();
// 组装js代码,也可以从文件读入脚本到sb变量
jsEngine.put("myContext", myContext);// 放置其他参数
jsEngine.eval(sb.toString());// 解析、执行脚本
请问怎么写java调用node环境运行js代码?nodejs 运行代码可以在命令行中使用命令“ node /path/xxx.js ”来执行
所以我们可以借助 java 的 Runtime 类,可以执行系统本地的命令,例如:
Linux系统下:Runtime.getRuntime().exec("node /path/xxx.js");
Window系统下:Runtime.getRuntime().exec("cmd /c node /path/xxx.js");
当然推荐使用 Apache-Commons-Exec 工具类,可以屏蔽不同系统命令差异,并且获取结果更简单
工具类使用可以参考此文: 网页链接
java怎样调用js首先java和js是完全两码事
两个的运行是不相干的
java是后台程序 运行在服务器上 而js则是生存在客户端浏览器(如ie)
只能是js间接调用java
过程是java后台调用js代码:js在客户端浏览器上运行java后台调用js代码,然后js让浏览器发送请求到服务器java后台调用js代码,然后服务器上的中间件(如tomcat)来把浏览器的请求(httpRequest)转交给java程序来处理 。典型的例子就是用js执行submit()提交表单到服务器和js生成ajax对象然后通过ajax对象把信息发送给服务器 。即js借助浏览器来达到间接调用后台java程序的功能 。
反过来就不行了
由于http协议是无状态的,不像java与数据库那样有保持着的连接 , 数据库是知道当前有谁再连接着自己的,而java程序所在的服务器是无法直接沟通客户端浏览器的,他压根就不知道客户端在哪,也因此无法去和运行在客户端的js联系 。
java后台调用js代码你如果想调用这个EncodePwd(uin,psw),只能是在客户端浏览器上触发这个方法(例如提交按钮)然后把信息发送到服务器端 。
其实还有一种技术 , 即“服务器推送”,这个大概可以实现你的想法,这是个新兴技术 , 用于由服务器直接把数据发送给客户端,而不需要客户端不停的用ajax来访问服务器 。但是java后台调用js代码我想这个应该不是你想要的东西 。
java后台怎么调用前台js方法js是前台代码 java是后台代码,通常来说是前台发送请求给后台,然后后台处理请求,响应并跳转 , 你用后台来调用前台js,不明白你的需
【java后台调用js代码 java如何调用js】java后台调用js代码的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java如何调用js、java后台调用js代码的信息别忘了在本站进行查找喔 。

    推荐阅读