當前位置:首頁 » 編程語言 » javajs方法

javajs方法

發布時間: 2022-06-14 13:55:19

⑴ js 怎麼調用java類的方法具體代碼

用ajax的方法.

首先將要調用的類名和方法名作為參數傳給某個servlet.這一步的方法有許多種,用框架,或者直接用xmlHttpRequest對象.

另外,要調用的類名和類的完整包路徑最好寫在配置文件里
這里假設類名為Hello,方法名為sayHello,並且sayHello方法不帶參數,類路徑為com.demo.Hello

配置文件AjaxConfig.properties
Hello = com.demo.Hello

於是傳入的參數為 class=Hello&method=sayHello
在servlet中作如下處理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
.
讀取配置文件,取出className所對應的值放入classPath變數中(這一步方法有很多種,怎麼讀配置文件,可以網上找資料,很多的,我就不細寫了)
.
Class c=Class.forName(classPath);//載入你所指定的類
Class param[]=new Class[0];//方法的參數為0個
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//獲取你所指定的類中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//調用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最後,將returnValue的值返回給客戶端即可
類Hello.java

public class Hello
{
public String sayHello()
{
return "hello";
}
}

不明白的加67919823,我們一起討論呀

⑵ js怎麼調用JAVA方法

用ajax的方法.

首先將要調用的類名和方法名作為參數傳給某個servlet.這一步的方法有許多種,用框架,或者直接用xmlHttpRequest對象.

另外,要調用的類名和類的完整包路徑最好寫在配置文件里
這里假設類名為Hello,方法名為sayHello,並且sayHello方法不帶參數,類路徑為com.demo.Hello

配置文件AjaxConfig.properties
Hello = com.demo.Hello

於是傳入的參數為 class=Hello&method=sayHello
在servlet中作如下處理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
.
讀取配置文件,取出className所對應的值放入classPath變數中(這一步方法有很多種,怎麼讀配置文件,可以網上找資料,很多的,我就不細寫了)
.
Class c=Class.forName(classPath);//載入你所指定的類
Class param[]=new Class[0];//方法的參數為0個
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//獲取你所指定的類中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//調用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最後,將returnValue的值返回給客戶端即可
類Hello.java

public class Hello
{
public String sayHello()
{
return "hello";
}
}

不明白的加67919823,我們一起討論呀

⑶ 如何用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方法

首先,你要搞清楚JS是什麼,它是在HTML頁面上運用的,你想用JAVA代碼去調用,那是不行的都。最多,在前台頁面,和後台程序進行交互的時候,你可以用到JS跳轉傳參到後台JAVA程序中,進行互動。
JAVA直接調用JS的方法,我確實是沒有聽過

⑸ js 里使用java方法 帶參數

看樓主的寫法 貌似temp1應該是一個變數名
但是樓主卻在括弧里給temp1左右各加了一個雙引號,傳的是個字元串
不知道是不是故意的,不知道能不能把方法要求的參數類型貼上來看看
看到樓下這些說不可以的我很納悶
JSP是在伺服器執行的 js是在瀏覽器執行的, 瀏覽器又是編譯伺服器返回過來的頁面後才會執行
jsp腳本寫在那裡,到了瀏覽器就會變成了值,樓主的這個方面明顯的返回是一個String,瀏覽器編譯的時候 哪裡早變成了字元串了,怎麼不可以?
說不可以的可以拿這個代碼自己去試,放在你自己的頁面里,看行不行
<script>alert("<% String a = "aaaa"; out.print(a); %>");</script>
只不過這種方法有局限性,必須是頁面編譯前 小腳本已經執行過了才行,例如那種頁面載入完畢後的ajax效果,這種方法是不行的

⑹ 如何在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方法有哪些

其實網上有很多方法

/** 載入腳本引擎,並在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函數

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

⑼ java中怎麼插入js函數

js是前台頁面應用技術,java是後台應用技術,js後台是用不上的,如果需要,可以jsp在前台混插使用。
Java是不可以插入js的,但是可以輸出js,一般有以下兩種方法:
1.通過request跳轉的方式,在中間彈出js代碼。
2.可以通過out.print()列印的方式把整個頁面列印出來,這中間雖然是Java中輸出,但是也是輸出的頁面。
大體這么多,也可能有我不知道的方法,如果覺的可以,給分,謝謝。

⑽ js怎麼調用java類的方法

<javascript>
<%
//在這里隨便怎麼調用java類的方法都可以 ,比如說下面寫一個
User u=new User();
User u=new User();
u=u.getuserbyid(1);
%>
//上面我用java代碼根據id取得了一個user類的實體 u 下面就可以用js操作顯示等等
alert(<%=u.getusername()%>);//在窗口列印一個用戶名

</javascript>

熱點內容
網頁設置的密碼如何刪除 發布:2024-05-06 02:20:30 瀏覽:925
如何查看snmp配置信息 發布:2024-05-06 02:19:48 瀏覽:488
預科編程 發布:2024-05-06 02:19:42 瀏覽:139
壓縮比英文 發布:2024-05-06 01:56:35 瀏覽:172
數字php 發布:2024-05-06 01:53:10 瀏覽:742
編程中怎麼 發布:2024-05-06 01:43:32 瀏覽:629
如何訪問遠程資料庫 發布:2024-05-06 01:39:20 瀏覽:447
刷演算法的網站 發布:2024-05-06 01:30:39 瀏覽:270
少兒編程徐州 發布:2024-05-06 01:20:42 瀏覽:462
sqlserver連接驅動 發布:2024-05-06 00:33:34 瀏覽:646