Verwenden Sie die Ajax-Methode.
Übergeben Sie zunächst den Klassennamen und den Methodennamen, die aufgerufen werden sollen, als Parameter an ein Servlet. Dieser Schritt kann mithilfe eines Frameworks oder direkt mithilfe des XMLHttpRequest-Objekts ausgeführt werden.
Zusätzlich schreibt man am besten den Namen der aufzurufenden Klasse und den kompletten Paketpfad der Klasse in die Konfigurationsdatei
Hier gehen wir davon aus, dass der Klassenname Hello ist, der Methodenname sayHello ist und die Methode sayHello keine Parameter akzeptiert und der Klassenpfad com.demo.Hello ist
Konfigurationsdatei AjaxConfig.properties
Hello = com.demo.Hello
Die übergebenen Parameter sind also class=Hello&method=sayHello
Führen Sie die folgende Verarbeitung im Servlet durch:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
.
Lesen Sie die Konfigurationsdatei, nehmen Sie den dem Klassennamen entsprechenden Wert heraus und geben Sie ihn in die Variable classPath ein (es gibt viele Möglichkeiten, diesen Schritt auszuführen, wie Sie die Konfigurationsdatei lesen, Sie können Informationen online finden, es gibt viele, ich werde nicht gehen Sie ins Detail)
.
Class c=Class.forName(classPath); //Die von Ihnen angegebene Klasse laden
Class param[]=new Class[0]; //Die Parameter der Methode sind 0
Methode m=null;
String returnValue=null; //Rückgabewert
versuchen {
m = c.getMethod("sayHello",param); //Holen Sie sich die angegebene Methode in der von Ihnen angegebenen Klasse
} Catch (SecurityException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
} Catch (NoSuchMethodException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
versuchen {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]); //Rufen Sie die von Ihnen angegebene Methode auf
} Catch (IllegalArgumentException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
} Catch (IllegalAccessException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
} Catch (InvocationTargetException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
} Catch (InstantiationException e) {
//TODO Automatisch generierter Catch-Block
e.printStackTrace();
}
Zuletzt geben Sie den Wert von returnValue an den Client zurück
Klasse Hello.java
öffentliche Klasse Hallo
{
öffentlicher String sayHello()
{
zurück „Hallo“;
}
}
Wenn Sie es nicht verstehen, fügen Sie 67919823 hinzu und lassen Sie es uns gemeinsam besprechen
Um die Interaktion zwischen Webseiten und Android-Anwendungen zu erleichtern, bietet das Android-System einen Mechanismus für JavaScript-Webskripte in WebView zum Aufrufen von Java-Klassenmethoden. Rufen Sie einfach die Methode addJavascriptInterface auf, um ein Java-Objekt einem JavaScript-Objekt zuzuordnen.
1. Zuordnen von Java-Objekten zu JavaScript-Objekten
Der Code lautet wie folgt:
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
endgültige WebSettings-Einstellungen = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView ermöglicht die Ausführung von Javascript-Skripten
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//Java-Objekte einem Javascript-Objekt namens „js2java“ zuordnen
//Sie können Java-Objektmethoden über „window.js2java“ in JavaScript aufrufen
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
Der Code lautet wie folgt:
/**Webseite-Javascript-Aufrufschnittstelle**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}
2. Beispiel für den Aufruf eines Java-Objekts durch JavaScript
Rufen Sie die Back-Methode des obigen JSInvokeClass-Klassenobjekts wie folgt auf:
Kopieren Sie den Code. Der Code lautet wie folgt:
window.js2java.back();
Es ist schwer! Einer ist die Rezeption und der andere ist der hintere Schreibtisch, aber AJAX setzt diese Idee um! . Unten ist ein AJAX-Beispiel:
//JavaScript-Dokument
var xmlHttp;
Funktion GetXmlHttpObject()
{
var xhr=null;
versuchen
{
// Firefox, Opera 8.0+, Safari
xhr=new XMLHttpRequest();
}fangen (e)
{
//Internet Explorer
versuchen
{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}fangen (e)
{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xhr;
}
Funktion getDataByDept(str)
{
xmlHttp = GetXmlHttpObject();
if(xmlHttp==null)
{
alert („Entschuldigung! Ihr Browser unterstützt AJAX nicht!“);
zurück;
}
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);
}
Funktion stateChanged()
{
if(xmlHttp.readyState == 4)
{
var result = xmlHttp.responseText;
document.getElementById("select_employees").innerHTML = result;
}
}
Die Idee besteht darin, die JS-Methode über das Ereignis des HTML-Steuerelements aufzurufen und das Serverskript über die offene Methode des httprequest-Objekts im JS-Prozess aufzurufen ----- Im Serverskript können Sie die Javabean-Methode verwenden und geben Sie das Berechnungsergebnis an JS Curves weiter, um Ihre Gedanken zu verwirklichen
Das obige ist der detaillierte Inhalt vonSo rufen Sie die JAVA-Klassenmethode in js auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!