`
ypc_zd
  • 浏览: 8169 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

java调用javascript实例

阅读更多
/*
* JSExploration.java
* @author Lucky
* Created on November 4, 2008, 11:16 AM
*/

package com.pengzhoushuo.js;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.Properties;

import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.Scriptable;


/**
* this class provide a way for java class to call java script code<p>
*
*/
public class JSExploration {
   
private Context cx;

private Scriptable scope;

public JSExploration() {
  this.cx = Context.enter();
  this.scope = cx.initStandardObjects();
}

public Object runJavaScript(String filename) {
  String jsContent = this.getJsContent(filename);
  Object result = cx.evaluateString(scope, jsContent, filename, 1, null);
  return result;
}

private String getJsContent(String filename) {
  LineNumberReader reader = null;
  InputStream is = null;
  try {
   is = this.getClass().getClassLoader().getResourceAsStream(filename);
   reader = new LineNumberReader(new InputStreamReader(is));
   String s = null;
   StringBuffer sb = new StringBuffer();
   while ((s = reader.readLine()) != null) {
    sb.append(s).append("\n");
   }
   return sb.toString();
  } catch (Exception e) {
   // TODO Auto-generated catch block     
   //e.printStackTrace();
   return null;
  }finally{
   if(reader != null)
    try {
     reader.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    if(is != null)
     try {
      is.close();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
  }
}

public Scriptable getScope() {
  return scope;
}

/**
  * 调用JAVASCRIPT对密码进行加??
  * @param key 密码明文
  * @return 密码密文
  */
public static String getKey(String key) { 
          //javacript file path
         String filename = "com/pengzhoushuo/js/RSAKey.js";
         JSExploration jsExploration = new JSExploration();     
         Object result = jsExploration.runJavaScript(filename);     
         Scriptable scope = jsExploration.getScope();      

          //getKey是javascript中对应的方法名
         Function sum = (Function) scope.get("getKey", scope);  
         Object isPrime = sum.call(Context.getCurrentContext(), scope, sum, new Object[] {key});       
         return Context.toString(isPrime);

}

public static void main(String[] args){
  System.out.println(JSExploration.getKey("a1234567"));
}
} 
 
分享到:
评论

相关推荐

    Java调用javaScript代码

    本文将深入探讨“Java调用JavaScript代码”的技术实现,以及它在实际项目中的应用场景。 Java和JavaScript虽然名字相似,但它们是两种完全不同的编程语言,各自有其特定的用途。Java是一种静态类型的、面向对象的...

    Java调用Javascript.pdf

    Java调用Javascript的技术涉及了在Java Applet中通过脚本接口与Web页面上的JavaScript代码进行交互。这部分技术在当前的Web开发中已较少使用,因为Java Applet的安全性问题和浏览器的兼容性问题,使得现代浏览器逐渐...

    android webview中使用Java调用JavaScript方法并获取返回值

    而在某些场景下,可能需要从Java代码中调用JavaScript编写的函数,并获取这些函数的执行结果。为了实现Java和JavaScript之间的通信,Android WebView提供了addJavascriptInterface()方法。这个方法允许你向WebView...

    android 案例java 调用js

    1. **Java调用JavaScript**: - `loadUrl`: 使用WebView的`loadUrl`方法可以加载网页URL或执行JavaScript代码。例如,要执行一段JavaScript代码,我们可以这样做: ```java webView.loadUrl("javascript:...

    ( java调用js__方法.docx

    Java 调用 JS 方法是指在 Java 代码中调用 JavaScript 代码的方法,从而实现 Java 和 JavaScript 之间的交互。在本文中,我们将详细介绍 Java 调用 JS 方法的实现步骤和相关知识点。 Java 调用 JS 方法的实现 在 ...

    java javascript 调用命令行 cmd

    **Java调用命令行** 在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行命令行操作。 1. **使用Runtime.exec()** `Runtime.getRuntime().exec(command)` 是最基础的方法,用于执行指定的系统命令。`...

    Java调用JavaScript实现字符串计算器代码示例

    接下来,将总结Java调用JavaScript实现字符串计算器的相关知识点: 1. 使用javax.script包中的类:要实现这一功能,必须使用javax.script包中的ScriptEngineManager类和ScriptEngine类。 2. 创建JavaScript脚本...

    java调用chrome浏览器内核cef实现,非jxbrowser

    Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...

    java 微支付js调用实例 已经测试通过

    这个Java微支付JS调用实例是针对微信支付API的一个实际应用,它可以帮助开发者更轻松地集成微信支付功能到自己的应用程序中。在这个过程中,开发者可能会遇到各种问题,因为微信的API文档可能不够详尽,或者存在一些...

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    java浏览器调用ie内核

    总结来说,Java调用IE内核主要涉及Java与ActiveX控件的交互,这一技术虽然有一定的历史背景,但在现代Web开发中已经较少使用,更多的现代解决方案倾向于使用标准Web技术或者基于Chromium的框架。理解和学习这个知识...

    Java调用Kettle代码

    Java调用Kettle代码主要涉及两个关键点:Java编程与Kettle(Pentaho Data Integration,简称PDI)工具的集成。Kettle是一款强大的ETL(Extract, Transform, Load)工具,用于数据抽取、转换和加载。Java作为广泛应用...

    Android WebView js与Java调用实例

    对于Java调用JavaScript,我们可以使用`loadUrl()`方法,传入一个JavaScript字符串来执行: ```java webView.loadUrl("javascript:window.someJsFunction()"); ``` 在JavaScript端,你需要定义这个`someJsFunction...

    java执行JavaScript代码

    源代码可能包括创建`ScriptEngine`、编写和执行JavaScript代码、以及调用JavaScript函数的示例。 总的来说,通过JSR 223,Java开发者可以轻松地在Java程序中嵌入JavaScript,实现两者的交互,从而利用JavaScript的...

    dwr实例,JavaScript调用java方法的小例子

    在"TestDwr"这个压缩包中,我们可以预期包含了一个简单的DWR实例,展示了如何利用DWR将Java方法暴露给JavaScript来调用。以下是一些关于DWR的关键知识点: 1. **DWR配置**:DWR的使用首先需要在服务器端进行配置,...

    Android中JS与Java相互调用Demo

    2. **Java调用JavaScript**: Android的`WebView`提供了`loadUrl()`方法,可以用来执行JavaScript代码。例如,如果你想执行一段JavaScript代码,可以这样做: ```java webView.loadUrl("javascript:console.log...

    java调用js代码实现动态配置

    本文将详细介绍如何利用Java调用JavaScript来实现这一目标,并通过一个具体的示例代码进行深入剖析。 #### 一、背景介绍 在传统的应用程序中,更改算法通常意味着需要修改源代码并重新编译部署。这种方式不仅效率...

    java源码包---java 源码 大量 实例

    摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,...

    java如何与脚本(javaScript)之间相互调用二

    在Java中调用JavaScript,可以使用ScriptEngineManager来创建一个特定的ScriptEngine实例,例如用于执行JavaScript的Nashorn引擎。以下是一个简单的示例: ```java import javax.script.ScriptEngineManager; ...

    效率非常快的java读取javascript,附带源码和js.jar

    2. **JavaScript到Java的互操作性**:Rhino允许JavaScript代码直接调用Java对象和方法,反之亦然,极大地增强了两种语言的交互性。 3. **嵌入到Java应用程序**:Rhino可以轻易地被嵌入到Java应用程序中,作为动态...

Global site tag (gtag.js) - Google Analytics