JavaScript操作Java对象的实现:
代码片段1(获取脚本引擎):
import java.util.List;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class GetSupportedScriptingEngine {
public static void main(String[] args) {
//创建一个ScriptEngineManager
ScriptEngineManager manager = new ScriptEngineManager();
//取得所有ScriptEngineFactory
List<ScriptEngineFactory> factories = manager.getEngineFactories();
//遍历输出
for (ScriptEngineFactory factory : factories) {
System.out.println("EngineName = " + factory.getEngineName());
System.out.println("EngineVersion = " + factory.getEngineVersion());
System.out.println("LanguageName = " + factory.getLanguageName());
System.out.println("LanguageVersion = " + factory.getLanguageVersion());
System.out.println("Extensions = " + factory.getExtensions());
List<String> names = factory.getNames();
for (String name : names) {
System.out.println("Engine Alias = " + name);
}
//通过factory获取ScriptEngine
ScriptEngine scriptEngine = factory.getScriptEngine() ;
//ScriptEngine scriptEngine1 = manager.getEngineByExtension("js") ;其他方式获取
//ScriptEngine scriptEngine2 = manager.getEngineByName("JavaScript") ;其他方式获取
try {
//脚本引擎执行JavaScript语句
scriptEngine.eval("var arr = new Array() ; arr.push(1); print(arr.pop())") ;
} catch (ScriptException e) {
e.printStackTrace();
}
}
}
}
代码片段2(JS操作Java):
import java.util.ArrayList;
import java.util.List;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JSModifiedJava {
public void sayHello(String name){
System.out.println("*************Hello***************"+name);
}
public static void main(String[] args) {
//创建 List对象,并添加3个原用户
List<String> us = new ArrayList<String>();
us.add("JLee 1");
us.add("JLee 2");
//获得JS引擎
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByExtension("js");
//把List对象加入JS引擎
engine.put("usList", us);
//将要操作的对象法如引擎
engine.put("obj", new JSModifiedJava()) ;
try {
engine.eval(getScript());//通过引擎调用getScript()
//显示所有用户
for (String usname : us) {
System.out.println("所有用户 = " + usname);
}
} catch (ScriptException e) {
e.printStackTrace();
}
//根据JavaScript名获取一个脚本引擎实例
ScriptEngine engine2 = manager.getEngineByName("JavaScript");
try {
engine2.eval("print('Hello JLee ...')");
} catch (ScriptException e) {
e.printStackTrace();
}
}
//获取JavaScript串
private static String getScript() {
//我们在脚本里添加4个新用户
String script =
"var index; " +
"var usname = usList.toArray(); " +
"for (index in usname) { " +
" println('原用户='+usname[index]); " +
"}" +
"usList.add(\"JLee 3\"); " +
"usList.add(\"JLee 4\"); " +
"obj.sayHello('JLee')" ;
return script;
}
}
分享到:
相关推荐
在Java和JavaScript的交互中,常常会遇到需要在JavaScript环境中操作Java对象的需求,这通常涉及到一种技术叫做“Java对象请求的JavaScript经纪”(JavaScript Agent for Java Object Request)。这种技术允许...
总结来说,jQuery主要用于前端JavaScript操作,而将JSON数据转换为Java对象的过程主要在后端完成,依赖于像Jackson这样的Java库。前端与后端之间的数据交换通常遵循RESTful API的原则,以JSON作为数据交换的载体。...
JavaScript手册通常包含了关于ECMAScript规范、DOM操作、BOM(浏览器对象模型)以及各种JavaScript库和框架(如jQuery、React、Vue等)的信息。其中,ECMAScript是JavaScript的标准,定义了语法和基本对象;DOM...
JavaScript 提供了许多内置的对象和方法,这些对象和方法可以用于处理 DOM (文档对象模型)、事件处理、日期时间操作、数学计算等。 **JavaScript 的例子:** 一个简单的 JavaScript 示例,用于更改 HTML 元素的内容...
面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...
本主题主要关注的是如何在Java和JavaScript之间实现可互操作的AES(Advanced Encryption Standard)加密算法,这涉及到128、192和256位的密钥长度。AES是一种广泛应用的块密码,以其高效性和安全性著称,广泛用于...
这个方法允许我们在Java对象上暴露一些方法,使得JavaScript可以调用这些方法。例如,我们可以创建一个Java对象,包含一些公共方法,然后通过`addJavascriptInterface`将这个对象注入到WebView的JavaScript环境中。...
这种机制使得Java程序可以在任何安装了JVM的操作系统上运行,体现了跨平台的特点。 - **JavaScript**则是一种解释型语言,其代码无需预先编译,在浏览器中直接被执行。这种特性使得JavaScript非常适合快速迭代和原型...
2. **JavaScript到Java的互操作性**:Rhino允许JavaScript代码直接调用Java对象和方法,反之亦然,极大地增强了两种语言的交互性。 3. **嵌入到Java应用程序**:Rhino可以轻易地被嵌入到Java应用程序中,作为动态...
### Java操作JavaScript案例详解 在Java与JavaScript的交互过程中,`ScriptEngine`类扮演着核心角色,自JDK 6.0起,Java正式引入了对脚本语言的支持,其中包括了JavaScript。这一特性极大地增强了Java应用程序的...
### 第三章 JavaScript和Java语言 #### 3.1 JavaScript **3.1.1 JavaScript 概述** JavaScript 是一种简洁、面向对象且跨平台的脚本语言,它可以直接嵌入到 HTML 文件中,由浏览器解释执行,无需事先编译。这种...
这可能是一个Java类或脚本,用于接收JavaScript加密后的数据并进行解密操作。 总的来说,JavaScript加密和Java解密是Web应用中确保数据安全的重要技术,涉及客户端与服务器之间的数据交换和保护。理解这些概念和...
JavaScript是一种解释性编程语言,主要应用于客户端,用于验证用户输入的信息,而Java是一种面向对象的编程语言,主要应用于服务器端,用于处理用户的登录信息。 实例分析 在实例中,我们可以看到JavaScript与Java...
5. **反向操作:Java对象转JSON** 除了将JSON转换为Java对象,我们还可以使用`ObjectMapper`将Java对象转换回JSON字符串,这对于前端展示或存储数据非常有用: ```java String json = mapper.writeValueAsString...
### JavaScript对象大全详解 #### 一、JavaScript简介 JavaScript 是一种强大的、解释型的脚本语言,由 Netscape 公司开发,最初被命名为 LiveScript。随着 Web 技术的发展,JavaScript 成为了网页开发中不可或缺...
注意,这样做可能存在安全风险,因为JavaScript可以直接调用Java对象,可能导致数据泄露或应用被恶意利用。因此,对于暴露给JavaScript的Java方法,应谨慎处理参数并避免敏感操作。 在`webviewDemo`这个项目中,很...