2016-05-05 7 views
1

Ich habe folgende javaScript Funktion:Wie verwende ich AJAX in Java?

function loadSomething() { 
    var xhttp; 
    if (window.XMLHttpRequest) { 
     xhttp = new XMLHttpRequest(); 
     } else { 
     // code for IE6, IE5 
     xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xhttp.open("GET", "javaservlet.java", true); 
    xhttp.send(); 
} 

und ich möchte bekommen, können von einem Java Servlet einen int-Wert sagen - "JavaServlet". Welchen Code sollte ich in javaservlets doGet() Methode schreiben, um einen Wert zu senden, damit ich es in javaScript bekommen und verwenden kann? Vielen Dank!

+0

Sie müssen Ihr Java-Servlet in einem Servlet-Container wie Tomcat oder Jetty ausführen. Der JavaScript-Code löst dann eine http-Anfrage an diesen Server aus. – f1sh

Antwort

1

Also, wollen Sie etwas von Ihrem Servlet zurück zum Javascript Sie aus, dass die Servlet aufgerufen zurückzukehren. Hier ist der Weg, ein XMLHttpRequest-Objekt machen mit diesen Zeilen Code

var reqObject = new XMLHttpRequst(); or new ActiveXObject("Microsoft.XMLHTTP"); 

jetzt eine Anfrage an die get oder post-Methode des Servlets der XMLHttpRequst offenen Methode verwenden, können Sie einfach tun es wie folgt

reqObject.open("GET/POST", "ServletName", true); 

jetzt, wenn Sie eine Anfrage an den Server gemacht haben und der Zustand des Objekts reqObject geändert wird, dann wollen Sie die Änderungen sehen, die vorgenommen werden. Rufen Sie eine Funktion, wenn der Zustand des Objekts

reqObject.onreadystatechange = processRespose; 

geändert wird, wenn man etwas als Parameter an das Servlet Verwendung Sendemethode andernfalls senden null senden möchten.

reqObject.send(null); 

jetzt, wenn das Servlet etwas in das Verfahren zurückkehr Sie von .open der Zustand des Objekts aufgerufen wird, wird geändert und die Funktion Process aufgerufen werden.

function processResponse(){ 
    //check whether the response form the server is intact and correct 
    if(reqObject.status==200 && reqObject.readyState==200){ 
    //simply means we got the response correctly 
    //Now you can get the response by 
    var res = reqObject.responseText; 

    }  
} 

Sie können hier über die Objekte Methoden und Eigenschaften lesen
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

ich Java Sie Servlet müssen nur mit der Objektprintwriter die erwartete Zeichenfolge senden. Eine ungefähre Version der Get-Methode würde ungefähr so ​​aussehen:

0

Sie müssen die URL-Zuordnung für dieses Servlet in web.xml bereitstellen. Ich nehme an, dass Ihr Servlet-Klassenname JavaServlet ist.

<servlet> 
<description></description> 
<display-name>JavaServlet</display-name> 
<servlet-name>JavaServlet</servlet-name> 
<servlet-class>JavaServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>JavaServlet</servlet-name> 
<url-pattern>/javaServlet</url-pattern> 
</servlet-mapping> 

Jetzt ändern Sie das folgende in JavaScript-Code, um GET-Anfrage an JavaServlet zu senden.

function loadSomething() 
{ 
    var xhttp; 
    if (window.XMLHttpRequest) { 
     xhttp = new XMLHttpRequest(); 
     } else { 
     // code for IE6, IE5 
     xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xhttp.open("GET", "javaServlet", true); 
    xhttp.send(); 
} 
+0

Ich würde gerne sehen, was ich in meinem Servlet schreiben soll, können Sie diesen Code bereitstellen? –

+1

Siehe Code hier. Sie müssen auch den Eintrag für das Servlet in web.xml eingeben. https://codeshare.io/9NJ2n –

0

Sie so schreiben kann ....

public void service(HttpServletRequest request, HttpServletResponse){ 
     response.getWriter().write("<Your Data>"); 
} 
Verwandte Themen