當前位置:首頁 » 編程語言 » java調用js

java調用js

發布時間: 2022-07-12 16:03:36

java後台怎麼調用前台js方法

可使用前台js申請後台java代碼,把數據用返回值的方式,返回給前台。這種方式用的最多的就是使用ajax了。使用在後台與伺服器進行少量數據交換,ajax可使網站實現非同步更換。這意味著可在不重新載入整個網站的情況下,關於網站的某個部分進行更換。

⑵ 如何用java執行指定頁面中的js代碼

要在java中執行js代碼,首先明白,java不支持瀏覽器本身的方法。支持自定義的js方法,否則會報錯

先新建一個js文件:jsss.js

內容如下:

function aa(a,b){ return a+b;
}

然後在java中寫代碼:

public class ZipTest {
public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String jsFileName="G:\javaPro\zmwmcc\WebRoot\jsss.js";
FileReader reader = new FileReader(jsFileName); // 執行指定腳本 engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 調用merge方法,並傳入兩個參數
Double c = (Double)invoke.invokeFunction("aa", 2, 3); //調用了js的aa方法
System.out.println(c);
}
// engine.eval("alert("js alert");"); // 不能調用瀏覽器中定義的js函數 // 錯誤,會拋出alert引用不 }
}

⑶ 請問怎麼寫java的時候調用node環境運行js代碼

不知道你的具體需求是什麼,java如果是用來做網頁開發的話,本身項目就可以運行JS的,不需要調用 nodeJs 環境,而如果說是希望 java + nodeJs 的架構,那應該是一邊提供介面,另一邊發送請求的方式,也不需要說通過 java來調用 nodeJs 。
所以還是需要知道你具體的需求是什麼。

⑷ java如何調用javascript的函數

[java] view plainprint?
<span style="font-size:18px;">package suggestion16;

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 ScriptText {

public static void main(String[] args) throws FileNotFoundException, ScriptException, Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Bindings bind = engine.createBindings();
bind.put("factor", 2); //這里綁定一個factor的值為2.
engine.setBindings(bind,ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
int first = input.nextInt();
int sec = input.nextInt();
System.out.println("輸入的參數為:"+ first+ " , " + sec);
engine.eval(new FileReader("E:/cal.js"));
if(engine instanceof Invocable)
{
Invocable in = (Invocable)engine;
Double result = (Double)in.invokeFunction("cal",first,sec);
System.out.println("運算結果為:" + result.intValue());
}
}
}

}
</span>

其中的「E:/cal.js」就是我們js文件的保存路徑。並且這個主函數可以循環的輸入。
我們運行一下這個程序得到的結果如下:
[html] view plainprint?
<span style="font-size:18px;">1
2
輸入的參數為:1 , 2
運算結果為:1
</span>
上面也就是 調用了 1 + 2 - 2 = 1 ,所以結果為1
我們將js文件中的function方法改變下,改編為下面的函數:
[javascript] view plainprint?
<span style="font-size:18px;">function cal(var1,var2)
{
return var1+var2*factor;
}</span>

⑸ java 調用 js函數

function是屬於javascript裡面的語法,而<%%>裡面調用的是java的語法,所以想要用<%%>調用alert()是不行了,因為他們不是同一個東西。
不知道你的意思是不是頁面一載入就進行調用alert(),如果是這樣的話,建議使用onload事件,表示頁面載入的時候調用alert();
或者如果是點擊的時候調用,那麼久調用onclick()..總而言之可以使用事件完成。

⑹ java調用請求頁面js方法有哪些

其實網上有很多方法

/** 載入腳本引擎,並在java中調用js方法 */

public void test2(){

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("javascript");

try {

String str="2&1";

Double d = (Double) engine.eval(str);

Integer i=d.intValue();

System.out.println(i);

} catch (ScriptException ex) {

ex.printStackTrace();

} }

/*

* 在java中調用js,jdk1.6中有載入js引擎類,然後由它來調用js方法。

* 並通過JDK平台給script的方法中的形參賦值

*/

public void test(String name)

{

ScriptEngineManager sem = new ScriptEngineManager();

/**sem.getEngineByExtension(String extension)參數為js

sem.getEngineByMimeType(String mimeType) 參數為application/javascript 或者text/javascript

sem.getEngineByName(String shortName)參數為js或javascript或JavaScript

*/

ScriptEngine se = sem.getEngineByName("js");

try

{

String script = "function say(){ return 'hello,'"+name+"; }";

se.eval(script);

Invocable inv2 = (Invocable) se;

String res=(String)inv2.invokeFunction("say",name);

System.out.println(res);

}

catch(Exception e)

{

e.printStackTrace();

}

}

/** 演示如何將java中對象作為js中全局變數,同時演示將file類賦給腳本語言,並獲得其屬性。

*/

public void testScriptVariables()

{

ScriptEngineManager sem=new ScriptEngineManager();

ScriptEngine engine=sem.getEngineByName("js");

File file=new File("c:\\1.txt");

engine.put("f", file);

try {

engine.eval("println('path:'+f.getPath())");//無法使用alert方法

} catch (ScriptException e) {

e.printStackTrace();

}

}

/*

* 演示如何在java中如何通過線程來啟動一個js方法

*/

public void testScriptInterface() throws ScriptException

{

ScriptEngineManager sem=new ScriptEngineManager();

ScriptEngine engine=sem.getEngineByName("js");

String script="var obj=new Object();obj.run=function(){println('test thread')}";

engine.eval(script);

Object obj=engine.get("obj");//獲取js中對象

Invocable inv=(Invocable)engine;

Runnable r=inv.getInterface(obj,Runnable.class);

Thread t=new Thread(r);

t.start();

}

⑺ 如何通過java代碼調用js

JDK1.6版添加了新的ScriptEngine類,允許用戶直接執行js代碼。
在Java中直接調用js代碼
不能調用瀏覽器中定義的js函數,會拋出異常提示ReferenceError: 「alert」 is not defined。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; /** * 直接調用js代碼 */
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{

engine.eval("var a=3; var b=4;print (a+b);");

// engine.eval("alert(\"js alert\");"); // 不能調用瀏覽器中定義的js函數 // 錯誤,會拋出alert引用不存在的異常
}catch(ScriptException e){

e.printStackTrace();
}
}
}

⑻ 如何在java中調用js方法

在Java中調用js文件中的function,傳入調用參數,並獲取返回值
js文件中的merge函數將兩個參數a,b相加,並返回c。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}

在Java代碼中讀取js文件,並參數兩個參數,然後回去返回值。
package com.sinaapp.manjushri;

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 = "expression.js"; // 讀取js文件

FileReader reader = new FileReader(jsFileName); // 執行指定腳本
engine.eval(reader);

if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 調用merge方法,並傳入兩個參數

// c = merge(2, 3);

Double c = (Double)invoke.invokeFunction("merge", 2, 3);

System.out.println("c = " + c);
}

reader.close();

}
}

輸出結果:
c = 5.0

⑼ java如何調用js里的變數

2種方法:

1、用一個隱藏的<input type="hidden" name="isNecessary" />,先將JS變數的值賦給input,然後在java裡面用request.getParameter(" isNecessary");

此法為傳說中的post方法。

2、通過鏈接的方式,即後面加問號的方式:

var isNecessary="aaa";

var URL='<%=request.getContextPath()%>/action/xx.do isNecessary='+isNecessary;

//這里假設JS裡面的變數的值是isNecessary。

然後用window.location.href=URL;

JAVA裡面依然用request.getParameter(" isNecessary")調用。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:431
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:536
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:232
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:532
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726