java scriptengine(java调用请求页面js方法有哪些)
本文目录
- java调用请求页面js方法有哪些
- java实现复杂计算器
- 关于java(C#)调用js函数的问题
- java中的ScriptEngineManager中的用法
- java中怎么插入js函数
- 如何通过java代码调用js
- java怎么调用javascript
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实现复杂计算器
import java.util.Scanner; import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException; public class Kyo{ public static void main(String args) { ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine se = sem.getEngineByName("js"); Scanner scan = new Scanner(System.in); while(true) { System.out.println("输入一个式子:"); String jsonstr = scan.nextLine().trim(); try { double d = Double.parseDouble(se.eval("(" + jsonstr + ")").toString()); System.out.printf("%s=%.1f%n", jsonstr, d); } catch(ScriptException e) { System.err.println("输入的式子不合法,退出程序"); scan.close(); break; } } }}
关于java(C#)调用js函数的问题
java可以执行js的啊。 ScriptEngine se = sem.getEngineByName("javascript"); 这个就能执行js
java中的ScriptEngineManager中的用法
ScriptEngineManager应该是jdk1.6里的,不过貌似是用来与一些动态语言结合用的比如ruby,python。应该没有生成html这样的功能。可以自己写。
java中怎么插入js函数
js是前台页面应用技术,java是后台应用技术,js后台是用不上的,如果需要,可以jsp在前台混插使用。Java是不可以插入js的,但是可以输出js,一般有以下两种方法:1.通过request跳转的方式,在中间弹出js代码。2.可以通过out.print()打印的方式把整个页面打印出来,这中间虽然是Java中输出,但是也是输出的页面。大体这么多,也可能有我不知道的方法,如果觉的可以,给分,谢谢。
如何通过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怎么调用javascript
可参考:package javaIjs;/*** @param args*/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 = System.getProperty("user.dir")+"/src/javaIjs/expression.js";// 读取js文件FileReader reader = new FileReader(jsFileName);// 执行指定脚本System.out.println(engine.getContext().getReader());engine.eval(reader);if (engine instanceof Invocable) {Invocable invoke = (Invocable) engine;// 调用merge方法,并传入两个参数// c = merge(2, 3);Double c = (Double) invoke.invokeFunction("merge1", 21, 3);System.out.println("c = " + c);}reader.close();}}
更多文章:
thinkpad l330(thinkpad l330升级)
2024年7月10日 10:02
dolby home theater v4(dolby home theater v4可以卸载吗)
2024年7月27日 11:30