zoukankan      html  css  js  c++  java
  • BSF脚本引擎

      BSF即为Bean Scripting Framework的缩写

    官方网址:http://jakarta.apache.org/bsf/               

    它是一个支持在Java应用程序内调用脚本语言 (Script),并且支持脚本语言直接访问Java对象和方法的一个开源项目

    BSF最初是IBM的Alpha工作组的项目后来贡献给了Apache

    下载地址:http://jakarta.apache.org/site/downloads/downloads_bsf.cgi

    可以使用它在java application中使用javascript, Python, XSLT, Perl, tcl, ……等脚本语言. 反过来也可以,就是在这些脚本语言中调用任何已经注册过了的JavaBean,java object。

    这是一个很好的idea。可以使得Java能够更好的于各种流行脚步语言整合,实现不同语言之间的交互作用

    样例代码(使用javascript作为测试的脚本语言):

    需要jar包:

    bsf.jar

    js.jar

    import org.apache.bsf.BSFEngine;
    import org.apache.bsf.BSFException;
    import org.apache.bsf.BSFManager;

    /**
    * BSF(Bean Scripting Framework)测试
    *
    *
    @author archie
    *
    * since 上午09:45:02
    */
    public class BSFTest {


    public static void main(String[] args) {

    //Script脚本
    String script=
    "function dealBean()" +
    "{"
    + " str = bsf.lookupBean('u');"
    + "return \"ID:\"+str.id+\"用户名:\"+str.uname+\"地址:\"+str.address+\"_调用方法:\"+str.toString()+"+
    "'\t'+\"的bean内容被获得了;\";" +
    "}";

    try {
    //BSF管理器
    BSFManager bsfManager=new BSFManager();

    //BSF引擎
    BSFEngine bsfEngine = bsfManager.loadScriptingEngine("javascript");

    /**
    * Bean
    */
    User u
    =new User();
    u.setId(
    1);
    u.setUname(
    "archie");
    u.setAddress(
    "上海松江");

    //执行Script脚本
    bsfEngine.eval("javascript", 0, 0, script);

    //BSFManager注册一个Bean
    bsfManager.registerBean("u", u);
    //bsfManager.registerBean("u", "archie");

    //执行脚本中方法并返回
    Object result = bsfEngine.eval("javascript", 0, 0, "dealBean();");

    System.out.println(result.toString());

    }
    catch (BSFException e) {
    e.printStackTrace();
    }
    }

    }

    运行效果:

  • 相关阅读:
    屏蔽鼠标右键/F1帮助
    vs2010如何连接到mysql数据库
    经典的数据库设计贴吧
    js子窗口刷新父窗口
    数据库三大范式
    写给毕业生
    SQL Server权限数据库设计
    .NET
    ASP.NET MVC框架(第一部分) 【转】
    什么是SQL注入法攻击 .
  • 原文地址:https://www.cnblogs.com/archie2010/p/2104403.html
Copyright © 2011-2022 走看看