導航:首頁 > 編程語言 > java調用js文件

java調用js文件

發布時間:2023-07-31 08:40:34

『壹』 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

如果是jsp的話直接在out.print()中寫就可以了,如果在applet和application中可以用外部調用的方式調用,Runtime rn=Runtime.getRuntime(); Process p=null; rn.exec("xx.js")但是這樣不是很安全.

『叄』 java調用 js

這里你需要搞清楚程序運行環境(context)的區別。對於class A的main方法,其運行環境是裝載class A的虛擬機(運行在操作系統上);對於function a()其運行環境是請求那個Jsp頁面的瀏覽器,所以從main方法中調用a()的說法無從談起。

你能把你的直接需求(你為什麼希望從main()中調用a())說明一下嗎?這樣能夠更好地幫助你解決問題

『肆』 java 調用 js函數

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

『伍』 如何用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中調用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文件相關的資料

熱點內容
解壓縮軟體免安裝版 瀏覽:962
安卓簡訊如何存檔 瀏覽:143
汽車導航不讀文件夾 瀏覽:107
全球雲伺服器如何注冊 瀏覽:884
udp直播流如何在伺服器里播放器 瀏覽:591
macbrew安裝php 瀏覽:425
點特徵提取演算法 瀏覽:502
python彈窗顯示輸入的文字 瀏覽:751
python數字和中文互轉 瀏覽:639
汽車空調壓縮機外殼 瀏覽:458
大型伺服器都是採用什麼模式 瀏覽:5
伺服器為什麼跳閘 瀏覽:398
怎麼用python分析基金收益 瀏覽:990
couple演算法 瀏覽:791
android調用文件管理器 瀏覽:152
中國我的世界最大的小游戲伺服器地址 瀏覽:833
程序員爆破粒子 瀏覽:889
我的世界pcl啟動器怎麼加入伺服器 瀏覽:253
傳奇源碼擴充人物結構 瀏覽:844
購買多個文件夾 瀏覽:774