「java解析脚本」java脚本之家
本篇文章给大家谈谈java解析脚本,以及java脚本之家对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java解析网页脚本
- 2、求解释JAVA脚本?
- 3、运用java与javascript集合对象运用能力以及对字符串解析
- 4、shell脚本调用java返回的字符串含有shell变量如何解析?
- 5、准备用JAVA写个RPG游戏 自己现在还是小白。。。。JAVA脚本到底是什么?求解释。。。尽量说细点哇亲~~
java解析网页脚本
我了解到的是,在java中如果想显示一个网页,并且执行js或vbscript很困难。
JEditor 和 JTextPane 无法做到。
不过有些相关的开源项目在做这样的东西,但很久之前的事情,我记不清楚了。
我上次在csdn.net上看到一篇文章,说的好像是在未来java7或java8版本中可能就会推出你想要的这个功能。
求解释JAVA脚本?
function showhidden(value){
var obj = $("(表单id)_TITLE").parentNode;//获得指定元素的父节点
while(obj .tagName != "TR") obj = obj .parentNode;//如果这个父节点的标签名不是TR的话,就再指向它的父节点,也就是obj是(表单id)_TITLE这个元素的爷爷了
if(value==0){//value是传进来的值
obj .style.display="none";//这个是控制css的显示样式,这个意思是不显示
}else{
obj .style.display="inline";//块元素变行内显示,具体请看css基础知识
}
}
//onchange数据库字段,在onchange事件中调用此JS
function ajaxBack(){//这个函数也没什么解释的了
var id=$("(表单id)_ONCHANGE").value;//获取指定元素的值
if(id!=""){//如果值不为“”
var flagurl ="|apppath|/examples/example.ajaxBack.jsp?userId="+id;//拼接一个url
var bakStr = _GetXMLBack(flagurl);//调用这个函数,传递的参数是上面拼接的url
$("(表单id)_TITLE").value=bakStr;//给元素赋值
}else{
$("(表单id)_TITLE").value="";
}
}
运用java与javascript集合对象运用能力以及对字符串解析
Java用ScriptEngine解析脚本
javax.script,始于JDK1.6,不过现在只有sun实现的JavaScript的解析器,难道是因为主要用来解析js语法所以归类到JEE的范畴?不过基本足够了,一般的用途主要是能解析通用的表达式就好,比如X = 1(X作为参数传入)这样的表达式,也能利用js的函数语法,创造一个就像Java的函数一样存在于内存中随时可以被调用的函数,更可以将js中的对象直接转换成java对象。
Script主要类及接口
ScriptEngineManager、ScriptEngine、CompiledScript和Bindings 4个类或接口
ScriptEngineManager是一个工厂的集合,可以通过name或tag的方式获取某个脚本的工厂并生成一个此脚本的ScriptEngine,目前只有javascript的工厂。通过工厂函数得到了ScriptEngine之后,就可以用这个对象来解析脚本字符串了,直接调用Object obj = ScriptEngine.eval(String script)即可,返回的obj为表达式的值,比如true、false或int值。
CompiledScript可以将ScriptEngine解析一段脚本的结果存起来,方便多次调用。只要将ScriptEngine用Compilable接口强制转换后,调用compile(String script)就返回了一个CompiledScript对象,要用的时候每次调用一下CompiledScript.eval()即可,一般适合用于js函数的使用。
Bindings的概念算稍微复杂点,我的理解Bindings是用来存放数据的容器。它有3个层级,为Global级、Engine级和Local级,前2者通过ScriptEngine.getBindings()获得,是唯一的对象,而Local Binding由ScriptEngine.createBindings()获得,很好理解,每次都产生一个新的。Global对应到工厂,Engine对应到ScriptEngine,向这2者里面加入任何数据或者编译后的脚本执行对象,在每一份新生成的Local Binding里面都会存在。
ScriptEngine代码示例
先来看一段JS
var arrclass = new Array();
arrclass.push(new Class(20000,"计算机-软件开发"));
arrclass.push(new Class(30000,"计算机-网络/通讯"));
arrclass.push(new Class(10000,"计算机-硬件开发"));
arrclass.push(new Class(40000,"计算机-管理"));
arrclass.push(new Class(50000,"计算机-品质管理/技术支持"));
arrclass.push(new Class(320000,"电子/电器/半导体/仪器仪表"));
java代码实现解析
public void parseJS() {
//1、通过Http请求获取js的String数据,格式如上
String jsData = getJsData("url");
//2、观察js结构,自定义Class,push到数组中,java中需要定义跟js中的Class的声明
String clazz = "function Class(classId, className){ this.classId=classId;this.className=className};";
//3、初始化ScriptEngine
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
//4、js中未定义返回对象,这里需要将Class数据转换成字符串的数组返回,个人觉得很别扭,不知道是理解错误还是确实如此?
//如果不这样做则直接在js后加上arrclass,cScript.evel()则返回NativeObject对象的数组
String fun = "var result = new Array() ;for(var i=0;i arrclass.length;i++){result.push(new Array(arrclass[i].classId,arrclass[i].className))}; result;";
Compilable compilable = (Compilable) engine;
//4、使用NativeArray获取数据
CompiledScript cScript;
try {
cScript = compilable.compile(clazz + jsData + fun);
NativeArray na = (NativeArray) cScript.eval();
for (int i = 0; i na.getLength(); i++) {
NativeArray nv = (NativeArray) na.get(i, null);
System.out.println(nv.get(0, null).toString() + " " + nv.get(1, null).toString());
}
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
java代码中执行js计算
public void js() {
// 创建脚本引擎管理器
ScriptEngineManager sem = new ScriptEngineManager();
// 创建一个处理JavaScript的脚本引擎
ScriptEngine engine = sem.getEngineByExtension("js");
try {
// 执行js公式
engine.eval("if(65){flag=true;}else{flag =false;}");
} catch (ScriptException ex) {
ex.printStackTrace();
}
//看看我们预期的反馈结果 true
System.out.println(engine.get("flag"));
}
Java解析JS另一大引擎-Rhino
Rhino是完全用Java编写的JavaScript的开放源代码实现。它通常是嵌入到Java应用程序提供给最终用户的脚本。它被镶嵌在J2SE6作为默认的Java脚本引擎。
使用Rhino来解析,感觉一切都很清晰明朗.
public void parseJS() {
//1、通过Http请求获取js的String数据,格式如上
String jsData = getJsData("url");
//2、定义跟js中的Class的声明
String clazz = "function Class(classId, className){ this.classId=classId;this.className=className};";
//3、初始化Context
Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects();
Object result = cx.evaluateString(scope, clazz + jsData + ";arrclass", "arrclass", 1, null);
System.out.println(NativeJSON.stringify(cx, scope, result, null, null));
Context.exit();
}
shell脚本调用java返回的字符串含有shell变量如何解析?
先运行java程序,然后用echo $?获取程序的运行结果,如果是字符串,可以使用
result=$(java -jar xxx.jar)来获取,当然这只是示例,$()中的命令使可以随便修改的
准备用JAVA写个RPG游戏 自己现在还是小白。。。。JAVA脚本到底是什么?求解释。。。尽量说细点哇亲~~
java脚本:意思是 javaScript 这门脚本语言。与java 没有关系。
要了解javascript 点击
关于java解析脚本和java脚本之家的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。