- 浏览: 35888 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
shenbai:
thanks。我试了一下,实际上只需要调用waitForBac ...
HTMLUnit : javascript 对页面的更改如何获得
print("sys.isVariableDefined(\"headerList2\"):" + sys.isVariableDefined("headerList2"));
sys (即SystemUtilities) 的getVar( )的取值顺序是:先从FunctionContext中取,再从Scraper的Context中取。
<var/>的取值是:会从传入的Context实例中取,如果<var/>标签中<Fuction/>标签中,当然传入的是FunctionContext。
SystemUtilities.java
public Variable getVar(String varName) { CallProcessor runningFunction = scraper.getRunningFunction(); ScraperContext activeContext = runningFunction == null ? scraper.getContext() : runningFunction.getFunctionContext(); return activeContext.getVar(varName); }
SetContextVar.java只有下面这个invoke方法(看到interpreter得到的Context是当前Context而不只是scraper.getContext()得到的Context)
这是一个BeanShell的预定义方法(关于BeanShell中预定义方法的使用,参见BeanShell的用户手册的Compiled Commands一节)。
public static void invoke(Interpreter interpreter, CallStack callstack, String name, Object value) { try { ScraperContext context = (ScraperContext) interpreter.get(ScriptEngine.CONTEXT_VARIABLE_NAME); if (context != null) { context.setVar(name, value); } } catch (EvalError e) { throw new ScriptException("Cannot get web-Harvest context from interpreter: " + e.getMessage(), e); } }
下面是BeanShell脚本引擎的创建过程堆栈:
org.webharvest.runtime.scripting.BeanShellScriptEngine.BeanShellScriptEngine(Map) org.webharvest.definition.ScraperConfiguration.createScriptEngine(Map, String) org.webharvest.definition.ScraperConfiguration.createScriptEngine(Map) org.webharvest.runtime.processors.CallProcessor.CallProcessor(CallDef, ScraperConfiguration, Scraper)
在构造CallProcessor时传入的就是FunctionContext:
public CallProcessor(CallDef callDef, ScraperConfiguration configuration, Scraper scraper) { super(callDef); CallProcessor runningFunction = scraper.getRunningFunction(); ScraperContext callerContext = runningFunction == null ? scraper.getContext() : runningFunction.getFunctionContext(); try { this.functionContext = new ScraperContext(scraper, callerContext); this.scriptEngine = configuration.createScriptEngine(functionContext); this.callDef = callDef; } catch (Exception e) { e.printStackTrace(); } }
org.webharvest.runtime.variables.ListVariable headerList = new org.webharvest.runtime.variables.ListVariable(); String tmpHeader = ""; for ( org.webharvest.utils.KeyValuePair item : http.headers ) { tmpHeader = "header (" + item.getKey() + ") is: "+ item.getValue() ; headerList.addVariable(new org.webharvest.runtime.variables.NodeVariable(tmpHeader)); } print("====headerList:" + headerList); sys.defineVariable("headerList2", headerList); //print("sys.isVariableDefined(\"headerList2\"):" + sys.isVariableDefined("headerList2")); //print("====headerList2:" + headerList2); //print("====sys.getVar(\"headerList2\"):" + sys.getVar("headerList2"));
<loop item="respHeader" index="i"> <list> <var name="headerList2"/> </list> <body> <log message=" ${i} : ${respHeader}" level="debug"/> </body> </loop>
发表评论
-
CSS float属性
2012-03-03 15:06 532下面http://www.w3school.com.cn对fl ... -
CSS文集(The CSS Anthology) 第四章 导航菜单栏
2012-02-18 23:38 0【占位符】 -
CSS文集《The CSS Anthology》 第二章 文本格式化及其它基础知识 (2)
2012-02-18 19:46 108911. 为段落文本加高亮 <div> &l ... -
The CSS Anthology 第五章 Tabular Data (表格式数据)
2012-02-15 13:25 0[ PLACEHOLDER ] -
The CSS Anthology 第四章 Navigation导航栏(导航菜单)
2012-02-15 13:24 0[ PLACEHOLDER ] -
CSS文集(The CSS Anthology) 第三章 CSS和图片
2012-02-18 21:07 9411. 为图片加边框 以下CSS中,第一种是以详细方式进行设置, ... -
CSS文集《The CSS Anthology》 第二章 文本格式化及其它基础知识 (1)
2012-02-15 13:25 899第二章 文本格式化及其它基础知识(Text Styling a ... -
Web-Harvest: Set a Proxy Server
2011-06-09 11:36 1088InputSource is = new InputSourc ... -
ExceptionUtils : A very useful class from apache commons
2011-06-09 11:23 901apache.commons.lang Exceptio ... -
调试内嵌的javascript
2011-06-09 11:22 766调试诸如: document.write('<scri ... -
JProfiler : 用JProfiler可以很容易发现Blocked掉的线程。
2011-06-09 11:20 832As title. -
WH : && => &&
2011-06-09 11:12 702<if condition="${ ( ... -
Web-Harvest: variables!!
2011-06-09 11:11 747Getting sized of a list ... -
Spring WebContextApplication
2011-06-09 11:11 664问题: Closing WebContextAppl ... -
Cygwin
2011-06-09 11:10 611在Windows下使用Linux中的常用工具!! -
eclipse : XXX cannot be resolved to a type
2011-06-09 11:09 1168Go to: [Project] \ [Clean.. ... -
GOOD practice : 字符串比较
2011-06-09 11:09 683对于字符串的比较和打印 一定要额外加引号 输出!! -
Spring : 隐藏的依赖
2011-06-09 11:09 639可以在 Bean 定义上加 attribute: &q ... -
Linux : 生成随机密码
2011-06-09 11:08 920生成 6 位随机密码 $ echo `< ... -
twitter : 搜索中文关键字时每个中文字要用空格分开
2011-06-09 11:07 815如题。
相关推荐
BeanShell-简单的Java脚本 BeanShell的官方活动项目主页。注意:待发布新版本唯一推荐的版本是master分支的手动构建。 对旧版本的支持达到了行尾,只能接受针对主版本的问题和拉取请求。 下一个版本将是概述的...
Bean Shell 是一个轻量级的Java脚本环境,它允许用户在运行时动态地执行Java代码,进行交互式编程或自动化任务。这个压缩包包含了Bean Shell的核心组件和一些相关资源,便于用户在Java环境中进行脚本操作。...
在本项目中,我们关注的是一个特定实现——"iso8583-server-simulator-beanshell",它利用了Beanshell脚本语言作为请求监听器。Beanshell是一个轻量级、动态的Java脚本环境,允许开发者在运行时执行和修改Java代码,...
bsh(BeanShell)是一个轻量级的、动态的Java语言解释器,它允许在运行时执行Java语法和一些扩展语法的脚本。作为Java开发工具,bsh提供了一个强大的环境,开发者可以快速测试代码片段、原型设计、自动化任务,甚至...
在实践中,你可以通过以下步骤学习 Beanshell: 1. 下载 Beanshell 源码,通常以 `.jar` 文件形式提供。 2. 使用反编译工具(如jd-gui)查看源码,了解其内部工作原理。 3. 实验并调试 Beanshell 脚本,观察其如何...
Maven坐标:org.apache-extras.beanshell:bsh:2.0b6; 标签:apache、extras、beanshell、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译...
Maven坐标:org.apache-extras.beanshell:bsh:2.0b6; 标签:apache、extras、beanshell、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
标题中的“用BeanShell来运行Java脚本”指的是利用BeanShell这个开源库在Java环境中执行动态的、交互式的Java代码。BeanShell是一个轻量级的Java Scripting引擎,它允许你在运行时执行Java代码,无需编译,极大地...
BeanShell 是一个轻量级的Java脚本语言,它允许开发者使用类似JavaScript的语法来编写和执行Java代码。这个“BeanShell帮助文档和jar包”包含了一切你需要开始使用BeanShell的资源。以下是对BeanShell及其相关文件的...
【标题】:“深入理解JMeter中的BeanShell组件” 【描述】:“本文将详细介绍JMeter的BeanShell组件,包括其使用场景、内置变量和方法,帮助读者掌握如何在接口测试中运用BeanShell进行脚本编写。” 【标签】:...
BeanShell 是一个轻量级的Java脚本环境,它允许开发者使用类似JavaScript的语法来编写和执行Java代码。BeanShell 的设计目标是提供一个灵活、动态的工具,用于测试、原型设计、脚本以及对Java应用程序进行调试。由于...
Beanshell 是一个轻量级的Java脚本引擎,它允许你在运行时动态执行Java代码。这个源码包可能包含了 Beanshell 的完整源代码,对于学习和理解其内部工作原理非常有帮助。Beanshell 可以作为Java应用程序的一部分,...
Beanshell 是一个轻量级的Java脚本引擎,它允许用户在运行时直接执行Java语法的脚本。这个压缩包包含三个重要的组成部分:`bsh-2.0b4.jar`、`bshjavadoc.zip` 和 `beanshell` 文件夹,这些都是与Beanshell相关的资源...
【标题】: 使用BeanShell构建公式管理系统的实践 【描述】: 在复杂的企业级应用如SCM、CRM和ERP中,常常需要用户根据自身需求调整计算参数,以满足特定时期的业务规则。例如,商品折扣率、员工奖金计算等都需要动态...
BeanShell和Mozilla Rhino是两种在Java环境中用于动态执行和脚本化的工具,它们各自具有独特的特性和用途。 BeanShell是一个轻量级的Java代码解释器,它的主要特点是免费、可嵌入和具备面向对象的脚本语言特性。...
### 使用BeanShell调试Java应用程序的关键知识点 #### 一、引言 在评估Java应用程序的安全性时,特别是客户端-服务器架构的应用程序,往往涉及到修改代码、编译、部署、测试等一系列繁琐的过程。当无法获取源代码时...
**BeanShell介绍** BeanShell是一款轻量级的Java脚本引擎,它允许用户在运行时动态地编写和执行Java代码。作为一个开源项目,BeanShell在IT行业中被广泛应用于快速原型开发、测试、脚本自动化以及教学等场景。其...