`
famoushz
  • 浏览: 2951275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

 BSF

  一、 BSF 是什么?

  Bean Scripting Framework(BSF)是一个支持在Java应用程序内调用脚步语言 (Script),并且支持脚步语言直接访问Java对象和方法的一个开源项目。有了它 , 你就能在java application中使用javascript, Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反过来也可以,就是在这些scripting language中调用任何已经注册过了的JavaBean,java object。

  它提供了完整的API实现通过Java访问脚本语言的引擎。目前BSF 支持以下几种脚本语言:

  Javascript (using Rhino ECMAScript, from the Mozilla project)

  NetRexx (an extension of the IBM REXX scripting language in Java)

  Python (using Jython)

  Tcl (using Jacl)

  XSLT Stylesheets (as a component of Apache XML project's Xalan and Xerces)

  另外,也支持以下的这几种语言通过他们自身的BSF引擎来实现(下面提到的各个脚本语言的引擎都可以在其官网下载到)。

  Java (using BeanShell, from the BeanShell project)

  Groovy

  JLog (PROLOG implemented in Java)

  JRuby

  JudoScript

  ObjectScript

  ooRexx (Open Object Rexx), using BSF4Rexx.

  BSF最初是IBM的Alpha工作组的项目后来贡献给了Apache,这个项目的目的就是为使得在脚本语言的环境下访问JavaBean的内容。相信使用过这个Apache项目的朋友应该不多。但是这是一个很好的idea。可以使得Java能够更好的于各种流行脚步语言整合,实现不同语言之间的交互作用。随着Groovy, Ruby等脚步语言的走红。这个项目可能会有更大的发挥余地。试想一下,使用Java来编写模块,使用脚步来排列组合各个模块。并且可以通过bsf来统一管理运行多种不同脚步,这样也算是不错的想法。当然具体运用它还要看实际项目的需要。

  官网地址:http://jakarta.apache.org/bsf/。

  二、如何安装?

  把bsf.jar文件当做class library来安装.另外一个非常重要的包是js.jar(假如你用javascript的话),也要装进来,否则会找不到javascriptEngine。

  三、如何使用?

  在JSP中使用BSF:

  省略

  在servlet / formBean / java application中使用BSF:

  Step 1. import BSF class

  例如: 这些包都是要用到的.

  import org.apache.soap.util.IOUtils; (这个包用于把javascript文件给变成String,才能扔进BSF引擎中处理)

  import org.apache.bsf.*; (BSF引擎就在这里)

  import org.apache.bsf.engines.javascript.*;

  import java.io.*;

  import java.util.*;

  Step 2. initiate BSFManager object

  例: bsfmgr = new BSFManager();

  Step 3.使用BSFManager.eval(….) 或 BSFManager.exec(…) 就可以执行javascript了.

  例:

  Object obj = bsfmgr.eval( “javascript”, XX, YY, ZZ, script ) : 返回script的值,以object的形式.

  bsfmgr.exec( “javascript”, XX, YY, ZZ, script): 执行这script.返回空!

  第一个参数javascript可以换成其它如perl, python, tcl……

  XX: The name of the input source (typically a filename; here, it's always simply Evaluator),没有什么用,任何string都行.

  YY: The line number, 通常为0,

  ZZ: The character position of the given script in the input source (these arguments are for error reporting), 通常为0最后一个参数是要执行的script语句, 是String就行了.

  Step 4:

  在java class 中注册一个javaBean, mgr.declareBean("PS", ps, ps.getClass()), “PS” 和 ps(一个javaBean的 instance) 绑定在一起了. 以后在 javascript文件中,直接用 PS就可以找到这个javaBean了.

  如果你用另外一种注册方法: mgr.registerBean("PS",ps) , 那么在javascript文件中,用PS = bsf.lookupBean("PS") 来在BSFManager中找到PS这个javaBean. Bsf就代表BSFManager.

  常用的method参考:

  BSFManager() - the BSFManager constructor

  • eval() - used to evaluate a script and return its value

  • exec() - used to execute a script

  • loadScriptingEngine() - used to return a BSFEngine for the desired scripting language

  • registerBean() - adds an object to BSF’s object registry

  • lookupBean() - retrieves an object from BSF’s object registry

  • declareBean() - creates an implicit object in the context of any loaded scripting language, which does not have to be accessed via lookupBean()

分享到:
评论

相关推荐

    TTP229-BSF数据手册

    ### TTP229-BSF 数据手册解析 #### 一、概述 TTP229-BSF 是一款TonTouch™系列触控检测集成电路(IC),专为触控板控制设计。它采用电容式传感技术,适用于通过非导电介质材料连接的人机界面控制面板,主要用于...

    bsf-all-3.1.jar

    【标题】"bsf-all-3.1.jar" 是一个Java库文件,它包含了Bean Scripting Framework(BSF)的全部功能。这个框架允许在Java应用程序中使用多种脚本语言,提高了开发灵活性和代码可扩展性。 【描述】"bsf-all-3.1.jar ...

    BSF(java中使用javascript)

    ### BSF(Java中使用JavaScript) #### 一、BSF简介 BSF(Bean Scripting Framework,豆脚本框架)是Apache的一个项目,它提供了一种机制,使得开发者能够在Java应用中集成各种脚本语言,如JavaScript、Python、...

    bsf-bin-2.4.0.zip

    【标题】"bsf-bin-2.4.0.zip"是一个软件分发包,它包含了Bean Scripting Framework(BSF)的二进制版本,版本号为2.4.0。BSF是一个Java平台上的框架,它允许在Java应用程序中嵌入和使用各种脚本语言。这个压缩包主要...

    BSF网元bug导致SA用户VoLTE业务故障.pdf

    问题的根源最终被确定为BSF(Binding Support Function)网元的一个bug。 BSF是5G核心网中的一个重要组件,它负责AF(Application Function)对PCF(Policy Control Function)的寻址。当SA用户进行VoLTE通话时,...

    bsf-bin-2.4.0.tar

    标题 "bsf-bin-2.4.0.tar" 指的是一个名为 "bsf-bin-2.4.0" 的二进制软件包的tar格式压缩文件。这个文件通常是用于在Linux或类Unix系统中分发软件的常见方式。"bin" 在这里通常代表 "binary",意味着里面包含的是可...

    ant-apache-bsf-1.6.jar.zip

    《Ant Apache BSF 1.6.jar:Java构建工具与脚本引擎的融合》 Apache Ant,一个由Apache软件基金会开发的Java库和命令行工具,它的任务是驱动Java项目构建过程。Ant以其XML为基础的构建文件(build.xml)而闻名,它...

    groovy-bsf-2.3.0.zip

    标题 "groovy-bsf-2.3.0.zip" 提供的信息表明,这是一个与Groovy语言和BSF(Bean Scripting Framework)相关的开源项目。Groovy是一种基于Java平台的动态编程语言,它扩展了Java的语法,提供了简洁、灵活的语法,...

    ant-apache-bsf.jar.zip

    《Ant与Apache BSF在Java开发中的应用》 在Java开发过程中,我们常常会遇到构建自动化的需求,这就是Apache Ant(Ant)大显身手的地方。Apache Ant是一个Java库和命令行工具,其任务是驱动构建过程。它通过XML来...

    ant-apache-bsf-1.7.1.jar.zip

    《Ant Apache BSF 1.7.1:构建自动化与脚本引擎的融合》 Apache Ant,一个由Java编写的开源构建工具,是Java开发者进行项目构建和管理的重要选择。它以其灵活性和可扩展性而著称,允许用户通过XML定义构建任务。...

    bsf.jar

    `bsf.jar` 是一个与Java相关的库文件,它的全称是Bean Scripting Framework(Bean脚本框架)。这个框架主要用于在Java应用中集成各种脚本语言,如JavaScript、Python、Perl等,使得开发者可以在Java程序中方便地使用...

    bsf.zip_BSF_bsf delp

    BSF.zip_BSF_bsf delp 是一个针对DELPHI开发环境的控件包,它包含了一系列名为"BSF"的组件。这个压缩包显然专为DELPHI开发者设计,目的是提供一系列强大的控件和功能,以提升软件开发的效率和质量。BSF代表了...

    BSF-Skins

    BSF-Skins是一款专为BCB (Borland C++ Builder) 和 Delphi 开发环境设计的皮肤库,它提供了50种不同的皮肤样式,可以让开发者轻松地为他们的应用程序添加美观的用户界面。这款控件集使开发者能够快速地改变应用外观...

    bsf-2.4.0.jar

    bsf-2.4.0.jar Jar文件类型:-B Jar运行环境:JDK1.4, JDK1.5, JDK1.6 授权方式:共享软件 更新时间:2008-10-17

    3GPP标准协议中英文对照版-BSF服务-29521-g10(Binding Support Management Service).docx

    3GPP 标准协议中英文对照版 - BSF 服务 - 29521-g10(Binding Support Management Service) Binding Support Management Service 是 3GPP 标准协议中的一部分,它属于 5G 系统中的 BSF(Binding Support Function...

    bsf-2.4.0-4.1.el6.noarch.rpm

    bsf-2.4.0-4.1.el6.noarch.rpm是centos工具包。

    ant-apache-bsf-1.8.1.jar

    标签:ant-apache-bsf-1.8.1.jar,ant,apache,bsf,1.8.1,jar包下载,依赖包

    bsf.rar_BusinessSkin_bsdbctrls.h_bsf delp_bsf.rar _skin

    【标题】"bsf.rar_BusinessSkin_bsdbctrls.h_bsf delp_bsf.rar _skin" 提供的是一款经过修改后适用于C++ Builder的BusinessSkin库,它解决了原版在C++ Builder环境下无法正常安装和运行的问题。BusinessSkin是一个...

    ant-apache-bsf-1.9.0.jar

    标签:ant-apache-bsf-1.9.0.jar,ant,apache,bsf,1.9.0,jar包下载,依赖包

    BSF 98个皮肤和汉化过的皮肤编辑器

    BSF 98个皮肤和汉化过的皮肤编辑器。2005果冻布丁献大礼!

Global site tag (gtag.js) - Google Analytics