`
laodaobazi
  • 浏览: 277802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript操作java对象

    博客分类:
  • Java
阅读更多

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;
    }
    
}

 

2
1
分享到:
评论
1 楼 zgpinguo 2012-04-04  
dwr就是一种javascript调用java方法的。。。

相关推荐

    Java对象请求的JavaScript经纪.zip

    在Java和JavaScript的交互中,常常会遇到需要在JavaScript环境中操作Java对象的需求,这通常涉及到一种技术叫做“Java对象请求的JavaScript经纪”(JavaScript Agent for Java Object Request)。这种技术允许...

    jquery转换java对象

    总结来说,jQuery主要用于前端JavaScript操作,而将JSON数据转换为Java对象的过程主要在后端完成,依赖于像Jackson这样的Java库。前端与后端之间的数据交换通常遵循RESTful API的原则,以JSON作为数据交换的载体。...

    javaScript和java参考手册

    JavaScript手册通常包含了关于ECMAScript规范、DOM操作、BOM(浏览器对象模型)以及各种JavaScript库和框架(如jQuery、React、Vue等)的信息。其中,ECMAScript是JavaScript的标准,定义了语法和基本对象;DOM...

    JavaApplet与JavaScript

    JavaScript 提供了许多内置的对象和方法,这些对象和方法可以用于处理 DOM (文档对象模型)、事件处理、日期时间操作、数学计算等。 **JavaScript 的例子:** 一个简单的 JavaScript 示例,用于更改 HTML 元素的内容...

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    可互操作的Java和JavaScript AES/128/192/256加密算法代码

    本主题主要关注的是如何在Java和JavaScript之间实现可互操作的AES(Advanced Encryption Standard)加密算法,这涉及到128、192和256位的密钥长度。AES是一种广泛应用的块密码,以其高效性和安全性著称,广泛用于...

    webview组件javascript调用java的小程序

    这个方法允许我们在Java对象上暴露一些方法,使得JavaScript可以调用这些方法。例如,我们可以创建一个Java对象,包含一些公共方法,然后通过`addJavascriptInterface`将这个对象注入到WebView的JavaScript环境中。...

    JavaScript与Java之间的区别

    这种机制使得Java程序可以在任何安装了JVM的操作系统上运行,体现了跨平台的特点。 - **JavaScript**则是一种解释型语言,其代码无需预先编译,在浏览器中直接被执行。这种特性使得JavaScript非常适合快速迭代和原型...

    效率非常快的java读取javascript,附带源码和js.jar

    2. **JavaScript到Java的互操作性**:Rhino允许JavaScript代码直接调用Java对象和方法,反之亦然,极大地增强了两种语言的交互性。 3. **嵌入到Java应用程序**:Rhino可以轻易地被嵌入到Java应用程序中,作为动态...

    java操作javaScript案例

    ### Java操作JavaScript案例详解 在Java与JavaScript的交互过程中,`ScriptEngine`类扮演着核心角色,自JDK 6.0起,Java正式引入了对脚本语言的支持,其中包括了JavaScript。这一特性极大地增强了Java应用程序的...

    第三章 JavaScript和Java语言

    ### 第三章 JavaScript和Java语言 #### 3.1 JavaScript **3.1.1 JavaScript 概述** JavaScript 是一种简洁、面向对象且跨平台的脚本语言,它可以直接嵌入到 HTML 文件中,由浏览器解释执行,无需事先编译。这种...

    javascript加密java解密

    这可能是一个Java类或脚本,用于接收JavaScript加密后的数据并进行解密操作。 总的来说,JavaScript加密和Java解密是Web应用中确保数据安全的重要技术,涉及客户端与服务器之间的数据交换和保护。理解这些概念和...

    JavaScript与Java在Web开发中的应用与区别 (1).pdf

    JavaScript是一种解释性编程语言,主要应用于客户端,用于验证用户输入的信息,而Java是一种面向对象的编程语言,主要应用于服务器端,用于处理用户的登录信息。 实例分析 在实例中,我们可以看到JavaScript与Java...

    json转对象(java 多级嵌套)

    5. **反向操作:Java对象转JSON** 除了将JSON转换为Java对象,我们还可以使用`ObjectMapper`将Java对象转换回JSON字符串,这对于前端展示或存储数据非常有用: ```java String json = mapper.writeValueAsString...

    javascript对象大全

    ### JavaScript对象大全详解 #### 一、JavaScript简介 JavaScript 是一种强大的、解释型的脚本语言,由 Netscape 公司开发,最初被命名为 LiveScript。随着 Web 技术的发展,JavaScript 成为了网页开发中不可或缺...

    java和js互调

    注意,这样做可能存在安全风险,因为JavaScript可以直接调用Java对象,可能导致数据泄露或应用被恶意利用。因此,对于暴露给JavaScript的Java方法,应谨慎处理参数并避免敏感操作。 在`webviewDemo`这个项目中,很...

Global site tag (gtag.js) - Google Analytics