Maison >tutoriels informatiques >connaissances en informatique >Comment appeler la méthode de classe JAVA en js
Utilisez la méthode ajax.
Tout d’abord, transmettez le nom de la classe et le nom de la méthode à appeler en tant que paramètres à un servlet. Cette étape peut être réalisée à l'aide d'un framework ou directement à l'aide de l'objet XMLHttpRequest.
De plus, il est préférable d'écrire le nom de la classe à appeler et le chemin complet du package de la classe dans le fichier de configuration
Ici, on suppose que le nom de la classe est Hello, le nom de la méthode est sayHello, la méthode sayHello ne prend aucun paramètre et le chemin de la classe est com.demo.Hello
Fichier de configuration AjaxConfig.properties
Bonjour = com.demo.Bonjour
Donc, les paramètres transmis sont class=Hello&method=sayHello
Effectuez le traitement suivant dans la servlet :
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
.
Lisez le fichier de configuration, retirez la valeur correspondant à className et mettez-la dans la variable classPath (il existe de nombreuses façons de faire cette étape, comment lire le fichier de configuration, vous pouvez trouver des informations en ligne, il y en a beaucoup, je ne le ferai pas entrer dans les détails)
.
Class c=Class.forName(classPath); //Chargez la classe que vous avez spécifiée
Class param[]=new Class[0]; //Les paramètres de la méthode sont 0
Méthode m=null;
String returnValue=null; //Valeur de retour
essayez {
m = c.getMethod("sayHello",param); //Obtient la méthode spécifiée dans la classe que vous avez spécifiée
} catch (SecurityException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
} catch (NoSuchMethodException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
}
essayez {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]); //Appelle la méthode que vous avez spécifiée
} catch (IllegalArgumentException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
} catch (IllegalAccessException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
} catch (InvocationTargetException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
} catch (InstanciationException e) {
//TODO Bloc de capture généré automatiquement
e.printStackTrace();
}
Enfin, renvoyez la valeur de returnValue au client
Classe Bonjour.java
cours public Bonjour
{
chaîne publique sayHello()
{
retourne "bonjour" ;
}
}
Si vous ne comprenez pas, ajoutez 67919823 et discutons-en ensemble
Afin de faciliter l'interaction entre les pages Web et les applications Android, le système Android fournit un mécanisme permettant aux scripts Web JavaScript dans WebView d'appeler les méthodes de classe Java. Appelez simplement la méthode addJavascriptInterface pour mapper un objet Java à un objet JavaScript.
1. Mappage d'objets Java vers des objets JavaScript
Le code est le suivant :
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
paramètres WebSettings finaux = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView permet l'exécution de scripts Javascript
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//Mappez des objets Java sur un objet Javascript nommé "js2java"
//En JavaScript, vous pouvez appeler des méthodes d'objet Java via "window.js2java"
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
Le code est le suivant :
/**Interface d'appel Javascript de page Web**/
classe JSInvokeClass {
public void back() {
activité.finish();
}
}
2. Exemple d'appel JavaScript d'un objet Java
Appelez la méthode back de l'objet de classe JSInvokeClass ci-dessus, comme suit :
Copiez le code Le code est le suivant :
window.js2java.back();
C'est dur ! L’un est la réception et l’autre est la réception, mais AJAX réalise cette idée ! . Ci-dessous un exemple AJAX :
//Document JavaScript
var xmlHttp;
fonction GetXmlHttpObject()
{
var xhr=null;
essayez
{
//Firefox, Opera 8.0+, Safari
xhr=nouveau XMLHttpRequest();
}attrape(e)
{
//Internet Explorer
essayez
{
xhr=nouvel ActiveXObject("Msxml2.XMLHTTP");
}attrape(e)
{
xhr=nouveau ActiveXObject("Microsoft.XMLHTTP");
}
}
retour xhr;
}
fonction getDataByDept(str)
{
xmlHttp = GetXmlHttpObject();
if(xmlHttp==null)
{
alerte ("Désolé ! Votre navigateur ne prend pas en charge AJAX !");
retour ;
}
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);
}
fonction stateChanged()
{
if(xmlHttp.readyState == 4)
{
var résultat = xmlHttp.responseText;
document.getElementById("select_employees").innerHTML = result;
}
}
L'idée est d'appeler la méthode JS via l'événement du contrôle HTML, et d'appeler le script serveur via la méthode open de l'objet httprequest dans le processus JS ----- Dans le script serveur, vous pouvez utiliser la méthode javabean et transmettez le résultat du calcul à JS Curves, réalisez vos pensées
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!