`
ferreousbox
  • 浏览: 287810 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java脚本框架介绍与应用(1)

    博客分类:
  • java
阅读更多

    脚本语言因其方便、简洁等特性越来越受到关注,如javascript和groovy。在某些时候,使用脚本语言完成和java一样的功能时会编写得更快更方便,拿java中列表来说,使用java代码和groovy代码的比较如下:

 

 

// 这是java代码
List<String> list = new ArrayList<String>();
list.add("obj1");
list.add("obj2");

// 这是groovy代码
list = ["obj1", "ojb2"];

 

    可以看到,脚本语言更加简洁快速。脚本语言往往是解释性的语言,因此在运行期间动态更改更加利于我们进行测试而无须编译。所以,在需要进行快速编写和频繁修改的前提下,脚本语言的优势得以体现。java从1.6开始就已经将脚本语言的支持加入到标准API中来了,在javax.script包中可以看到该脚本框架的所有功能。如果有用过BSF的话,相信对脚本框架也应该相对比较熟悉了,java脚本语言框架提供的主要功能有:

 

1、使用ScriptEngine标准接口来执行脚本语言(包括代码段、函数、获取返回值等)

 

     该接口是主要的使用接口,可以通过字符串、文件来执行给定的脚本并获取返回值。背后是各个脚本语言引擎的实现

 

2、使用Binds和ScriptContext提供java和脚本语言间的参数传递(支持命名空间)

 

     对每个脚本引擎而言都有独立的命名空间来进行参数传递,同时也提供全局的命名空间和自定义命名空间。java程序和脚本语言可以通过命名空间相互传递参数

 

3、提供对脚本语言的编译/解析缓存(如groovy)以提高执行效率

 

     这是针对实现了Compilable接口的引擎而言的,可以用来缓存编译/解析结果以提供重复执行的效率。比如groovy可以将代码编译为java字节码来执行,效率提高是非常明显的。

 

4、其他功能

 

    其实我们使用前3个主要功能就够了,足可以满足我们在java程序中使用脚本语言的便利。java1.6版的JRE已经自带了javascript脚本语言的实现引擎,采用的是ECMAScript规范的实现Mozilla Rhino。因此,默认我们就可以使用脚本框架在java程序中执行和调用javascript代码了。对于javascript而言,和我们平常在浏览器中使用的基本上都一样,因为都是兼容ECMAScript规范的。有区别的是浏览器中的javascript扩展了可以对DOM对象操作的功能,这是ECMAScript规范中没有的,所以不用指望可以使用类似alert等这样的方言功能了(所有window对象的属性和方法都不可用用的)

 

    使用脚本框架执行javascript是非常简单的,举个简单的例子如下,只需要3个步骤就可以:

 

 

// 脚本引擎管理器,用来动态查找所有的脚本引擎
ScriptEngineManager sem = new ScriptEngineManager();

// 获取js引擎
ScriptEngine jsEngine = sem.getEngineByExtension("js");

// 执行一个js中的打印方法
jsEngine.eval("println('Hello world')");

 

    ScriptEngineManager的动态查找方式是:搜索classpath路径中的所有jar文件,并读取jar文件中

/META-INF/services/javax.script.ScriptEngineFactory文件的内容,该文件就是指定了实现ScriptEngineFactory接口的

实现类。我们可以在jre/lib/resources.jar文件中找到javascript引擎的实现注册。

 

    ScriptEngine负责执行脚本,我们这里使用的是字符串,还可以是Reader对象从流中读取脚本内容。我们写一个js文件存放在类目录下,名称为js-1.js:

 

 

var array = [12,13,15,16,18];
for (var i = 0; i < array.length; i ++) {
	println("index:" + i + ",value:" + array[i]);
}

var obj = {};
obj.a = 'i am a';
obj.b = 'i am b';
for (var p in obj) {
	println("Attribute:" + p + ",value:" + obj[p]);
}
 

    然后写如下java代码保存在ScriptDemo类文件中执行:

 

 

ScriptEngineManager sem = new ScriptEngineManager();

ScriptEngine jsEngine = sem.getEngineByExtension("js");

jsEngine.eval(new InputStreamReader(ScriptDemo.class.getResourceAsStream("js-1.js")));

 

    运行后,我们就可以在控制台打印我们想要的结果了。如果想使用其他脚本语言的支持,直接将其实现了java脚本框架的jar包扔到classpath中即可。比如groovy的发行包已经实现了该规范,只需要将其发行包放入到classpath中然后调用即可。

 

 

    时间原因,暂时就写这么多吧,后面再慢慢补其他特性。。。

分享到:
评论
1 楼 liang1022 2009-09-16  
請問一下JDBC的存取可以寫在腳本裏嗎?
例如:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); Connection conn=DriverManager.getConnection("jdbc:derby:数据库名;create=true");

相关推荐

    Java脚本编程:语言、框架与模式

    根据给定的信息,“Java脚本编程:语言、框架与模式”这一主题包含了三个核心部分:Java作为一门编程语言的基础知识、流行的Java开发框架以及在Java编程中常用的软件设计模式。 ### Java编程语言 #### 1. Java语言...

    基于Java企业微信的开源应用开发框架&引擎.zip

    【标题】: "基于Java企业微信的开源应用开发框架&引擎" 这个标题表明我们讨论的是一个专注于企业微信集成的开源框架,它完全用Java语言编写。这个框架的主要目的是简化和加速开发者在企业微信平台上的应用开发工作...

    java脚本编程

    需要注意的是,这里提到的“Java脚本编程”可能是指与Java相关的脚本编程技术,但在实际中,Java本身并不是一种脚本语言,而是一种面向对象的编程语言。不过,Java生态系统中有多种脚本语言可以运行在Java平台上,...

    测试的java脚本

    这里的“测试的java脚本”可能是指一个专门用于执行自动化测试的Java程序,它可能包含了各种测试框架,如JUnit、TestNG等,用于验证特定功能或组件的行为是否符合预期。这样的脚本通常会包含单元测试、集成测试和/或...

    java应用简单嵌入脚本模块

    由于Groovy是与Java完全兼容的,所以它可以无缝地集成到Java项目中,为Java应用添加动态性。 1. **Groovy的特性**: - **简洁语法**:Groovy的语法比Java更简洁,比如它支持方法调用的链式操作,以及闭包(Closure...

    Java与脚本语言的整合与应用.pdf

    Java与脚本语言的整合与应用 本文主要探讨Java与脚本语言的整合与应用,讨论了Java平台和脚本语言之间的协同作用,如何使得开发商和最终用户可以相互合作,创造出更多有用和动态的应用程序。本文还对脚本语言的开发...

    java开源框架实例

    Java开源框架是开发高效、可维护的Java应用的重要工具,它们提供了一系列预定义的结构和组件,帮助开发者快速构建应用程序。本资源包包含了几个与Java开源框架相关的实例,旨在帮助初学者和经验丰富的开发者更好地...

    Java脚本语言程序员手册

    手册详细介绍了Java Scripting API(JSR 223)以及相关的脚本框架,如Rhino和Nashorn,这些都是Java平台中的重要组成部分,用于增强应用程序的动态性与交互性。 一、Java Scripting API (JSR 223) JSR 223是Java的...

    Java 8 Nashorn 脚本引擎

    Java 8 Nashorn脚本引擎是Java平台上的一个强大工具,它允许开发者在Java应用程序中直接执行JavaScript代码。Nashorn引擎是Oracle公司为Java 8引入的一个重要特性,其目的是提升Java与JavaScript之间的互操作性,...

    基于ssh框架的mysql数据库导出脚本

    - 在SSH框架中,可以编写Java脚本来执行数据库导出任务。这可能涉及到创建一个Spring Bean,该Bean负责执行数据库操作,如查询所有表并导出到CSV或SQL格式的文件。 - 使用Spring的`JdbcTemplate`或`...

    Java Spring 的框架简介外文文献加翻译

    Spring 是一个广泛使用的开源Java框架,主要设计用于简化企业级应用程序开发。它由Rod Johnson在2003年创建,最初作为一个轻量级的IoC(Inversion of Control,控制反转)容器,如今已发展成为一个全面的框架,涵盖...

    java 管理系统,采用框架构成

    对于Java初学者而言,这是一个很好的学习资源,能够帮助他们理解和掌握实际项目中的框架应用。 Struts是Apache组织开发的一个MVC(Model-View-Controller)框架,它为Java Web应用程序提供了结构化开发的框架。在...

    Java高手真经(应用框架卷):Java+Web核心框架电子书

    《Java高手真经(应用框架卷):Java+Web核心框架电子书》是一部深度探讨Java技术和Web应用框架的专业著作,旨在帮助读者掌握Java语言在Web开发中的核心应用和框架技术。书中涵盖了Java语言基础、Web开发环境搭建、...

    一个java tcp服务器的基础框架

    Java TCP服务器基础框架详解 在Java编程中,TCP(Transmission Control Protocol)服务器是网络通信的基础,用于实现客户端与服务器之间的可靠数据传输。本框架提供了一个简单的起点,帮助开发者快速搭建自己的TCP...

    java框架SSM项目案例

    SSM框架是Java开发Web应用时常用的三大组件的组合,分别是Spring、SpringMVC和MyBatis。这个项目案例提供了一个完整的SSM整合实例,帮助开发者深入理解和掌握这些技术的协同工作方式。 **Spring框架**是Java企业级...

    java SSM框架 商城系统源码(含数据库脚本).rar

    1. **Spring框架**:Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得开发者可以更专注于业务逻辑的实现,而不是底层的基础设施。在SSM中,Spring负责管理整个应用...

    java框架各类帮助文档

    1. **Spring框架**:Spring是最流行的Java企业级应用开发框架,其核心特性包括依赖注入(DI)和面向切面编程(AOP)。Spring文档详细介绍了如何配置和使用IoC容器、AOP、事务管理、数据访问、Web MVC以及Spring Boot和...

    java 动态脚本语言 精通 Groovy

    Groovy与Java兼容性极佳,可以直接调用Java类库,使得它在Java生态系统中具有广泛的应用。 1. **Groovy的简洁语法**:Groovy的语法比Java更加简洁,比如它允许省略括号、类型声明等,这使得代码更易读写。例如,...

Global site tag (gtag.js) - Google Analytics