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

Rhino-Java中的脚本执行者

阅读更多
  JavaScript 是一门众所周知的语言,它可以动态操作和访问 Web 页面的内容。采用 Rhino(JavaScript 的 100% 纯 Java 实现)之后,很多 Java 开发人员发现,JavaScript 也是一种快速构建和部署基于 GUI 的应用程序的优秀工具。本文是 alt.lang.jre系列的第 5 部分,在文中,developerWorks 的撰稿人 Michael Squillace 将向您简要介绍 Rhino 的基础知识,它是 Java 平台上的一种基于原型的 Java 语言的可替代品。
Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现。与本系列的其他很多语言一样,Rhino 是一种动态类型的、基于对象的脚本语言,它可以简单地访问各种 Java 类库。Rhino 从 JavaScript 中借用了很多语法,让程序员可以快速编写功能强大的程序。最为明显的区别是,Rhino 不再使用语句结束符( ; ),放宽了变量声明规则,并且极大地简化了修改和检索对象属性的语法(没有求助于调用存取方法)。

  由于 Rhino 是 JavaScript 的一种基于 Java 的实现,所以对于 Java 开发人员来说,它应该特别易于使用。JavaScript 的(以及 Rhino 的)语法非常类似于 Java 编程语言。这两种语言都采用了与 Java 编程语言相似的循环和条件结构,并且遵循类似的语法模式来表示这些结构。

  虽然 Rhino 与本系列文章中介绍的其他编程语言具有很多共同点,但对于 Java 平台上的编程而言,它也有独特之处(可能有时有些不同的地方)。Rhino 是一种 基于原型的(prototype-based)语言,而不是一种 基于类的(class-based)语言。在 Rhino 中,您可以构建对象,而不是类。除了类的对象实例之外,这样做还可以让您避免构建和操作类的开发、部署和执行成本。正如您将在文中发现的那样,诸如 Rhino 这类基于原型的语言在开发和运行基于 GUI 的应用程序时尤其有效。

  在开始学习 Rhino 基础知识之前,先了解一下有关 JavaScript 的起源和目的可能会非常有用,JavaScript 为 Rhino 提供了很多独特的特性。JavaScript 的历史与 Web 浏览器动态表示和操作 Web 页面内容的能力是相符合的。JavaScript 的第一个版本(最初称为 LiveScript)是由 Netscape Communications 公司于 1995 年发布的,它是 Netscape Navigator 2.0 Web 浏览器的一部分。JavaScript 打算为程序员提供一种简单而直观的方法,编写一些可以在 Web 页面上下文中执行任务的简单脚本。在随后的一年中,Microsoft 引入了 JScript,它自己的用于 Internet Explorer 的 JavaScript 端口。

  这两个版本的 JavaScript 都包括一个基于对象的 API,称为 文档对象模型(Document Object Model)或 DOM,用以访问和操作 Web 页面的内容。JavaScript 的第三个实现是一种新的脚本语言,称为 EcmaScript,其目的是对自己和 DOM 进行标准化。不幸的是,Microsoft 和 Netscape 都没有完全实现 EcmaScript 标准,因此到今天都还存在兼容方面的问题。

  随着 Java 语言在 20 世纪 90 年代末期取得的成功,Netscape 计划发布 Javagator,它是 Navigator 中一个 100% 的纯 Java 实现。虽然 Javagator 从来没能开花结果,但是 Netscape 对 JavaScript 的移植(称为 Rhino)已经经过时间的考验存活了下来。Rhino 是 JavaScript 1.5 脚本语言的一个 100% 的纯 Java 实现,不包含 DOM API。实际上,Rhino 有时仍然被当作 Netscape 的基于 Java 的 JavaScript。

  Rhino 是一种轻量级的、功能强大的脚本语言。其语法与 Java 编程语言类似,都广泛采用了 Java 语言中所没有的数据类型,这使它成为在 Java 平台上快速进行开发的一种优秀工具。正如本文介绍的那样,Rhino 使用原型而不是类,这使它比很多脚本语言更适合开发 GUI 应用程序,在考虑性能和风格等因素时更是如此。

Rhino 的主要缺点也正是它的强大之处:它的基础是 Java 语言,这使得它简单易学,但是有时对于一种脚本语言来说,它又太过复杂。Rhino 的基于原型的方法是把双刃剑;其良好的品质使得它成为适合某些任务的惟一选择,在其他情况中却又似乎太过单调乏味。对于那些从 Java 环境中转换过来的开发人员来说更是如此。

这就是说,Rhino 可能是本系列文章中介绍的所有脚本语言中最流行的一种,因此吸引了众多求知欲旺盛而又见多识广的开发人员的注意力。在处理 Web 浏览器中的内容来动态描绘和操作 Web 内容的时候,Rhino 无疑是首选。


  相信大家对Rhino有了一定了解,英文文档参考地址:http://developer.mozilla.org/en/docs/Rhino_documentation,这里可以找到你想了解的更多的信息。我也在学习它,因为它对我的项目是需要的。(资料整理收集来自IBM)

分享到:
评论
1 楼 abruzzi 2009-01-04  
给些例子吧,这样干讲没什没意思,呵呵

相关推荐

    java脚本 快速学习

    "java脚本 快速学习"的压缩包可能包含了各种教程、示例代码和练习,帮助初学者快速掌握Java中的脚本使用和JavaScript的基本语法。建议从以下几个方面入手: 1. 学习JSAPI的使用方法,了解ScriptEngine接口和...

    Java脚本语言程序员手册

    《Java脚本语言程序员手册》是一本专门为Java脚本编程者设计的指南,旨在帮助开发者深入理解和高效利用Java脚本语言。手册详细介绍了Java Scripting API(JSR 223)以及相关的脚本框架,如Rhino和Nashorn,这些都是...

    Rhino-开源

    - 服务器端脚本:在Java应用服务器中,Rhino可以作为服务器端的脚本引擎,用于动态生成网页内容、处理表单数据等。 - 数据库脚本:在数据库管理系统中,Rhino可以用来编写存储过程,实现更灵活的数据处理逻辑。 - ...

    BSF(java中使用javascript)

    通过这个框架,Java应用程序可以轻松地调用脚本语言执行特定任务,并且这些脚本语言能够访问Java Bean和Java对象。 #### 二、BSF安装与配置 为了在Java程序中使用BSF,首先需要将`bsf.jar`添加到项目的类路径中。...

    Java执行JS脚本工具

    Java执行JavaScript脚本工具主要指的是Java中用于运行和交互JavaScript代码的库,使得开发者能够在Java应用程序中嵌入和执行JS脚本。这种功能通常通过Java的ScriptEngine接口和相关的实现来实现,例如Nashorn ...

    rhino 17_3

    5. **教育与培训**:Rhino因其开源性质和易于理解的特性,常被用作教学工具,帮助初学者理解JavaScript和Java之间的桥梁,以及如何在实际项目中利用它们。 6. **Android应用开发**:在Android平台上,Rhino可用于...

    Java编写的网页浏览器

    Java浏览器项目可能不支持JavaScript执行,或者使用了Rhino或Nashorn这样的JavaScript引擎来解释运行JavaScript代码。 此外,考虑到浏览器还需要处理URL的重定向、cookies管理、历史记录等功能,开发者需要理解`...

    java实现网页浏览器

    虽然Java自身不支持执行JavaScript,但可以借助Rhino或Nashorn JavaScript引擎(Java 8及之前)或者采用开源库GraalVM的JavaScript引擎来实现。这样,浏览器就能执行网页中的JavaScript代码并与Java环境交互。 此外...

    用java写的一个小浏览器(源代码)

    在Java中,这可能涉及到使用第三方库如Jsoup来解析HTML,处理DOM树,以及使用Rhino或Nashorn JavaScript引擎执行JavaScript代码。这些库帮助开发者实现网页内容的解析和交互。 接着,用户界面(UI)部分,可能会...

    基于java的服务端JavaScript框架 RingoJS.zip

    RingoJS是一个强大的开源框架,它允许开发人员在Java平台上...无论是初学者还是经验丰富的开发者,都能从其强大而灵活的特性中受益。通过深入学习和实践RingoJS,开发者能够提升自己的技能,创建出高性能的Web服务。

    java浏览器.rar

    虽然Java语言与JavaScript不同,但Java浏览器可以通过JavaFX的WebEngine或嵌入JavaScript引擎如Rhino或Nashorn来执行JavaScript代码,实现与网页的交互。 此外,对于一些高级功能,比如cookies管理、缓存策略、多...

    JAVA做的网页浏览器

    JAVA可以使用Rhino或Nashorn这样的JavaScript引擎来执行网页中的脚本。 6. **用户界面**:使用JAVA Swing或JavaFX库创建浏览器的用户界面,包括地址栏、前进/后退按钮、书签等功能。这些组件需要与后台的HTTP请求和...

    JAVA 制作HTML浏览器

    JavaScript的执行则较为复杂,可能需要实现一个简单的JavaScript引擎,如Rhino或Nashorn,或者使用第三方库如GraalVM。 4. **页面渲染**:解析后的DOM树需要转换为可视化的界面。这需要构建一个渲染引擎,可以使用...

    基于Java的服务端JavaScript框架 RingoJS.zip

    无论是Java开发者希望尝试新的开发模式,还是JavaScript爱好者寻找后端解决方案,RingoJS都是一个值得探索的优秀框架。通过熟悉RingoJS,开发者不仅可以掌握服务端JavaScript编程,还能深入了解Java生态系统,为今后...

    软件技术综合训练课程设计-Web浏览器程序设计.doc

    - **JavaScript执行环境**:为了支持网页的交互性,浏览器需要一个JavaScript引擎,如Rhino或Nashorn(Java 8)。 - **URL处理**:处理和解析URL,支持导航和书签功能。 - **安全机制**:考虑到网络安全,浏览器...

    htmlunit-2.1.5源码

    - **JavaScriptEngine**:执行JavaScript代码的引擎,通常基于Rhino或Nashorn JavaScript引擎。 - **CssParser**:处理CSS样式表,解析并应用到HTML元素上。 深入研究这些源代码,我们可以学习如何自定义WebClient...

    CharlaAndroid201508:犀牛和Vaadin使用。 Android会议

    如果您执行嵌入在要在Web和android中复制的对象和/或模块中的业务“逻辑”,则Rhino可以像在Java(Narshorm)中一样帮助拥有JS机器,而无需更改脚本中的任何内容。 就我而言,我使用Vaadin在服务器上执行逻辑,从而...

    jdk 1.6 中文版 API

    9. **脚本引擎(Scripting Engines)**:JSR 223(Scripting for the Java Platform)引入了脚本引擎支持,如JavaScript(Rhino)和Groovy,使Java平台可以嵌入和执行多种脚本语言。 10. **改进的JDBC(Java ...

Global site tag (gtag.js) - Google Analytics