ホームページ > コンピューターのチュートリアル > コンピュータ知識 > Javaクラスメソッドをjsで呼び出す方法

Javaクラスメソッドをjsで呼び出す方法

王林
リリース: 2024-01-15 17:48:11
転載
1537 人が閲覧しました

Javaクラスメソッドをjsで呼び出す方法

js はどのようにして JAVA クラスのメソッドを呼び出すのでしょうか?特定のコード

ajax メソッドを使用します。

まず、呼び出すクラス名とメソッド名をパラメータとしてサーブレットに渡します。この手順は、フレームワークを使用するか、XMLHttpRequest オブジェクトを直接使用して実行できます。

さらに、呼び出されるクラス名とクラスの完全なパッケージ パスは、構成ファイルに記述するのが最適です

ここでは、クラス名が Hello、メソッド名がsayHello、sayHello メソッドがパラメータを取らず、クラスパスが com.demo.Hello

であると仮定します。

設定ファイルAjaxConfig.properties

こんにちは = com.demo.Hello

つまり、渡されるパラメータは class=Hello&method=sayHello

です。

サーブレットで次の処理を行います。

String className=request.getParameter("クラス名");

String メソッド名=request.getParameter("メソッド");

文字列クラスパス=null;

.

設定ファイルを読み取り、className に対応する値を取り出し、classPath 変数に入れます (これを行うには多くの方法があります。設定ファイルの読み取り方法は、オンラインで情報を見つけることができます。たくさんあります。私が説明します)詳細には触れません)

.

Class c=Class.forName(classPath); //指定したクラスをロードします

Class param[]=new Class[0]; //メソッドのパラメータは 0

メソッド m=null;

String returnValue=null; //戻り値

###試す {###

m = c.getMethod("sayHello",param); //指定したクラスの指定したメソッドを取得します

} catch (SecurityException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

} catch (NoSuchMethodException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

}

###試す {###

returnValue=(String)m.invoke(c.newInstance(), new Object[0]); //指定したメソッドを呼び出します

} catch (IllegalArgumentException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

} catch (InstantiationException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

}

最後に、returnValue の値をクライアントに返します

クラス Hello.java

パブリッククラスこんにちは

{

パブリック文字列sayHello()

{

「こんにちは」を返す;

}

}

理解できない場合は、67919823 を追加してください。一緒に話し合います

JavaScript で Java のオブジェクトを使用する方法

Web ページと Android アプリケーション間の対話を容易にするために、Android システムは、WebView の JavaScript Web スクリプトが Java クラス メソッドを呼び出すためのメカニズムを提供します。 addJavascriptInterface メソッドを呼び出して、Java オブジェクトを JavaScript オブジェクトにマップするだけです。

1. Java オブジェクトから JavaScript オブジェクトへのマッピング

コードは以下のように表示されます:

mWebView = (WebView) findViewById(R.id.wv_content);

mWebView.setVerticalScrollbarOverlay(true);

最終的な WebSettings 設定 = mWebView.getSettings();

settings.setSupportZoom(true);

//WebView により Javascript スクリプトの実行が可能になります

settings.setJavaScriptEnabled(true);

settings.setJavaScriptCanOpenWindowsAutomatically(true);

//Java オブジェクトを「js2java」という名前の Javascript オブジェクトにマッピングする

//JavaScript は「window.js2java」を通じて Java オブジェクト メソッドを呼び出すことができます

mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");

コードは以下のように表示されます:

/**Web ページの Javascript 呼び出しインターフェイス**/

クラスJSInvokeClass {

パブリック void back() {

activity.finish();

}

}

2. Java オブジェクトを呼び出す JavaScript の例

次のように、上記の JSInvokeClass クラス オブジェクトの back メソッドを呼び出します。

コードをコピーします コードは次のとおりです:

window.js2java.back();

JavaScript で Java クラスのメソッドを使用する方法

###それは難しい!一人はフロントデスク、もう一人はバックデスクですが、AJAX はこの考えを実現します。 . 以下は AJAX の例です:

// JavaScript ドキュメント

var xmlHttp;

関数 GetXmlHttpObject()

{

var xhr=null;

###試す###

{

// Firefox、Opera 8.0、Safari

xhr=新しいXMLHttpRequest();

}キャッチ (e)

{

###//インターネットエクスプローラ### ###試す###

{

xhr=新しい ActiveXObject("Msxml2.XMLHTTP");

}キャッチ (e)

{

xhr=新しい ActiveXObject("Microsoft.XMLHTTP");

}

}

xhr を返す;

}

関数 getDataByDept(str)

{

xmlHttp = GetXmlHttpObject();

if(xmlHttp==null)

{

alert("申し訳ありません! お使いのブラウザは AJAX をサポートしていません!");

###戻る;###

}

var url = "/intcard/jsp/employee.do?method=getByDept"

xmlHttp.onReadyStateChange=stateChanged;

xmlHttp.open("post",url,true);

xmlHttp.setRequestHeader('Content-Type', 'application/x--form-urlencoded;charset=UTF-8');

xmlHttp.send("dept=" str);

}

関数 stateChanged()

{

if(xmlHttp.readyState == 4)

{

var result = xmlHttp.responseText;

document.getElementById("select_employees").innerHTML = result;

}

}

アイデアは、HTML コントロールのイベントを通じて JS メソッドを呼び出し、JS プロセス内の httprequest オブジェクトの open メソッドを通じてサーバー スクリプトを呼び出すことです。----- サーバー スクリプトでは、 javabeanメソッドを利用して計算結果をJS.Curveで実現します

以上がJavaクラスメソッドをjsで呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:docexcel.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート