㈠ jsp中java代碼可以寫在js中嗎
答:jsp中java代碼可以寫在js中。
㈡ 請問怎麼寫java調用node環境運行js代碼
nodejs 運行代碼可以在命令行中使用命令「 node /path/xxx.js 」來執行
所以我們可以藉助 java 的 Runtime 類,可以執行系統本地的命令, 例如:
Linux系統下:Runtime.getRuntime().exec("node /path/xxx.js");
Window系統下:Runtime.getRuntime().exec("cmd /c node /path/xxx.js");
當然推薦使用 Apache-Commons-Exec 工具類,可以屏蔽不同系統命令差異,並且獲取結果更簡單
工具類使用可以參考此文:網頁鏈接
㈢ 怎麼用java代碼創建js文件!!!
方法一:file --》 new file--> 輸入javascript 【出現javascript 一個是項目 一個是file】--》直接選擇javascript 文件就可以了
方法2:右擊新建file 後綴名改成js 就可以了
㈣ 一段簡單的java代碼轉成JavaScript代碼多謝
js 不應該負責加密解碼,
應該只負責傳遞數據,可以傳遞加密前的,也可以傳遞加密後的
加密解碼的工作都應該放在服務端來處理
㈤ 如何把java代碼嵌入到javascript中
1.取得腳本解釋器的管理器Manager
2.從管理器中取得js的解釋器實例ScriptEngine
3.取得存儲javascript變數的Bindings實例
4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運行結果,如果執行中發生錯誤,會拋出ScriptException異常。
例:運行javascript腳本的一個java程序
throwsIOException{=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){("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應用代碼[2]
很重要的一點是注意變數是否是在其所屬范圍的開始處聲明的 有時這會導致意想不到的情況 eak();var aNumber = ;function eak() { var newThing = ; // 顯式聲明 newThing 變數 // 本語句將未定義的變數賦給 newThing 因為已有名為 aNumber 的局部變數 newThing = aNumber; //下一條語句將值 賦給局部的 aNumber aNumber = ; if (false) { var aNumber; // 該語句永遠不會執行 aNumber = ; // 該語句永遠不會執行 } // 條件語句結束 } // 該函數定義結束
當 JScript 運行函數時 首先查找所有的變數聲明
var someVariable;
並以未定義的初始值創建變數 如果變數被聲明時有值
var someVariable = something ;
那麼該變數仍以未定義的值初始化 並且只有在運行了聲明行時才被聲明值取代 假如曾經被聲明過
JScript 在運行代碼前處理變數聲明 所以聲明是位於一個條件塊中還是其他某些結構中無關緊要 JScript 找到所有的變數後立即運行函數中的代碼 如果變數是在函數中顯式聲明的 ? 也就是說 如果它出現於賦值表達式的左邊但沒有用 var 聲明 ? 那麼將把它創建為全局變數
復制 傳遞和比較數據
在 JScript 中 對數據的處理取決於該數據的類型
按值和按引用的比較
Numbers 和 Boolean 類型的值 (true 和 false) 是按值來復制 傳遞和比較的 當按值復制或傳遞時 將在計算機內存中分配一塊空間並將原值復制到其中 然後 即使更改原來的值 也不會影響所復制的值(反過來也一樣) 因為這兩個值是獨立的實體
對象 數組以及函數是按引用來復制 傳遞和比較的 當按地址復制或傳遞時 實際是創建一個指向原始項的指針 然後就像拷貝一樣來使用該指針 如果隨後更改原始項 則將同時更改原始項和復制項(反過來也一樣) 實際上只有一個實體 復本 並不是一個真正的復本 而只是該數據的又一個引用
當按引用比較時 要想比較成功 兩個變數必須參照完全相同的實體 例如 兩個不同的 Array 對象即使包含相同的元素也將比較為不相等 要想比較成功 其中一個變數必須為另一個的參考 要想檢查兩個數組是否包含了相同的元素 比較 toString() 方法的結果
最後 字元串是按引用復制和傳遞的 但是是按值來比較的 請注意 假如有兩個 String 對象(用 new String( something ) 創建的) 按引用比較它們 但是 如果其中一個或者兩者都是字元串值的話 按值比較它們
注意 鑒於 ASCII和 ANSI 字元集的構造方法 按序列順序大寫字母位於小寫字母的前面 例如 Zoo 小於 aardvark 如果想執行不區分大小寫的匹配 可以對兩個字元串調用 toUpperCase() 或 toLowerCase()
傳遞參數給函數
按值傳遞一個參數給函數就是製作該參數的一個獨立復本 即一個只存在於該函數內的復本 即使按引用傳遞對象和數組時 如果直接在函數中用新值覆蓋原先的值 在函數外並不反映新值 只有在對象的屬性或者數組的元素改變時 在函數外才可以看出
例如(使用 IE 對象模式) // 本代碼段破壞(覆蓋)其參數 所以// 調用代碼中反映不出變化 function Clobber(param){ // 破壞參數 在調用代碼中 // 看不到 param = new Object(); param message = This will not work ;}// 本段代碼改變參數的屬性 // 在調用代碼中可看到屬性改變 function Update(param){ // 改變對象的屬性 // 可從調用代碼中看到改變 param message = I was changed ;}// 創建一個對象 並賦給一個屬性 var obj = new Object();obj message = This is the original ;// 調用 Clobber 並輸出 obj message 注意 它沒有發生變化 Clobber(obj);window alert(obj message); // 仍然顯示 This is the original // 調用 Update 並輸出 obj message 注意 它已經被改變了 Update(obj);window alert(obj message); // 顯示 I was changed
檢驗數據
當按值進行檢驗時 是比較兩個截然不同的項以查看它們是否相等 通常 該比較是逐位元組進行的 當按引用進行檢驗時 是看這兩項是否是指向同一個原始項的指針 如果是 則比較結果是相等 如果不是 即使它們每個位元組都包含完全一樣的值 比較結果也為不相等
按引用復制和傳遞字元串能節約內存 但是由於在字元串被創建後不能進行更改 因此可以按值進行比較 這樣可以檢查兩個字元串是否包含相同的內容 即使它們是完全獨立產生的
lishixin/Article/program/Java/JSP/201311/20709
㈦ 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>
<td><input name=checkbox2 type=checkbox onclick="show(this.checked,'jf',2)">aaa</td>
<td><input name=checkbox3 type=checkbox onclick="show(this.checked,'eth',2)">bbb</td>
<td><input 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>
㈧ 如何通過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代碼嗎
jsp中可以將java,js,htm糅合在一起,這是一種用法,另外如果你用過servlet,就會知道本身servlet調用輸出方法可以生成HTML,那也是可以用js代碼的。
㈩ 在java 代碼裡面 寫js 自動彈出列印頁面
為什麼要在java裡面寫?這種直接寫在html裡面就行了。
<input onclick=window.print() style="cursor:hand" type=button value=列印本頁>
如果需要java寫的話,直接調用js方法window.print()