在java中利用rhino执行javascript
来源:互联网 发布:苹果手机屏幕录制软件 编辑:程序博客网 时间:2024/05/17 12:00
以rhino中执行QQ邮箱的safeauth.js为例
js代码地址:http://res.qqmail.com/zh_CN/htmledition20091127/js/safeauth.js
(1)导入相应类
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import com.sun.phobos.script.javascript.RhinoScriptEngineFactory;
(2)解析JS
ScriptEngineManager engineManager = new ScriptEngineManager();
engineManager.registerEngineExtension("js", new RhinoScriptEngineFactory());
ScriptEngine engine = engineManager.getEngineByName("js");
InputStream ins = getClass().getResourceAsStream("/safeauth.js");
InputStreamReader insReader = new InputStreamReader(ins);
engine.eval(insReader);
会报错,说找不到window,navigator对象
这是因为rhino只提供了执行脚本的引擎环境,没有提供类似浏览器的host环境,所以当然找不到这两个对象
将相应的带有window,navigator的行注释掉,并加入以下代码,构成新的safeauth.js文件:
(3)执行JS:
engine.eval("var t=encryptPassword('" + pp + "','" + publicKey + "','" + publicTs + "');");
String p = engine.get("t").toString();
传入pp(密码域值),publicKey和publicTs(这两个值从http://mail.qq.com/cgi-bin/loginpage页面内容得到),即可以计算编码后的密码。
- 在java中利用rhino执行javascript
- [Java][Js]利用Rhino在服务器端执行JavaScript、并实现Java与JavaScript相互调用
- 采用Rhino在JAVA中运行JavaScript
- Servlet中实现通过Rhino在Java中调用JavaScript
- java中使用javascript Rhino 引擎
- Rhino——一个可以在Java中操作和执行JS的框架
- java 动态编译与用Rhino引擎执行javascript代码
- java调用Rhino(javascript)
- 脚本引擎Rhino执行javascript代码
- Rhino在java中的用法
- Mozilla Rhino:使用java语言来解释和执行javascript脚本(转)
- Mozilla Rhino:使用java语言来解释和执行javascript脚本(转)
- 在java中解释执行javascript命令
- Rhino——java执行多种脚本语言
- 纯java 的javascript引擎:rhino
- 纯java 的javascript引擎:rhino
- 纯java 的javascript引擎:rhino .
- java调用javascript :js引擎rhino
- 如何当一名项目经理?
- 我是新手
- [整理]Linux命令--档案目录管理
- 遍历一个文件夹下的所有文件和子文件夹的函数
- 其实没什么
- 在java中利用rhino执行javascript
- Myeclipse Web项目改名问题
- VC 读取服务器上的文件(HTTP方式)
- PostgreSQL的数据文件构成
- PHP-CMS
- 偶要做一个游戏程序员,偶不要偷懒。
- 怎样取消开机硬盘自检
- 打造你自己的reset.css
- gettimeofday