java执行js代码

来源:互联网 发布:汉王霾表测甲醛 知乎 编辑:程序博客网 时间:2024/05/16 03:35
package com.lingjoin.util.tencent.login;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;


import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;


import org.apache.struts2.ServletActionContext;


import com.lingjoin.elint.entity.SinaAccount;


public class GetCookiesUtil {
public String password(String verifycode,SinaAccount sinaAccount) throws Exception{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");

String add = ServletActionContext.getServletContext().getRealPath("/");
File f = new File(add+"/js/tencent-password.js");
FileInputStream fip = new FileInputStream(f);
// 构建FileInputStream对象
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
// 执行指定脚本
engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine;
//调用merge方法,并传入两个参数
// c = merge(2, 3);
Object c = (Object)invoke.invokeFunction("md5_3",sinaAccount.getPassword());
System.out.println("c = " + c);// 525AF936132AEDA4A4B9A3C29788B968
Object c1 = (Object)invoke.invokeFunction("md5",c.toString()+verifycode);
System.out.println(c1);

reader.close();
return c1.toString();
}
return null;
}

}
0 0
原创粉丝点击