`
suifongqi
  • 浏览: 56727 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JAVA结合JAVASCRIPT的应用实例

    博客分类:
  • JAVA
阅读更多
import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class AScript {
	public static void main(String[] arg) {
		ScriptEngineManager factory = new ScriptEngineManager();
		/**
		 * 浏览可用的脚本引擎
		 */
		// for (ScriptEngineFactory available : factory.getEngineFactories()) {
		// System.out.println(available.getEngineName());
		// }
		ScriptEngine engine = factory.getEngineByName("JavaScript");

		HelloWorld hello = new HelloWorld();
		
		
		/**
		 * 把java对象加入脚本中,作为脚本变量
		 */
		engine.put("script_hello", hello);
		// try {
		// engine.eval("script_hello.sayHello()");
		// } catch (ScriptException e) {
		// // TODO Auto-generated catch block
		// e.printStackTrace();
		// }
		try {
			engine.eval(new FileReader("HelloWorld.js"));
			
			/**
			 * 在java中调用脚本函数
			 */
			Invocable inv = (Invocable) engine;
			inv.invokeFunction("Person", "Tony");
			System.out.println("====================脚本实现java接口,java中调用实现=============================");
			MaxMin maxMin = inv.getInterface(MaxMin.class);
			System.out.println(maxMin.max(2, 1));
			System.out.println(maxMin.min(2, 1));
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ScriptException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

HelloWorld.js

script_hello.sayHello()
var life={};
for(life.age=1;life.age<=3;life.age++)
{
	switch(life.age)
	{
		case 1:
		life.body="我出生了";
		life.say = function(){print(this.body+'\n')};
		break;
		case 2:
		life.body="我长大了";
		life.brother="小弟弟变大了";
		life.say = function(){print(this.body+this.brother+'\n')};
		break;
		case 3:
		life.body="我老了";
		life.brother="儿子出来了";
		life.say = function(){print(this.body+this.brother+'\n')};
		break;
	}
	life.say();
}
function Person(name)
{
 print(name);
}

function min(first,second)
{
 return (first < second) ?first:second;
}

function max(first,second)
{
 return (first > second) ?first:second;
}




java接口MaxMin

public interface MaxMin {
	public int max(int a, int b);
	public int min(int a, int b);
	}
分享到:
评论

相关推荐

    java操作javaScript案例

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

    java与javascript互相加解密

    在实际应用中,为了增强安全性,通常会使用更安全的AES算法,或者结合非对称加密(如RSA)进行密钥交换。不过,理解如何在Java和JavaScript之间使用DES进行加解密,可以帮助开发者解决基本的跨平台加密需求。 总之...

    RSA 使用java 和javascript进行加解密

    在Web开发中,由于浏览器端不支持Java,而JavaScript则可以在客户端运行,因此,使用RSA在Java后端生成密钥对,并将公钥传递给JavaScript前端进行加密,再将加密后的数据发送回服务器,由Java后端使用私钥解密,是...

    基于Java和JavaScript的mujinxiaochu菜谱设计源码

    对于开发者来说,这款应用的源码可以作为学习和实践Java与JavaScript结合应用开发的典型案例,帮助他们深入理解前后端分离开发的模式。 在这个系统中,Java的类和方法可能会涉及数据持久化操作,如连接数据库、执行...

    javascript 语法教程及实例

    JavaScript 是一种广泛应用于Web开发的轻量级脚本语言,它在1995年由Netscape公司的Brendan Eich创造,最初名为LiveScript,后因Java的流行而更名为JavaScript,尽管名字相似,但它与Sun公司的Java语言在语法和设计...

    达内,Java,Javascript

    通过理论教学与实践案例相结合的方式,提升学员的动手能力和解决实际问题的能力。 【学习路径建议】 对于Java学习,首先需要掌握基础语法和面向对象编程思想,然后深入学习集合框架、多线程、I/O流、网络编程等...

    Java与Java+Applet和JavaScript间的混编方法

    虽然这种方法可以实现 JavaScript 和 Java 之间的交互,但由于安全性和兼容性问题,这种做法并不推荐在现代 Web 应用程序中使用。现代浏览器已经不再支持这种方式,因此开发者需要寻找其他替代方案。 #### 2. 从...

    基于JavaScript和Java的微信智能机器人Jeeves设计源码

    Java和JavaScript的结合,不仅反映了现代网络应用开发的趋势,也展示了跨语言协作的可能。该项目的成功构建和运行,无疑将为开发者提供一个参考实例,展示如何利用现有的编程语言和开发工具,快速构建出功能全面、...

    JAVA WEB项目开发案例精粹(源代码)

    Java Web项目开发案例精粹是针对使用Java语言进行Web应用程序开发的一个重要资源集合,它包含了丰富的源代码示例,旨在帮助开发者深入理解并实践Java Web技术。这些源代码实例覆盖了从基础到高级的各种应用场景,有...

    基于Java和JavaScript的ssm框架maven项目03设计源码

    在本项目中,使用Java和JavaScript结合SSM框架和Maven工具开发了一个完整的Web应用,源码文件以压缩包形式提供,文件总数达到91个,体现了项目的复杂性和完整性。 项目中的56个XML配置文件主要用于Spring框架的依赖...

    基于Java与JavaScript的系统性设计模式学习源码实例

    本项目以Java和JavaScript语言为例,提供了123个文件,用以展现和实践各种设计模式。项目中包含的文件类型丰富,涵盖了从后端到前端,从配置到展示的各个方面。 项目的核心部分由101个Java源文件组成,这些文件构成...

    android java and javascript bridge, inspired by wechat web.zip

    总的来说,Android Java与JavaScript桥接技术是Android开发中的一项重要技能,它结合了原生应用的性能和Web开发的便利性,为开发者提供了更灵活的开发方案。通过学习和掌握这一技术,开发者可以构建出功能丰富、用户...

    Java程序设计 Java设计与应用

    11. **Java应用实例**:通过实际项目案例,演示如何将所学知识应用于Web开发、桌面应用、移动开发等领域。 12. **JavaEE技术**:简要介绍Java企业版的相关技术,如Servlet、JSP、JDBC、EJB、Spring、Hibernate等。 ...

    基于Java和JavaScript技术的接种信息表设计源码

    基于Java和JavaScript技术的接种信息表设计源码,主要关注于疫苗接种信息的管理,同时具备跨平台性和可扩展性。该项目的设计理念在于利用Java的平台无关性和JavaScript的前端动态交互能力,共同打造一个适用于多种...

    基于Java、JavaScript、CSS、HTML、Shell的汽车管理平台设计源码

    在当前的信息技术领域,多种编程语言的结合使用已经成为开发复杂应用系统的一大趋势。本汽车管理平台便是一个典型的实例,它融合了Java、JavaScript、CSS、HTML以及Shell脚本语言,构建了一个功能丰富的系统。该系统...

    Java+ajax写的登录实例

    在IT行业中,Java和Ajax是两个非常重要的技术,它们经常被结合使用来创建交互性更强的Web应用程序。在这个“Java+ajax写的登录实例”中,我们将深入探讨如何利用这两种技术实现一个实时验证用户登录信息的功能。 ...

    基于Html语言的Java、JavaScript、CSS社区论坛设计源码

    这个基于Html语言的Java、JavaScript、CSS社区论坛设计源码项目,不仅为开发者提供了一个完整的社区论坛实现案例,还涵盖了从项目搭建到系统设计的多个关键环节,是一个学习和实践相结合的优秀资源。通过研究和使用...

    JavaScript:DWR的用法实例

    JavaScript Direct Web Remoting (DWR) 是一个开源的JavaScript库,它允许Web应用程序在客户端的JavaScript和服务器端的Java之间进行安全、简单的异步通信。这个框架极大地简化了AJAX(Asynchronous JavaScript and ...

    java web数据库应用系统开发与实例

    以上知识点构成了“Java Web数据库应用系统开发与实例”的核心内容,理解并熟练掌握这些,是成为一名合格的Java Web开发者的必要条件。通过实践案例,可以更好地理解如何将理论知识应用到实际项目中,提升开发技能。

    JAVA源码服务端JavaScript框架RingoJS

    RingoJS 是一个基于 Java 平台运行的 JavaScript 框架,允许开发者使用 JavaScript 编写服务端应用程序。RingoJS 的设计初衷是结合 Java 的强大功能和 JavaScript 的灵活性,为开发者提供一个高效、简单的后端开发...

Global site tag (gtag.js) - Google Analytics