本文目錄一覽:
如何在java調用js
script type=”text/javascript” src=”js/jquery-3.1.0.min.js”/script
就是這樣引入js 。src 的 ‘js’的js是webroot下自己創建的名為js的文件夾 ,jquery-3.1.0.min.js是需要引入的js文件,你自己寫的js文件也可以這樣引入調用。還可以直接在頁面上這樣寫:
script language=”JavaScript” type=”text/javascript”
function init() {
———
}
/script
java怎麼調用javascript
可參考:
package javaIjs;
/**
* @param args
*/
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
/**
* Java調用並執行js文件,傳遞參數,並活動返回值
*
* @author manjushri
*/
public class ScriptEngineTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName(“javascript”);
String jsFileName = System.getProperty(“user.dir”)+”/src/javaIjs/expression.js”;
// 讀取js文件
FileReader reader = new FileReader(jsFileName);
// 執行指定腳本
System.out.println(engine.getContext().getReader());
engine.eval(reader);
if (engine instanceof Invocable) {
Invocable invoke = (Invocable) engine;
// 調用merge方法,並傳入兩個參數
// c = merge(2, 3);
Double c = (Double) invoke.invokeFunction(“merge1”, 21, 3);
System.out.println(“c = ” + c);
}
reader.close();
}
}
java怎樣調用js
首先java和js是完全兩碼事
兩個的運行是不相干的
java是後台程序 運行在服務器上 而js則是生存在客戶端瀏覽器(如ie)
只能是js間接調用java
過程是:js在客戶端瀏覽器上運行,然後js讓瀏覽器發送請求到服務器,然後服務器上的中間件(如tomcat)來把瀏覽器的請求(httpRequest)轉交給java程序來處理。 典型的例子就是用js執行submit()提交表單到服務器和js生成ajax對象然後通過ajax對象把信息發送給服務器。 即js藉助瀏覽器來達到間接調用後台java程序的功能。
反過來就不行了
由於http協議是無狀態的,不像java與數據庫那樣有保持着的連接,數據庫是知道當前有誰再連接着自己的,而java程序所在的服務器是無法直接溝通客戶端瀏覽器的,他壓根就不知道客戶端在哪,也因此無法去和運行在客戶端的js聯繫。
你如果想調用這個EncodePwd(uin,psw), 只能是在客戶端瀏覽器上觸發這個方法(例如提交按鈕)然後把信息發送到服務器端。
其實還有一種技術,即“服務器推送”,這個大概可以實現你的想法,這是個新興技術,用於由服務器直接把數據發送給客戶端,而不需要客戶端不停的用ajax來訪問服務器。但是我想這個應該不是你想要的東西。
如何在java中調用js方法
js代碼如下:
[javascript] view plain copy
function formula(var1,var2){
return var1+var2-factor;
}
java代碼如下:
[java] view plain copy
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class AboutJavaScript {
public static void main(String[] args) throws Exception {
ScriptEngine engine=new ScriptEngineManager().getEngineByName(“javascript”);
Bindings bind = engine.createBindings();
bind.put(“factor”, 1);
engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);
Scanner input=new Scanner(System.in);
while (input.hasNextInt()) {
int first= input.nextInt();
int sec=input.nextInt();
System.out.println(“輸入參數是:”+first+”,”+sec);
engine.eval(new FileReader(“F:/model.js”));
if(engine instanceof Invocable){
Invocable in =(Invocable) engine;
Double result=(Double) in.invokeFunction(“formula”, first,sec);
System.out.println(“運行結果:”+result.intValue());
}
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/239563.html