Kommunikation Java und Javascript

Auf jeden fall solltest du jQuery benutzen und zusätzlich ein paar Tutorials zu Ajax raussuchen.
Ajax ist nur ein Name für etwas was es schon vorher gab. Das XMLHttPRequest Objekt. Dein Code solltest du übrigens nochmal überarbeiten. Ersmal bietet Microsoft noch einen zweiten, neueres ActiveX Objekt für Ajax an und ausserdem fehlt bei dir jegliche Fehlerprüfung. :O

Mit jQuery sieht es gleich viel saberer aus und ausserdme must du dir keine Gedanken über das XMLHttpRequest Objekt machen da jQuery die arbeit übernimmt.

Was die Serverseite angeht:
Ajax wird im Browser ausgeführt. Dieser lädt dann einfach die angeforderte Datei vom Server nach und sendet ggf. die Daten aus dem Skript mit. Was dann beim Server passiert ist auch Sache des Servers. JavaScript ist es egal ob da nun ein Serverlet, ein PHP SKript oder nur eine einfache (Text-)Datei ohne irgendwelchen Dynamischen code ist. Was du nun beim Server benutzt liegt an dir und den Fähigkeiten des Servers.
 
naja war bist jetzt nur der Grundgedanke für das Project, das ActiveX Objekt kann ich komplett weglassen, da die Kunden mindestens IE 8 besitzen müssen (am liebsten gar kein IE...)
naja dann werde ich mir nochmal ein paar JQuery und Ajax Tuts an gucken werden.
Aber wie würde denn von der Java Code Seite her ein response Objekt für das xmlhttp aussehen?

Java:
response.getWriter();


so ca? Die Sache ist, dass die Javascript Funktionen spezielle zur Laufzeit generierte Java Objekte ansprechen sollen, die über die HTML Gui bestimmt werden.
 
Am besten sogar min. IE 9 :)

Ansonsten kannst du wie gesagt alles hin und her senden. Von einem einzelnen Zeichen, über Zahlen und "Strukturen" (JSON, XML) bis hin zu kompletten Datein (vorzugsweise Seiten).
Du must nur daran denken das du alles was du per Java sendest in deinem JavaScript Code wieder ausgelsen werden muss. Wenn es nur Zahlen sind ist das kein Problem. Willst du aber ganze Objekte senden würde ich eine eigene "Serialiesierungs Funktion" schreiben. Das macht es dir einfacher die Daten ieder in JS auszulesen.
 
hatte es jetzt mal so probiert:

Java:
response.setContentType("text/xml");
response.getWriter().println("<logged>true</logged>");
//response.getWriter().println("<nutzungsart>"+ rs.getString(4) +"</nutzungsart>");
//response.getWriter().println("<bs_bd>        "+ rs.getString(5) + " </bs_bd>");
//response.getWriter().println("<db_version>   "+ rs.getString(6) + " </db_version>");

nun hab ich jedoch das Problem, wenn ich das zweite Argument zur xml hinzufüge, erkennt mein JQuery das ganze nicht mehr...
wenn nur der Teil mit logged dort steht, funktioniert es jedoch wunderbar? kann es sein, dass ich den Aufbau der XML ein bisschen verhaue?

Java:
response.setContentType("text/xml");
response.getWriter().println("<logged>true</logged>");

Javascript:
    $('#log').click(function(){
        if(window.XMLHttpRequest) {
            
            var kdNr    = $('#kundennr').val();
            var use     = $('#user').val();
            var pw      = $('#passwort').val();
            
            $.post("login",{nr:kdNr, user:use, passwort:pw},function(xml){
                var logged = $(xml).find("logged").text();
                alert(logged);
                alert($(xml).find("nutzungsart").text());
                if(logged == "true") {
                    login2();
                }
                else {
                    alert("fehlerhafte Anmeldung");
                }
            });
        }
        else {
            alert("Bitte aktualisieren sie ihren Browser");
        }
    });

EDIT: hatte den Wurzelknoten vergessen... funktioniert jetzt
 
Zuletzt bearbeitet von einem Moderator:
Zurück