在JAVA程序中直接执行JAVASCRIPT代码(简单调用实例)
2009-11-16 23:37
1166 查看
JDK6.0支持JAVA与JAVASCRIPT之间的互相调用,下面的实例将演示几种JAVA代码调用执行JAVASCRIPT代码的方法。
执行后,输出结果如下:
111
test string
Hello testname!my name is testname
Hello testname!my name is testname2
javax.script包为我们提供了不少用得上的类和方法,这样调用增加了前、后台之间的交互性,JAVASCRIPT函数可写在前台页面中,实现内容的变更对后台无影响,不用重新编译、发布即可生效。
import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Test { public static void main(String[] args) { ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine se = sem.getEngineByName("javascript"); try { //调用直接JAVASCRIPT语句 se.eval("println('111');"); String tmpstr = "test string"; se.eval(("println('" + tmpstr + "');")); //调用无参数方法JAVASCRIPT函数 se.eval("function sayHello() {" + " print('Hello '+strname+'!');return 'my name is '+strname;" + "}"); Invocable invocableEngine = (Invocable) se; se.put("strname", "testname"); String callbackvalue=(String) invocableEngine.invokeFunction("sayHello"); System.out.println(callbackvalue); //调用有参数JAVASCRIPT函数 se.eval("function sayHello2(strname2) {" + " print('Hello '+strname+'!');return 'my name is '+strname2;" + "}"); callbackvalue=(String)invocableEngine.invokeFunction("sayHello2", "testname2"); System.out.println(callbackvalue); } catch (ScriptException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
执行后,输出结果如下:
111
test string
Hello testname!my name is testname
Hello testname!my name is testname2
javax.script包为我们提供了不少用得上的类和方法,这样调用增加了前、后台之间的交互性,JAVASCRIPT函数可写在前台页面中,实现内容的变更对后台无影响,不用重新编译、发布即可生效。
相关文章推荐
- 在JAVA程序中直接执行JAVASCRIPT代码
- oracle中直接调用java代码执行业务逻辑。。
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- JDK8中Java调用Javascript脚本引擎动态定义与执行代码
- 在C# winform程序中直接执行javascript,调用javascript方法
- Javascript 直接调用服务器C#代码 ASP.NET Ajax实例
- Java WebService 简单实例 方式二(axis1直接调用方式)
- java执行命令或调用其他exe程序的代码范例
- Android JNI简单实例(Android java调用C/C++代码)
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- ASP.NET Ajax实例—Javascript直接调用服务器C#代码
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Javascript代码直接调用计算机中的程序
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- ASP.NET Ajax实例—Javascript直接调用服务器C#代码
- java中执行调用linux命令删除mysql数据库中的数据实例代码
- ASP.NET Ajax实例—Javascript直接调用服务器C#代码
- 包含继承关系的Java程序执行顺序(代码实例)
- java 简单的计算器程序实例代码