wake-up-neo.com

Wie benutzt man Servlets und Ajax?

Ich bin sehr neu in Web-Apps und Servlets und habe die folgende Frage:

Immer wenn ich etwas im Servlet drucke und es vom Webbrowser aufrufe, wird eine neue Seite mit diesem Text zurückgegeben. Gibt es eine Möglichkeit, den Text auf der aktuellen Seite mit Ajax zu drucken?

324
Amir Rachum

Der richtige Weg, um die aktuell im Browser des Benutzers angezeigte Seite zu aktualisieren (ohne sie erneut zu laden), besteht darin, den DOM der Seite durch Ausführen von Code im Browser zu aktualisieren.

Bei diesem Code handelt es sich normalerweise um Javascript, das in die HTML-Seite eingebettet oder von dieser verlinkt ist, daher der Vorschlag AJAX. (Wenn wir davon ausgehen, dass der aktualisierte Text über eine HTTP-Anforderung vom Server stammt, handelt es sich um klassisches AJAX.)

Es ist auch möglich, diese Art von Dingen mit einem Browser-Plugin oder Add-On zu implementieren, obwohl es schwierig sein kann, dass ein Plugin in die Datenstrukturen des Browsers greift, um das DOM zu aktualisieren. (Native Code-Plugins schreiben normalerweise in einen Grafikrahmen, der in die Seite eingebettet ist.)

14
Stephen C

Ich zeige Ihnen ein ganzes Beispiel für Servlet und wie man Ajax aufruft.

Hier erstellen wir das einfache Beispiel zum Erstellen des Anmeldeformulars mit dem Servlet.

index.html

<form>  
   Name:<input type="text" name="username"/><br/><br/>  
   Password:<input type="password" name="userpass"/><br/><br/>  
   <input type="button" value="login"/>  
</form>  

Hier ist ein Ajax-Beispiel

       $.ajax
        ({
            type: "POST",           
            data: 'LoginServlet='+name+'&name='+type+'&pass='+password,
            url: url,
        success:function(content)
        {
                $('#center').html(content);           
            }           
        });

LoginServlet Servlet Code: -

    package abc.servlet;

import Java.io.File;


public class AuthenticationServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {   
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        try{
        HttpSession session = request.getSession();
        String username = request.getParameter("name");
        String password = request.getParameter("pass");

                /// Your Code
out.println("sucess / failer")
        } catch (Exception ex) {
            // System.err.println("Initial SessionFactory creation failed.");
            ex.printStackTrace();
            System.exit(0);
        } 
    }
}
13
$.ajax({
type: "POST",
url: "url to hit on servelet",
data:   JSON.stringify(json),
dataType: "json",
success: function(response){
    // we have the response
    if(response.status == "SUCCESS"){
        $('#info').html("Info  has been added to the list successfully.<br>"+
        "The  Details are as follws : <br> Name : ");

    }else{
        $('#info').html("Sorry, there is some thing wrong with the data provided.");
    }
},
 error: function(e){
   alert('Error: ' + e);
 }
});
8
SUBZ

Ajax (auch AJAX), eine Abkürzung für Asynchronous JavaScript and XML, ist eine Gruppe miteinander verbundener Webentwicklungstechniken, mit denen clientseitig asynchrone Webanwendungen erstellt werden. Mit Ajax können Webanwendungen Daten asynchron an einen Server senden und von diesem abrufen.

Jsp page Java Skriptfunktion zum Senden von Daten an das Servlet mit zwei variablen Vornamen und Nachnamen:

function onChangeSubmitCallWebServiceAJAX()
    {
      createXmlHttpRequest();
      var firstName=document.getElementById("firstName").value;
      var lastName=document.getElementById("lastName").value;
      xmlHttp.open("GET","/AJAXServletCallSample/AjaxServlet?firstName="
      +firstName+"&lastName="+lastName,true)
      xmlHttp.onreadystatechange=handleStateChange;
      xmlHttp.send(null);

    }

Servlet zum Lesen von Daten im XML-Format an jsp zurücksenden (Sie können auch Text verwenden. Sie müssen lediglich den Antwortinhalt in Text ändern und Daten mit der Javascript-Funktion rendern.)

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String firstName = request.getParameter("firstName");
    String lastName = request.getParameter("lastName");

    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-cache");
    response.getWriter().write("<details>");
    response.getWriter().write("<firstName>"+firstName+"</firstName>");
    response.getWriter().write("<lastName>"+lastName+"</lastName>");
    response.getWriter().write("</details>");
}
7
user3468976

Normalerweise kann eine Seite von einem Servlet nicht aktualisiert werden. Der Client (Browser) muss ein Update anfordern. Der Eiter-Client lädt eine neue Seite oder fordert eine Aktualisierung eines Teils einer vorhandenen Seite an. Diese Technik heißt Ajax.

5
Peter Knego

Mit bootstrap Mehrfachauswahl

Ajax

function() { $.ajax({
    type : "get",
    url : "OperatorController",
    data : "input=" + $('#province').val(),
    success : function(msg) {
    var arrayOfObjects = eval(msg); 
    $("#operators").multiselect('dataprovider',
    arrayOfObjects);
    // $('#output').append(obj);
    },
    dataType : 'text'
    });}
}

In Servlet

request.getParameter("input")
4