AJAX mit Java-Servlets und JSP - So bringen Sie Speed in Ihre Webpräsenz
von: Ralph Steyer
Addison-Wesley Verlag, 2006
ISBN: 9783827324184
Sprache: Deutsch
352 Seiten, Download: 6439 KB
Format: PDF, auch als Online-Lesen
Inhaltsübersicht | 6 | ||
Inhaltsverzeichnis | 8 | ||
Vorwort | 16 | ||
1 Einleitung | 18 | ||
1.1 Wer ich bin | 18 | ||
1.2 Wer sind Sie? | 19 | ||
1.3 Was behandelt das Buch? | 19 | ||
1.4 Schreibkonventionen | 21 | ||
1.5 Was benötigen Sie? | 22 | ||
2 AJAX stellt sich vor | 26 | ||
2.1 Wozu AJAX? | 26 | ||
2.1.1 Der Datentransfer per Paketvermittlung | 26 | ||
2.1.2 Clientseitige Webprogrammierung als erste Optimierung | 28 | ||
2.1.3 Probleme bei clientseitiger Programmierung | 29 | ||
2.1.4 Rückverlagerung auf den Server | 30 | ||
2.1.5 Der Status quo | 30 | ||
2.1.6 Wozu brauchen wir AJAX? | 31 | ||
2.1.7 Die Geschichte von AJAX | 38 | ||
2.2 Sprung ins kalte Wasser | 38 | ||
2.2.1 Aufbau einer Testumgebung | 39 | ||
2.2.2 Das konkrete Beispiel | 57 | ||
2.2.3 Ein paar Ideen zur Erweiterung bzw. Abwandlung | 67 | ||
2.3 Einige kritische Bemerkungen zu AJAX | 67 | ||
2.4 Einige interessante AJAX-Projekte | 69 | ||
2.4.1 AJAXWhois | 69 | ||
2.4.2 Google Maps | 69 | ||
2.4.3 Yahoo Maps | 71 | ||
2.4.4 Google Pages | 71 | ||
2.4.5 Writely | 72 | ||
2.4.6 Yahoo Flickr | 72 | ||
2.4.7 Google suggest | 72 | ||
2.4.8 Microsoft Live.com | 72 | ||
2.4.9 Geonames.org | 72 | ||
2.5 Zusammenfassung | 73 | ||
3 (X)HTML) und DOM für AJAX-Programmierer | 76 | ||
3.1 Der Aufbau von (X)HTML-Dateien | 76 | ||
3.2 Steueranweisungen | 78 | ||
3.3 Attribute | 80 | ||
3.4 Strukturierung und Gestaltung mit HTML | 81 | ||
3.4.1 Gruppierung von Inhalt | 82 | ||
3.5 Formulare zur Benutzerinteraktion | 83 | ||
3.5.1 HTML-Formular-Tags | 83 | ||
3.5.2 Der | 84 | ||
3.6 Ab in den DOM - aus Sicht von HTML | 85 | ||
3.7 Ein tolles Ereignis | 86 | ||
3.7.1 Die konkreten Eventhandler | 87 | ||
3.8 Zusammenfassung | 88 | ||
4 Style Sheets für AJAX- Programmierer | 90 | ||
4.1 CSS, XSL & more | 91 | ||
4.1.1 Von den Daten zur Darstellung | 91 | ||
4.1.2 XSL | 91 | ||
4.1.3 CSS | 92 | ||
4.2 Die Verwendung von Style Sheets in einer Webseite | 93 | ||
4.2.1 Interne Style Sheets | 93 | ||
4.2.2 Externe Style Sheets | 93 | ||
4.2.3 Inline-Definition | 94 | ||
4.2.4 Kaskadierende Wirkung von Stilinformationen | 94 | ||
4.3 Die konkrete Syntax von CSS-Deklarationen | 95 | ||
4.3.1 Selektoren | 96 | ||
4.4 Positionierung und Ausblenden von beliebigen Elementen über CSS | 100 | ||
4.5 Zusammenfassung | 101 | ||
5 JavaScript für AJAX | 102 | ||
5.1 Die Einbindung von JavaScript in eine Webseite | 102 | ||
5.1.1 Die direkte Notation | 103 | ||
5.1.2 Die Einbindung einer externen JavaScript-Datei | 106 | ||
5.1.3 Die Inline-Referenz | 107 | ||
5.2 Ist JavaScript bei einem Browser aktiviert? | 107 | ||
5.3 Elementare Grundstrukturen von JavaScript | 109 | ||
5.3.1 Variablen und Datentypen - Vorsicht vor loser Typisierung | 109 | ||
5.3.2 Arrays | 110 | ||
5.3.3 Anweisungen | 112 | ||
5.4 Funktionen, Prozeduren und Methoden | 113 | ||
5.4.1 Definition eigener Funktionen | 114 | ||
5.4.2 Rückgabewerte einer Funktion mit return | 115 | ||
5.4.3 Aufruf von Funktionen und Methoden | 116 | ||
5.5 JavaScript und Objekte | 117 | ||
5.5.1 Was ist ein Objekt? | 117 | ||
5.5.2 Methoden und Eigenschaften eines Objekts verwenden | 118 | ||
5.5.3 Objektbasierend versus objektorientiert | 119 | ||
5.6 Erzeugen von Objekten | 120 | ||
5.6.1 Explizite Objekterzeugung mit einem Konstruktor | 120 | ||
5.7 Ausnahmebehandlung in JavaScript | 121 | ||
5.7.1 Was sind Ausnahmen? | 121 | ||
5.7.2 Auffangen von Ausnahmen | 125 | ||
5.7.3 Eine universelle Funktion zum Erzeugen eines XMHttpRequest-Objekts | 127 | ||
5.7.4 Behandlung von mehreren Ausnahmen | 131 | ||
5.8 Erstellen eigener Objekte und Prototyping in JavaScript | 132 | ||
5.8.1 Erstellen einer Konstruktormethode | 132 | ||
5.8.2 Prototyping - Erweiterung eines bestehenden Objekts bzw. einer Objektdeklaration | 134 | ||
5.9 DOM aus Sicht von JavaScript und native JavaScript-Objekte | 137 | ||
5.9.1 Verfügbare Klassen und DOM-Objekte | 139 | ||
5.9.2 Objektfelder | 140 | ||
5.9.3 DOM-Objekte aus JavaScript nutzen | 141 | ||
5.9.4 Wichtige JavaScript-Techniken | 142 | ||
5.10 JavaScript-Aufruf über JavaScript selbst | 145 | ||
5.10.1 Der explizit Aufruf eines Eventhandlers aus JavaScript | 145 | ||
5.10.2 Globale Ereignisbehandlung mit dem event-Objekt | 150 | ||
5.10.3 Fazit der Ereignisbehandlung | 163 | ||
5.11 Zusammenfassung | 163 | ||
6 HTTP und die Interna des XMLHttpRequest-Objekts | 164 | ||
6.1 Datenübertragung per HTTP | 164 | ||
6.1.1 HTTP-Interna | 168 | ||
6.1.2 Meldungen des Webservers | 170 | ||
6.2 Details zum XMLHttpRequest-Objekt | 172 | ||
6.2.1 Methoden eines XMLHttpRequest-Objekts | 174 | ||
6.2.2 Eigenschaften | 176 | ||
6.3 Exemplarischer Ablauf einer AJAX-Anfrage | 177 | ||
6.4 Ein praktisches AJAX-Beispiel mit Auswertung der HTTP-Header | 177 | ||
6.5 Zusammenfassung | 179 | ||
7 DHTML für AJAX-Entwickler | 180 | ||
7.1 Grundlagen von DHTML | 180 | ||
7.2 Der Zugriff auf Elemente einer Webseite | 181 | ||
7.2.1 Zugriff über Objektfelder | 181 | ||
7.2.2 Zugriff über Namen | 182 | ||
7.2.3 Zugriff über eine ID | 183 | ||
7.2.4 Zugriff über den Typ des HTML-Elements | 184 | ||
7.3 Manipulation von Bildobjekten | 185 | ||
7.3.1 Image und images | 185 | ||
7.3.2 Anzeige des Ladevorgangs | 187 | ||
7.4 Verändern von Stilinformationen | 191 | ||
7.4.1 Anzeige des Ladevorgangs mit Zugriff über eine ID und die Eigenschaft className | 191 | ||
7.5 Stilveränderungen über das style-Objekt | 193 | ||
7.5.1 Temporär Informationen unsichtbar machen | 193 | ||
7.6 Das Einfügen von Informationen in eine Webseite | 195 | ||
7.6.1 Zugriff auf Inhalte von Elementen in der Webseite | 195 | ||
7.6.2 Nutzen des node-Objekts zum Datenaustausch | 195 | ||
7.6.3 responseText und responseXML | 196 | ||
7.7 Zusammenfassung | 196 | ||
8 XML für AJAX-Entwickler | 198 | ||
8.1 XML-Grundlagen | 198 | ||
8.2 XML-Elemente | 200 | ||
8.2.1 Leere Elemente | 201 | ||
8.2.2 Elementbezeichner | 201 | ||
8.3 Die Syntax eines XML-Dokuments | 202 | ||
8.3.1 Regel 1: Unicode | 202 | ||
8.3.2 Regel 2: XML ist casesensitive | 202 | ||
8.3.3 Regel 3: Ein Prolog ist zwingend | 202 | ||
8.3.4 Regel 4: Eindeutigkeit des Wurzelelements | 203 | ||
8.3.5 Regel 5: Saubere Verschachtelung aller Elemente | 203 | ||
8.3.6 Regel 6: Jedes Element muss einen Ende-Tag haben oder als leeres Element notiert werden | 203 | ||
8.3.7 Regel 7: Attributen muss immer ein Wert zugewiesen werden | 203 | ||
8.4 Weitere Komponenten von XML | 204 | ||
8.4.1 Kommentare | 204 | ||
8.4.2 Prozessinstruktionen | 205 | ||
8.4.3 Referenzen | 206 | ||
8.4.4 Unkontrollierte Bereiche - CDATA-Abschnitte | 207 | ||
8.4.5 Namensräume | 208 | ||
8.5 Gültige Dokumente | 208 | ||
8.6 XPath | 209 | ||
8.6.1 Die Lokalisierung auf Achsen | 210 | ||
8.6.2 Knoten selektieren | 211 | ||
8.6.3 Alternative XPath-Syntax | 214 | ||
8.6.4 XPath-Prädikate: Operatoren, Relationen und Funktionen | 217 | ||
8.6.5 Wichtige Funktionen | 217 | ||
8.7 XML-Daten senden und der Nutzen des node-Objekts | 219 | ||
8.7.1 Die Verwendung von node und responseXML | 220 | ||
8.7.2 Zerlegen einer XML-Antwort | 224 | ||
8.7.3 Daten per node in der Webseite bereitstellen | 230 | ||
8.8 XML-Verarbeitung mit Java | 233 | ||
8.8.1 Standard-APIs zur XML-Verarbeitung | 233 | ||
8.8.2 XML-Verarbeitung mit SAX | 233 | ||
8.8.3 XML-Verarbeitung und DOM | 234 | ||
8.9 Zusammenfassung | 235 | ||
9 Serverseitige Java-Programmierung für AJAX | 236 | ||
9.1 Grundlagen serverseitiger Programmierung | 237 | ||
9.1.1 Unterschiede und Gemeinsamkeiten zwischen serverseitiger und clientseitiger Programmierung | 237 | ||
9.1.2 Voraussetzungen zur Ausführung von serverseitigen Skripten und Programmen | 239 | ||
9.1.3 Serverseitige Skripts und Programme zum Laufen bringen | 239 | ||
9.2 Java auf einem Webserver | 240 | ||
9.2.1 Was sind JSP und Servlets? | 240 | ||
9.3 JavaServer Pages | 241 | ||
9.3.1 Wichtige JSP-Strukturen | 242 | ||
9.3.2 AJAX-Praxisbeispiel - Nachfordern eines Bilds | 252 | ||
9.4 Bei AJAX auf Webdatenbanken zugreifen | 256 | ||
9.4.1 Grundsätzlicher Ablauf einer Datenbankabfrage | 256 | ||
9.4.2 Kurzüberblick SQL | 256 | ||
9.4.3 Datenbankzugriff mit Java | 258 | ||
9.4.4 Schematischer Ablauf einer Datenbankverbindung in Java mit JDBC | 260 | ||
9.4.5 Praktische AJAX-Beispiele mit Datenbankanbindung | 263 | ||
9.4.6 Aufbereiten einer XML-Antwort mit Java | 277 | ||
9.5 Java-Servlets | 287 | ||
9.5.1 Was sind Servlets? | 288 | ||
9.5.2 Die technischen Hintergründe | 288 | ||
9.5.3 Eintragen von Metainformationen und das Deployen von Servlets | 290 | ||
9.5.4 Beispiel 3 - Verfolgen einer Sitzung und Wiederherstellen eines vorherigen Zustands | 293 | ||
9.5.5 Beispiel - Login mit AJAX verifizieren | 307 | ||
9.6 Zusammenfassung | 313 | ||
10 AJAX-Alternativen | 314 | ||
10.1 Verfolgen einer Sitzung mit Cookies | 314 | ||
10.2 Die Erstellung von Cookies | 315 | ||
10.2.1 Mit JavaScript Cookies anlegen und auslesen | 315 | ||
10.3 Nachladen von Daten mit Frames | 319 | ||
10.4 Vorratshaltung mit DHTML | 320 | ||
10.5 Dateninseln | 321 | ||
10.6 Zusammenfassung | 327 | ||
11 AJAX-Frameworks | 328 | ||
11.1 Für wen lohnen sich Frameworks? | 329 | ||
11.2 Verschiedene Frameworks | 330 | ||
11.2.1 Atlas | 330 | ||
11.2.2 Sajax | 331 | ||
11.2.3 Prototype JavaScript Framework | 331 | ||
11.2.4 Rico AJAX Framework minimal | 331 | ||
11.2.5 AJAX Toolkit Framework | 331 | ||
11.2.6 Sarissa | 332 | ||
11.2.7 Weitere Frameworks | 332 | ||
11.3 Zusammenfassung | 332 | ||
A Anhang | 334 | ||
A.1 Quellen | 334 | ||
A.2 Die JavaScript-Schlüsselwörter | 336 | ||
A.3 Glossar | 339 | ||
Stichwortverzeichnis | 342 | ||
Symbole | 342 | ||
A | 342 | ||
B | 342 | ||
C | 343 | ||
D | 343 | ||
E | 344 | ||
F | 344 | ||
G | 345 | ||
H | 345 | ||
I | 345 | ||
J | 346 | ||
K | 346 | ||
L | 347 | ||
M | 347 | ||
N | 347 | ||
O | 347 | ||
P | 348 | ||
R | 348 | ||
S | 349 | ||
T | 350 | ||
U | 350 | ||
V | 350 | ||
W | 351 | ||
X | 351 | ||
Y | 351 | ||
Z | 352 | ||
Mehr eBooks bei www.ciando.com | 0 |