java程序js腳本(Java腳本)

本文目錄一覽:

java程序中運行js腳本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

public class ExecJs {

/**

* 記錄日誌類

*/

private Logger log = Logger.getLogger(ExecJs.class);

/**

* 後置處理,執行js腳本

* @param js

* @throws Exception

*/

public void execJs(String js, MapString,Object map) throws Exception {

if (log.isDebugEnabled()) {

log.debug(“execJs js : ” + js);

IteratorEntryString, Object it = map.entrySet().iterator();

while (it.hasNext()) {

EntryString, Object entry = (EntryString, Object) it.next();

log.info(“EXECJS MAP : ” + entry.getKey() + “—” + entry.getValue());

}// end while

}// end if

if (“”.equals(js) || js == null) {

log.info(“EXECJS ERROR : JAVASCRIPT CONTENT IS NULL”);

} else if(map == null || map.size()=0){

log.info(“EXECJS ERROR : MAP CONTENT IS NULL”);

} else {

// 獲取腳本引擎

ScriptEngineManager mgr = new ScriptEngineManager();

ScriptEngine engine = mgr.getEngineByName(“javascript”);

// 綁定數據

ScriptContext newContext = new SimpleScriptContext();

Bindings bind = newContext.getBindings(ScriptContext.ENGINE_SCOPE);

bind.putAll(map);

try {

engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);

engine.eval(js);

} catch (Exception e) {

log.info(“EXECJS EXCEPTION : EXECUTE JAVASCRIPT EXCEPTION”, e);

throw (e);

}// end try

}// end if

}

}

怎麼把JS嵌入到Java程序中

1.取得腳本解釋器的管理器Manager

2.從管理器中取得js的解釋器實例ScriptEngine

3.取得存儲javascript變量的Bindings實例

4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運行結果,如果執行中發生錯誤,會拋出ScriptException異常。

例:運行javascript腳本的一個java程序

throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運行的腳本文件Stringfilename=null;//通過解釋器來獲得存儲javascript變量的Bindings的實例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設置值的方法publicObjectget;//使用我們的name/value對(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創建一個變量,用於存放腳本執行的內容ScriptContextcontext=newSimpleScriptContext();//設置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過空行if(line.charAt(0)==‘#‘)continue;//跳過命令intpos=line.indexOf(“:”);if(pos==-1){thrownewIllegalArgumentException(“syntax:”+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘”‘lastchar==‘”‘){//雙引號引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開始是一個數字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒有數字,是一個stringdefaults.put(name,value);}}elseif(“true”.equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif(“false”.equals(value)){defaults.put(name,Boolean.FALSE);}elseif(“null”.equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對大括號之內,則執行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個字符串defaults.put(name,value);}}}//一個簡單的類的測試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set

java腳本里怎麼寫javascript

HTML中標籤的id是唯一的,document.all返回的應該個數組,通過id去找標籤,只能找到一個,就是最後一個id等於你所指的那個。

你看看我給你的是不是你想要的結果:

script

function show(isChecked,showName,num){

for(var n = 1; n = num; n++){

document.getElementById(showName + n).style.display=isChecked ? ‘block’ : ‘none’;

}

}

/script

div

table width=”100%” border=”1″ cellspacing=”0″ cellpadding=”0″

tr

tdinput name=checkbox2 type=checkbox onclick=”show(this.checked,’jf’,2)”aaa/td

tdinput name=checkbox3 type=checkbox onclick=”show(this.checked,’eth’,2)”bbb/td

tdinput name=checkbox5 type=checkbox onclick=”show(this.checked,’grid’,2)”ccc/td

/tr

/table

table width=”100%” border=”1″ cellspacing=”0″ cellpadding=”0″

tr

td id=”jf1″ style=”display:none”aaa/td

td id=”eth1″ style=”display:none”bbb/td

td id=”grid1″ style=”display:none”ccc/td/td

/tr

tr

td id=”jf2″ style=”display:none”aaa/td

td id=”eth2″ style=”display:none”bbb/td

td id=”grid2″ style=”display:none”ccc/td/td

/tr

/table

/div

JS腳本怎麼運行?

常見的執行js代碼都是放入到HTML引入後,然後通過HTML文件來執行胡查看代碼。顯然這是比較麻煩的事情,如果電腦裡面安裝了node.js,可以使用node來直接使用node來運行想要運行的js文件。

html

body

script language=”javascript”

function Card(owner,rate)

{

this.Owner=owner;

this.Rate=rate;

}

var mycard = new Card(“X”,”150″);

document.write(“name:”+mycard.Owner+”speed:”+mycard.Rate);

/script

/body

/html

擴展資料:

JavaScript語言中採用的是弱類型的變量類型,對使用的數據類型未做出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。

腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進制程序執行效率要稍低一些。

參考資料來源:百度百科-JS腳本

如何在js腳本中寫java代碼

就在function裡面寫就可以,js中只能指定動作,具體顯示還得讓jsp頁面來做。

如何把java代碼嵌入到javascript中

1.取得腳本解釋器的管理器Manager

2.從管理器中取得js的解釋器實例ScriptEngine

3.取得存儲javascript變量的Bindings實例

4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運行結果,如果執行中發生錯誤,會拋出ScriptException異常。

例:運行javascript腳本的一個java程序

throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運行的腳本文件Stringfilename=null;//通過解釋器來獲得存儲javascript變量的Bindings的實例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設置值的方法publicObjectget;//使用我們的name/value對(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創建一個變量,用於存放腳本執行的內容ScriptContextcontext=newSimpleScriptContext();//設置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過空行if(line.charAt(0)==‘#‘)continue;//跳過命令intpos=line.indexOf(“:”);if(pos==-1){thrownewIllegalArgumentException(“syntax:”+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘”‘lastchar==‘”‘){//雙引號引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開始是一個數字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒有數字,是一個stringdefaults.put(name,value);}}elseif(“true”.equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif(“false”.equals(value)){defaults.put(name,Boolean.FALSE);}elseif(“null”.equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對大括號之內,則執行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個字符串defaults.put(name,value);}}}//一個簡單的類的測試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set

原創文章,作者:UOKXK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/325513.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UOKXK的頭像UOKXK
上一篇 2025-01-13 13:24
下一篇 2025-01-13 13:24

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python腳本控制其他軟件

    Python作為一種簡單易學、功能強大的腳本語言,具有廣泛的應用領域,在自動化測試、Web開發、數據挖掘等領域都得到了廣泛的應用。其中,Python腳本控制其他軟件也是Python…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29

發表回復

登錄後才能評論