Freitag, 28. Dezember 2007

erster Test von Ajax

Nachdem es in den bisherigen Postings vor allem darum ging die Funktionalitäten des Ext-Js Framework grundlegend kennenzulernen habe ich nun einmal versucht eine Ajax Funktion zu erstellen, bzw. mich umgeschaut wie dies überhaupt funktioniert.

Der Schmäh bei Ajax ist ja, dass eine HTML-Seite vom Server nicht wie sonst üblich komplett neu geladen werden muss, sondern nur bestimmte Teile zB. vom JavaScript neu geladen werden.

Dabei habe ich grundsätzlich wieder eine ähnliche Vorgangsweise wie bei der 4.Ce-Übung verwendet. D.h. ich habe Eclipse gemeinsam mit dem Plugin MyEclipse verwendet (das das Deployen im Tomcat server erleichtert).

Anschließend habe ich nach " Running XMLHttpRequest with Java" gesucht und dabei folgendes beispiel gefunden: http://josesandoval.virtual.vps-host.net/XMLHttpRequest.html .

Hier werden mittels Ajax gewisse Suchergebnisse, die zuvor in ein Eingabefeld eingegeben wurden zurückgegeben. In diesem (Test-)Fall ist das jedoch keine Suchergebnis son dern es wird einfach der eingegebene Text zurückgegeben.

Dabei fungiert ein Servlet als Schnittstelle um gewisse Ajax Werte zurückzugeben, die wesentliche Methode sieht dabei so aus:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
StringBuffer resultBuffer = new StringBuffer();
String id = request.getParameter("id");
resultBuffer.append("1;Apple;1201 " + id); //hier wird einfach eine Konstante //zurückgegeben idf. die Apple Aktie sowie die id, die dem eingegebenen String im Suchfenster // entspricht

..........

out.print(resultBuffer.toString());
out.close();
}

Der Rest, also der Aufbau der JavaScript Datei und der html Code sind in der index.html datei, in der auch der java script code eingebaut ist!

Hier wird dann auch ein HttpObjekt erzeugt und mit
http.open wird dann auch auf das servlet zugegriffen, wobei hier auch die id mitgegeben wird, die den in das textfeld eingegebenen text liefert.




Ich hoffe nun, das sich das als grundlage eigenet, dass man in einem weiteren Schritt hier z.b. nach der eingabe eines namens wie apple in einer schönen ext-js tabelle aktiennamen und deren kurswerte sowie ev. weitere infos ausgeben kann!

Toll wäre die sache natürlich mit einem richtigen webserver, der tomcat ersetzt, aber auch so scheint die sache hoffentlich ganz aufschlussreich zu weden