Post on 23-Aug-2019
transcript
Ein Buch zum Mitmachen und Verstehen
Bryan Basham, Kathy Sierra & Bert Bates Deutsche Übersetzung von Jörg Beyer & Lars SchultenO’Reilly
Deckt die aktuelle Version der
SCWCD-Prüfung für J2EE 1.5 ab
Mit c:out verbreiten Sie Ihre Botschaft in
der Welt
Erfahren Sie, wie Egon mit dynamischen Attributen seine Attraktivität steigern konnte
Vermeiden Sie tödliche
Stolperfallen in der 1.5-Prüfung
von Kopf bis FußSicher durch die Prüfung zum Sun Certified Web Component Developer
Servlets & JSP Deutsche
Ausgabe
der 2. englischen AuflageTM
Mehr als 200 realistische Prüfungs fragen zum Selbsttest
Spielen Sie mit Taglibs
herum
Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen. D.h., wenn Sie beispielsweise ein Kernkraftwerk unter Verwendung dieses Buchs betreiben möchten, tun Sie dies auf eigene Gefahr. Sollten Sie allerdings eine ungeheuer erfolgreiche Dotcom-Firma auf Basis dieses Buchs führen, dann erinnern Sie sich doch bitte an die Autoren. Sie nehmen Aktienoptionen, Bier und/oder dunkle Schokolade entgegen.
Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung,Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Kommentare und Fragen können Sie gerne an uns richten:
O’Reilly VerlagBalthasarstr. 8150670 KölnTel.: 0221/9731600Fax: 0221/9731608E-Mail: kommentar@oreilly.de
Copyright der deutschen Ausgabe:© 2009 by O’Reilly Verlag GmbH & Co. KG1. Auflage 2009
Die Originalausgabe erschien 2008 unter dem TitelHead First Servlets & JSP, Second Edition bei O’Reilly Media, Inc.
Java™ und alle auf Java basierenden Warenzeichen und Logos sind in den USA und in anderen Ländern Warenzeichen oder registrierte Warenzeichen von Sun Microsystems, Inc. O’Reilly Media, Inc. und der O’Reilly Verlag GmbH & Co. KG sind von Sun Microsystems unabhängig.
Bibliografische Information Der Deutschen BibliothekDie Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.
Deutsche Übersetzung und Bearbeitung: Jörg Beyer, Weimar (Lahn) & Lars Schulten, KölnLektorat: Christine Haite, KölnKorrektorat: Sibylle Feldmann, DüsseldorfSatz: Conrad Neumann, MünchenUmschlaggestaltung: Edie Freedman, Louise Barr & Steve Fehler, BostonProduktion: Andrea Miß, KölnBelichtung, Druck und buchbinderische Verarbeitung: Media-Print, Paderborn
ISBN 978-3-89721-873-4
Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt.
Wer auch immer entschieden hat, dass das implizite EL-Objekt für einen context-Parameter den Namen initParam tragen soll … ihm sei dieses Buch gewidmet.
iv
Die Verantwortlichen für die Von Kopf bis Fuß-Reihe (und dieses Buch)
Kathy Sierra
Kathys Interesse für Lerntheo-rien und das Gehirn reicht bis in ihre Zeit als Game-Designer (sie schrieb Spiele für Virgin, MGM und Amblin’) und AI-Entwickler zurück. Große Teile des Von Kopf bis Fuß-Formats hat sie während ihrer Lehrtätigkeit zu New Media Interactivity im UCLA Extension’s Entertainment Studies-Programm entwickelt. In jüngerer Zeit arbei-tete sie als Master-Trainer bei Sun Microsystems, wo sie Suns Java-Instruktoren beibringt, wie man die neuesten Java-Technologien vermit-telt, und einige von Suns Zertifizie-rungsprüfungen entwickelt, unter anderem das SCWCD. Gemeinsam mit Bert Bates hat sie die Von Kopf bis Fuß-Konzepte eingesetzt, um Tausende von Entwicklern zu unterrichten. Sie gründete eine der größten Java-Community-Websites im ganzen Internet, javaranch.com, die 2003 und 2004 den Producti-vity Award des Software Develop-ment-Magazins erhielt. Sie mag Laufen, Skifahren, Pferde, Skate-boards und durchgeknallte Wissen-schaft.
Bert ist ein erfahrener Software-entwickler und Architekt. Aber der ein Jahrzehnt umfassende Abste-cher in die künstliche Intelligenz ließ sein Interesse an Lerntheorie und technologiebasiertem Lernen wachsen. Das erste Jahrzehnt seiner Softwarekarriere verbrachte er damit, durch die Welt zu reisen und Rundfunkkunden wie Radio New Zealand, Weather Channel und Arts and Entertainment Network (A&E) zu unterstützen. Aktuell ist er Mitglied des Entwicklungsteams für mehrere Zertifizierungsprüfungen von Sun, unter anderem für das neue SCWCD.
Bert ist seit Langem ein hoffnungslos verlorener go-Spieler und werkelt schon viel zu lang an einem go-Pro-gramm herum. Vielleicht ist Java jetzt so ausdrucksfähig, dass er es beenden kann. Er spielt ordentlich Gitarre und versucht sich zurzeit am Banjo. Sein neuestes Abenteuer ist der Erwerb eines Islandponys, das seine Trainerfähigkeiten vor eine neue Herausforderung stellen sollte ...
Bert Bates
Sie erreichen uns unter:
terrapin@wickedlysmart.com
kathy@wickedlysmart.com
bryan@wickedlysmart.com
Bryan Basham
Die Autoren
Bryan hat mehr als 20 Jahre Erfahrung in der Softwareent-wicklung und hat unter anderem bei der NASA unter Einsatz von KI-Techniken fortgeschrittene Automatisierungsoftware entwi-ckelt. Außerdem hat er für ein Beratungsunternehmen gearbeitet, wo er maßgeschneiderte OO-Businessanwendungen geschrieben hat. Zurzeit ist Bryan Kursent-wickler für Sun. Dabei befasst er sich hauptsächlich mit Java und OO-Entwurfsprinzipien. Er hat an vielen von Suns Java-Kursen mitgewirkt, unter anderem JDBC, J2EE, Servlets und JSP sowie OO Software Development. Außer-dem war er Chefdesigner bei der ursprünglichen und der neuen Version der SCWCD-Prüfung.
Bryan ist praktizierender Zen- Buddhist, Ultimate Frisbee-Spieler, Hi-Fi-Freak und fährt Telemark-Ski.
v
Über die Übersetzer dieses BuchsLars Schulten ist freier Übersetzer für IT-Fachlitera-tur und hat für den O’Reilly Verlag schon unzählige Bü-cher zu ungefähr allem übersetzt, was man mit Compu-tern so anstellen kann. Eigentlich hat er mal Philosophie studiert, aber mit Computern schlägt er sich schon seit den Zeiten herum, da Windows laufen lernte. Die Liste der Dinge, mit denen er sich beschäftigt, ist ungefähr so lang, launenhaft und heterogen wie die seiner Lieblings-essen und Lieblingsbücher.
Java ist ihm Ende der 90er Jahre das erste Mal über den Weg gelaufen. Er hat seitdem schon eine Reihe von Bü-chern zu Java übersetzt, darunter Java – kurz & gut, Java von Kopf bis Fuß und das Java-Kochbuch.
Allein tritt er eigentlich nur auf, wenn er mal wieder ver-sucht, den körperlichen Verfall mit sportlicher Betätigung aufzuhalten. Sonst ist er immer in Begleitung eines Buchs, seines Laptops oder Frederics unterwegs. Frederic muss jetzt zur Schule gehen und Lars hofft, dass er bald so weit ist, dass er ihm den mühseligeren Teil des Übersetzerge-schäfts abnehmen kann.
Jörg Beyer lebt seit Beginn seines Studiums der Psy-chologie bei Marburg. Aus seiner Zeit als Schreiner hat er die Überzeugung mitgenommen, dass gutes Werkzeug ein Wert an sich und gute Arbeit ohne gutes Werkzeug undenkbar ist. Deshalb liebt er seinen Mac so sehr.
Im Lauf der Jahre hat er sich allerhand angeeignet, um sich sein Arbeitsleben leichter zu machen und seinem Lieblingswerkzeug neue Kunststückchen beizubringen: Perl, AppleScript, Datenbankentwicklung und SQL, XML, R, … eine lange, wenn auch nicht endlose Liste, die von seinem kleinen inneren Zensor gerne als »dieser Zettel mit den halben Sachen« kommentiert wird, wenn er mal schlechte Laune hat.
Wenn Jörg sich nicht gerade mit klinischer Forschung und Statistik beschäftigt oder sich mit dem Übersetzen von IT-Literatur für O’Reilly befasst, hört er gerne und viel elektronische Musik oder unterhält sich mit Freunden über das, was die Welt des Menschen wohl im Innersten zusammenhält. Wer in seinem Humor und in seinen Ansichten Anklänge an Douglas Adams, John Irving und Astrid Lindgren entdeckt, liegt richtig.
Die Übersetzer
Weitere O’Reilly-Bücher zum gleichen Themenkreis
Ant: The Definitive GuideBetter, Faster, Lighter Java™Enterprise JavaBeans™ 3.0Hibernate: A Developer’s NotebookJava™ 1.5 Tiger: A Developer’s NotebookJava™ KochbuchJava™ in a NutshellJava™ Network ProgrammingJava™ Servlet & JSP CookbookJava™ SwingJavaServer™ FacesJavaServer Pages™Programming Jakarta StrutsTomcat: The Definitive Guide
Weitere Bücher in O’Reillys Von Kopf bis Fuß-Reihe
Java™ von Kopf bis FußObjektorientierte Analyse and Design (OOA&D) von Kopf bis FußAjax von Kopf bis FußHTML mit CSS und XHTML von Kopf bis FußEntwurfsmuster von Kopf bis FußSQL von Kopf bis FußSoftwareentwicklung von Kopf bis FußC# von Kopf bis FußJavaScript von Kopf bis FußHead First EJB™Head First PMPHead First ProgrammingHead First AjaxHead First PhysicsHead First StatisticsHead First Ruby on RailsHead First PHP & MySQL
Inhaltsverzeichnis
vii
Inhalt (in der Übersicht)
Inhalt (jetzt ausführlich)Einführung
Für wen ist dieses Buch? xviii
Wir wissen, was Ihr Gehirn denkt xix
Metakognition xxi
Machen Sie sich Ihr Hirn untertan xxiii
Was Sie für dieses Buch brauchen xxiv
Die Zertifizierungsprüfung bestehen xxvi
Die Fachgutachter xxviii
Danksagungen xxix
Einführung xvii
1 Warum Servlets & JSPs: Eine Einführung 1
2 Architektur von Webanwendungen: Ein Überblick 37
3 Mini-MVC-Kurs: MVC-Praktikum 67
4 Leben als Servlet: Anfrage UND Antwort 93
5 Leben als Webanwendung: Attribute und Listener 147
6 Kommunikation mit Zustand: Session-Management 223
7 Wie es ist, eine JSP zu sein: JSP im Einsatz 281
8 Skriptfreie Seiten: Skriptfreie JSP 343
9 Benutzerdefinierte Tags sind mächtig: JSTL im Einsatz 439
10 Wenn selbst die JSTL nicht ausreicht: Benutzerdefinierte Tags entwickeln 499
11 Ihre Webanwendung verteilen: Deployment von Webanwendungen 601
12 Geschützt und sicher: Sicherheit von Webanwendungen 649
13 Die Macht der Filter: Wrapper und Filter 701
14 Enterprise-Entwurfsmuster: Muster und Struts 737
A Appendix A: Abschlussprüfung 791
I Index 865
Ihr Gehirn und Servlets. Sie versuchen, etwas zu lernen, und Ihr Hirn gibt
sein Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten
lieber ordentlich Platz für wichtigere Dinge lassen, z.B. für das Wissen darüber, welche
Tiere einem gefährlich werden könnten oder dass es eine ganz schlechte Idee ist, nackt
Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen,
dass Ihr Leben davon abhängt, etwas über Servlets zu wissen?
E
Inhaltsverzeichnis
viii
Warum Servlets & JSPs?1
Prüfungsanforderungen 2
Was Webserver und Clients machen und wie sie sich unterhalten 4
HTML-Schnellkurs 7
Was ist das HTTP-Protokoll? 10
Anatomie von GET- und POST-Anfragen und HTTP-Antworten 16
Webseiten über URLs auffinden 20
Webserver, statische Webseiten und CGI 24
Servlets entmystifiziert: Ein Servlet schreiben, verteilen und ausführen 30
JSPs: Als HTML mit Java bekannt gemacht wurde 34
Webanwendungen sind toll. Wie viele GUI-Programme kennen Sie,
die weltweit von Millionen von Anwendern benutzt werden? Als Entwickler von
Webanwendungen können Sie sich aus dem Schwitzkasten der Deployment-Probleme
befreien, mit denen alle Desktop-Programme zu tun haben, und Ihr Programm jedem
verfügbar machen, der einen Browser hat. Aber Sie brauchen Servlets und JSPs. Weil
diese ganz normalen statischen HTML-Seiten so, na ja, etwa von 1999 sind. Erfahren Sie,
wie man von Websites zu Webanwendungen kommt.
Architektur von Webanwendungen2Prüfungsanforderungen 38
Was ein Container ist und was er Ihnen bietet 39
Wie der Code aussieht (und was ein Servlet macht) 44
Servlets benennen und über den DD URL zuordnen 46
Geschichte: Björns Dating-Site (und MVC-Einführung) 50
Das Model-View-Controller-Muster (MVC) 54
Ein »laufender« Deployment Descriptor (DD) 64
Wie sich J2EE in all das fügt 65
Servlets brauchen Hilfe. Beim Eintreffen einer Anfrage muss jemand das
Servlet instantiieren oder zumindest einen neuen Thread anlegen, um die Anfrage zu
bearbeiten. Jemand muss die doPost()- oder doGet()-Methode des Servlets aufrufen.
Jemand muss Anfrage und Antwort zum Servlet durchreichen. Jemand muss sich um den
Lebenszyklus des Servlets kümmern und es versorgen. In diesem Kapitel werden wir uns
den Container ansehen und einen ersten Blick auf das MVC-Muster werfen.
HTTP-Anfrage
HTTP-Antwort
Client
Web- browser
Server
Schlüsselelemente des Anfrage-Streams:$ HTTP-Methode (die Aktion, die ausgeführt werden soll)$ die Seite, die aufgerufen werden
soll (eine URL)$ Formularparameter (z.B. Argumente für einen Methodenaufruf)
Schlüsselelemente des Antwort-
Streams:
$ ein Statuscode (ob der Aufruf
erfolgreich war)
$ Art des Contents (Text, Bilddaten,
HTML usw.)
$ der Content selbst (das
eigentliche HTML, Bilder usw.)
Controller
Servlet
View
JSP
ModelDB
class Foo { void bar() { doBar(); }}
Ganz normaler Java-Code.
Inhaltsverzeichnis
ix
Mini-MVC-Kurs3
Prüfungsanforderungen 68
Erstellen wir eine MVC-Anwendung – der erste Entwurf 69
Die Entwicklungs- und Deployment-Umgebungen aufbauen 72
Das HTML für die anfängliche Formularseite erstellen und testen 75
Den Deployment Descriptor (DD) erstellen 77
Das Controller-Servlet erstellen, kompilieren, verteilen und testen 80
Die Model-Komponenten erstellen, kompilieren und testen 82
Den Controller das Model aufrufen lassen 83
Die View-Komponente (eine JSP) erstellen und verteilen 87
Das Controller-Servlet die JSP aufrufen lassen 88
Legen Sie eine MVC-Webanwendung an und nehmen Sie sie in Betrieb. Es wird Zeit, die Ärmel hochzukrempeln und ein HTML-Formular, ein Control-
ler-Servlet, ein Modell (eine ganz normale Java-Klasse), einen XML-Deployment Descrip-
tor und als View eine JSP zu schreiben. Zeit zum Erstellen, Bereitstellen und Testen. Aber
zunächst müssen Sie Ihre Entwicklungsumgebung einrichten. Und dann müssen Sie Ihre
Deployment-Umgebung so gestalten, wie es die Servlet- und JSP-Spezifikationen sowie
Tomcat verlangen. Es stimmt schon, es ist eine sehr kleine Anwendung, die wir hier erstel-
len. Es gibt aber so gut wie KEINE Anwendung, die zu klein für das MVC ist.
Leben als Servlet4Prüfungsanforderungen 94
Das Leben eines Servlets im Container 95
Servlet-Initialisierung und Threads 101
Die WAHRE Aufgabe eines Servlets: GET- und POST-Anfragen 105
Die Geschichte der Anfrage, die nicht idempotent war 112
Was festlegt, ob Sie eine GET- oder eine POST-Anfrage erhalten 117
Parameter senden und verwenden 119
Das war die Anfrage ... und wie sieht die Antwort aus? 126
Sie können Antwort-Header setzen und hinzufügen 133
Servlet-Umleitung vs. Anfrageweiterleitung 136
Zusammenfassung: HttpServletResponse 140
Servlets brauchen Unterstützung. Der Job eines Servlets ist es, die Anfra-
ge eines Clients entgegenzunehmen und eine Antwort zurückzugeben. Die Anfrage kann
etwas Einfaches sein: »Zeig mir die Startseite!«, oder etwas Komplexes: »Mach mir die
Abrechnung für meinen Einkaufskorb fertig!«. Die Anfrage transportiert wichtige Daten,
und der Code Ihres Servlets muss wissen, wo er sie suchen und was er damit machen
soll. Und Ihr Servlet-Code muss wissen, wie man eine Antwort versendet. Oder nicht ...
tomcat
Dieser Verzeichnisname entspricht gleichzeitig dem Kontextwurzelver-zeichnis (context root), das von Tomcat benutzt wird, um eine URL aufzulösen. Wir werden dieses Konzept in allen Details im Deployment-Kapitel untersuchen.
Diese Paketstruktur entspricht exakt der, die wir für die Entwicklungsumgebung benutzt haben. Falls Sie Ihre Klassen nicht in einem JAR bereitstellen (worüber wir später im Buch sprechen werden), müSSEn Sie das Paketver-zeichnis unmittelbar unterhalb von WEB-InF/classes anlegen.
Der Tomcat-spezi-fische Teil
Der Teil aus der Servlet-Spezifika-tion
Die An-wendung
Die web.xml-Datei mUSS in WEB-InF liegen.web.xml
<webapp> . .</webapp>
webapps
Bier-v1
WEB-INF
web
0010 00011100 1001
BierExperte.class
0010 00011100 1001
BierAuswahl.class
<html><body> ...</body></html>
form.html result.jsp
libclasses
model
com
example
Tomcat
<% ...%>
Aber Idempotenz ist doch nichts, dessen man sich
schämen muss …
Client
Servlet
POST ... ...
DB
Servlet benutzt die POST-Daten, um die Datenbank zu aktualisieren.
HTTP/1.1 200 OK......................<html><head> ...</head><body><img src=...></body></html>
Servlet schickt eine Antwort mit einer generierten HTML-Seite zurück.
NiChT idempotent
Inhaltsverzeichnis
x
Leben als Webanwendung5Prüfungsanforderungen 148
Initialisierungsparameter und ServletConfig greifen ein 149
Wie eine JSP Servlet-Initialisierungsparameter erhält 155
Kontextinitialisierungsparameter retten uns 157
ServletConfig und ServletContext im Vergleich 159
Sie möchte einen ServletContextListener 166
Tutorial: Ein einfacher ServletContextListener 168
Listener kompilieren, verteilen und testen 176
Die ganze Geschichte: ServletContextListener im Überblick 178
Acht Listener: Sie sind nicht nur für Kontext-Events gedacht ... 180
Was genau ist ein Attribut? 185
Die Attribute-API und die dunkle Seite von Attributen 189
Der Kontextgültigkeitsbereich ist nicht Thread-sicher! 192
Das Problem in Zeitlupe ... 193
Probieren Sie es mit Synchronisierung 195
Sind Sitzungsattribute Thread-sicher? 198
Das SingleThreadModel 201
Nur Anfrageattribute und lokale Variablen sind Thread-sicher! 204
Anfrageattribute und Anfrageweiterleitung 205
Kein Servlet ist unabhängig. In heutigen, modernen Webanwendungen
arbeiten viele Komponenten zusammen, um ein gemeinsames Ziel zu erreichen. Man
hat Models, Controller und Views. Man hat Parameter und Attribute. Und Hilfsklassen.
Aber wie verbinden Sie diese Teile zu einem Ganzen? Wie bringen Sie Ihre Komponenten
dazu, Informationen auszutauschen? Wie verbergen Sie Informationen? Wie machen Sie
Informationen Thread-sicher? Von Ihren Antworten könnte Ihr Leben abhängen.
Anfrageattribute
"BierEmpfehlung""Lüneburger Löschschaum"Servlet
<html><body><jsp:setProperty name="foo" property="bar"></body></html>
JSP-View
set get
Controller
<html><body><jsp:setProperty name="foo" property="bar"></body></html>
JSP-View
Servlet
Servlet A
Sitzungsattribute
set get
Einkaufswage
n
Servlet
Servlet B
get
set
Nur für diejenigen zugänglich, die Zugriff auf eine bestimmte HttpSession haben.
Nur für diejenigen zugänglich, die Zugriff auf ein bestimmtes ServletRequest-Objekt haben.
Kontextattribute
DB
Datenbank-verbindung
"Geichzeitige Benutzer"
42
"Admin- E-Mail"
foo@wickedlysmart.com
ContextListener
set
Servlet
get
set
<html><body><jsp:setProperty name="foo" property="bar"></body></html>
JSP
Servlet
Servlet
set
get
get
get
Innerhalb der Anwendung haben alle Zugriff.
Inhaltsverzeichnis
xi
Kommunikation mit Gedächtnis6 Webserver besitzen kein Langzeitgedächtnis. Sobald sie Ihnen eine Antwort ge-
schickt haben, vergessen sie, wer Sie sind. Wenn Sie das nächste Mal eine Anfrage schicken, werden
Sie schon nicht mehr wiedererkannt. Mit anderen Worten, sie erinnern sich nicht daran, was Sie in der
Vergangenheit angefordert haben, und sie erinnern sich nicht daran, was sie Ihnen als Antwort zurück-
geschickt haben. Manchmal muss aber über mehrmalige Anfragen hinweg der Kommunikationszu-
stand zwischen Client und Server festgehalten werden.
Wie es ist, eine JSP zu sein7 Eine JSP wird zu einem Servlet. Ein Servlet, das Sie nicht erstellen. Der Container sieht
sich Ihre JSP an, übersetzt sie in Java-Quellcode und kompiliert diesen zu einer vollständigen Java-
Servlet-Klasse. Aber Sie müssen wissen, was passiert, wenn der Code, den Sie in der JSP geschrieben
haben, in Java-Code umgewandelt wird. Sie k�nnen in Ihre JSP Java-Code schreiben, aber sollten Sie
das auch? Und was schreiben Sie, wenn Sie keinen Java-Code verwenden? Wie erfolgt die Übersetzung
in Java-Code? In diesem Kapitel werden wir uns sechs verschiedene Arten von JSP-Elementen ansehen
– die alle einen eigenen Zweck und, auch das, eine eigene Syntax haben. Sie lernen wie, warum und was
Sie in Ihre JSP schreiben. Und Sie erfahren, was Sie in Ihre JSP nicht schreiben sollten.
Prüfungsanforderungen 224
Es sollte eine Unterhaltung sein
(darüber, wie Sitzungen funktionieren) 226
Sitzungs-IDs, Cookies und weitere Sitzungsgrundlagen 231
URL-Rewriting: etwas, auf das man zurückgreifen kann 237
Wenn Sitzungen veralten; faule Sitzungen loswerden 241
Kann ich Cookies auch für andere Zwecke einsetzen? 250
Wichtige Meilensteine einer HttpSession 254
Vergessen Sie HttpSessionBindingListener nicht 256
Sitzungsmigration 257
Listener-Beispiele 261
Prüfungsanforderungen 282
Mit »out« und einer Page-Direktive eine einfache JSP erstellen 283
JSP-Ausdrücke, Variablen und Deklarationen 288
Das zu einer JSP generierte Servlet 296
Die Variable out ist nicht das einzige implizite Objekt ... 298
Der Lebenszyklus und die Initialisierung einer JSP 306
Etwas mehr zu den drei Direktiven 314
Scriptlets sollen schädlich sein? – Hier ist EL 317
Moment ... etwas fehlt noch: Aktionen 323
<html><body><jsp:setProperty name=”foo” property=”bar”></body></html>
DieJSP.jsp
package head-first;
import javax.servlet.HttpServlet.*;
DieJSP_jsp.java
Servlet-Objekt
0010 00011100 10010001 00110101 0110
DieJSP_jsp.class
schreiben übersetzen
kompil
ieren
laden und initiali-sieren als
DieJSP_jsp-Servlet
Okay, hier hast du meine Anfrage
inklusive Cookie.
Cookies
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=0AAB6C8DE415
Content-Type: text/html
Content-Length: 397
Date: Wed, 18 Jun 2008 13:25:40 GMT
Server: Apache-Coyote/1.1
Connection: close
<html>...
</html>
POST /Waehlen/BierGeschmackWahl2.do HTTP/1.1
Host: www.wickedlysmart.comUser-Agent: Mozilla/5.0 Cookie: JSESSIONID=0AAB6C8DE415Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/
gif ;q=0.2,*/*;q=0.1Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflate
»Set-Cookie« ist einfach bloß ein weiterer Header, der mit der Antwort verschickt wird.
»Cookie« wird als zusätzlicher Header mit der Anfrage verschickt.
Hier hast du ‘n Cookie, ist auch eine Session-ID für dich
drin …
HTTP-Response
HTTP-Request
Inhaltsverzeichnis
xii
Skriptfreie Seiten8
Prüfungsanforderungen 344
Wenn Attribute Beans sind 345
Standardaktionen: useBean, getProperty, setProperty 349
Kann man polymorphe Bean-Referenzen machen? 354
Das param-Attribut schafft Abhilfe 360
Properties konvertieren 363
Expression Language (EL) rettet uns! 368
Mit dem Punktoperator (.) auf Properties und Map-Werte zugreifen 370
[ ] bietet mehr Möglichkeiten (Listen, Arrays ...) 372
Weitere Einzelheiten zum Punktoperator und [ ] 376
Die impliziten EL-Objekte 385
EL-Funktion und der Umgang mit »null« 392
Wiederverwendbare Teile – zwei Arten von »Include« 402
Die <jsp:forward />-Standardaktion 416
Sie kennt JSTL-Tags noch nicht (eine Vorschau) 417
Zusammenfassung von Standardaktionen und Includes 417
Befreien Sie sich vom Scripting. Können Ihre Webdesigner tatsächlich
Java? Erwarten sie von den für den Server verantwortlichen Java-Programmierern,
dass sie, hmm, sagen wir, Grafiker sind? Und selbst wenn Sie allein das gesamte
Team bilden ... wollen Sie in Ihren JSPs wirklich einen Haufen kleiner Fetzen Java-
Code haben? Schon mal etwas von »Wartungsalbtraum« gehört? Skriptfreie Seiten
zu schreiben, ist nicht bloß m�glich. Mit der neuen JSP-2.0-Spezifikation ist es, dank
der neuen Expression Language (EL), auch viel einfacher und flexibler geworden.
EL ist an JavaScript und XPath angelehnt und sorgt dafür, dass Webdesigner sich
gleich zu Hause fühlen – und auch Sie werden EL mögen (wenn Sie sich einmal daran
gewöhnt haben). Aber es gibt einige Fallen ... EL sieht aus wie Java, ist es aber nicht.
Manchmal verhält sich EL anders als die gleiche Syntax in Java. Geben Sie also acht!
Erwartet nicht, dass ICH eure
überflüssigen Start- und End-Tags entferne.
Kontakt.jsp
<html><body>
<%@ include file=”Header.jsp”%> <br>
<em>Wir können helfen.</em> <br><br> Sie erreichen uns unter: ${initParam.hauptEmail}
<%@ include file=”Footer.html”%>
</body></html>
Wir wissen, wie man SOAP weniger nervend macht.
http://localhost:8080/tests/Kontakt.jsp
Wir können helfen.
Sie erreichen uns unter: likewecare@wickedlysmart.com
Homepage
<img src=”images/Web-Services.jpg” > <br><em><strong>Wir wissen, wie man SOAP weniger nervend macht.</strong></em> <br>
Die Kopfleiste (»Header.jsp«)
<a href=”index.html”>Homepage</a>
Die Fußleiste (»Footer.html«)
1
2
3
1
2
3
Beachten Sie, dass wir alle HTmL- und BODY-Tags aus der eingeschlossenen Datei entfernt haben.
Hinweis: Das Entfernen der Start- und End-Tags gilt für BEIDE Include-mechanismen
– <jsp:include> und die Include-Direktive.
Inhaltsverzeichnis
xiii
Benutzerdefinierte Tags sind mächtig9 Manchmal brauchen Sie mehr als EL und Standardaktionen. Was ist, wenn Sie die Daten in einem Array durchlaufen und zeilenweise in einer
HTML-Tabelle anzeigen wollen? Sie wissen, dass Sie das mit einer for-Schleife in einem
Scriptlet in zwei Sekunden schreiben könnten. Aber Sie versuchen ja, das Scripting
loszuwerden. Kein Problem. Wenn EL und Standardaktionen nicht ausreichen, können
Sie benutzerdefinierte Tags oder Custom-Tags verwenden. Sie sind in JSPs genauso
einfach zu verwenden wie Standardaktionen. Noch besser ist, dass schon ein ganzer
Haufen für Sie geschrieben und zur JSP Standard Tag Library (JSTL) gebündelt wurde.
In diesem Kapitel werden Sie lernen, wie man benutzerdefinierte Tags verwendet, im
nächsten werden wir unsere eigenen erstellen.
Prüfungsanforderungen 440
Schleifen ohne Scripting: <c:forEach> 446
Bedingter Ablauf mit <c:if> und <c:choose> 451
Die Tags <c:set> und <c:remove> einsetzen 455
<c:import> ist das dritte Verfahren zum Einschließen von Inhalten 460
Das Einzuschließende anpassen 462
Das Gleiche mit <c:param> machen 463
<c:url> erfüllt all Ihre Hyperlink-Bedürfnisse 465
Erstellen Sie Ihre eigenen Fehlerseiten 468
Das Tag <c:catch>. Wie try/catch ... so ungefähr 472
Was ist, wenn Sie ein Tag benötigen, dass die JSTL nicht bietet? 475
Achten Sie auf <rtexprvalue> 480
Was im Body eines Tags stehen kann 482
Der Tag-Handler, der TLD und die JSP 483
Der Taglib-<uri> ist bloß ein Name, kein Ort 484
Wenn eine JSP mehrere Tag-Libraries verwendet 487
<table>
<c:forEach var=”listElement” items=”${filme}” > <c:forEach var=”film” items=”${listElement}” > <tr> <td>${film}</td> </tr> </c:forEach>
</c:forEach>
</table>
Äußere Schleife.
Innere Schleife
Das ArrayList-Anfrageattribut.
Eins der String-Arrays, das dem »var«-Attribut der äußeren Schleife zugewiesen wurde..
http://localhost:8080/testJSP1/Tester.do
Matrix RevolutionsKill BillBen HurAmelieDie Rückkehr des KönigsCasablanca
Aus dem ersten String[]
Aus dem zweiten String[]
Inhaltsverzeichnis
xiv
Wenn selbst die JSTL nicht ausreicht ...10 Manchmal reichen die JSTL und Standardaktionen nicht aus. Wenn Sie etwas Angepasstes benötigen und nicht zum Scripting zurückwollen, können Sie
Ihre eigenen Tag-Handler schreiben. Dann können Ihre Seitendesigner Ihr Tag in ihren Sei-
ten verwenden, während die ganze harte Arbeit im Hintergrund in Ihrer Tag-Handler-Klasse
abgewickelt wird. Aber es gilt drei verschiedene Wege, eigene Tag-Handler aufzubauen ...
es gibt also, eine Menge zu lernen. Von den drei Wegen wurden zwei mit JSP 2.0 eingeführt,
um Ihnen das Leben zu erleichtern (einfache Tags und Tag-Dateien).
ihre Webanwendung verteilen11 Endlich ist Ihre Webanwendung bereit für das wahre Leben. Ihr
Seiten sind ausgefeilt, Ihr Code getestet und abgestimmt und der Abgabetermin vor zwei Wo-
chen verstrichen. Aber wo kommt der ganze Kram hin? So viele Verzeichnisse, so viele Re-
geln. Welche Namen geben Sie Ihren Verzeichnissen? Welche Namen erwartet der Client?
Was fordert der Client tatsächlich an, und wie weiß der Container, wo er suchen muss?
Prüfungsanforderungen 500
Tag-Dateien: Wie Include, nur besser 502
Wo der Container nach Tag-Dateien sucht 509
Einfache Tag-Handler 513
Ein einfaches Tag mit Body 514
Was ist, wenn der Tag-Body einen Ausdruck verwendet? 519
Auch klassische Tag-Handler müssen Sie noch beherrschen 529
Ein sehr kleiner klassischer Tag-Handler 531
Rückgabewerte steuern den Lebenszyklus eines klassischen Tags 536
Mit IterationTag können Sie den Body wiederholen 537
Default-Rückgabewerte von TagSupport 539
Das Interface DynamicAttributes 556
BodyTag liefert Ihnen zwei neue Methoden 563
Was ist, wenn Tags kooperieren müssen? 567
Die PageContext-API bei Tag-Handlern einsetzen 577
Prüfungsanforderungen 602
Die Deployment-Schlüsselanforderung: Was gehört wohin? 603
WAR-Dateien 612
Wie Servlet-Mapping TATSÄCHLICH funktioniert 616
Im DD Willkommen-Dateien konfigurieren 622
Im DD Fehlerseiten konfigurieren 626
Im DD die Servlet-Initialisierung konfigurieren 628
Eine XML-konforme JSP: JSP Document 629
Ich kannte benutzerdefinierte Tags nicht ... ich dachte, ich hätte nur
die JSTL,– und nichts darin machte, was der Manager wollte. Ach, hätte ich nur ge-
wusst, dass ich auch eigene aufbauen kann ... doch jetzt ist es zu spät für
mich. Lerne es ... und rette dich damit ...
Warum? Warum nur
hast du ihm nicht gesagt, das du es tun
kannst?
<ejb-local-ref>
<ejb-ref-name>ejb/Kunde</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.wickedlysmart.KundeHome</local-home>
<local>com.wickedlysmart.Kunde</local>
</ejb-local-ref>
Eine lokale Bean referenzieren
JVM
Servlet
LOKAL bedeutet, dass der Client (hier das Servlet) und die Bean in der gleichen JVM laufen müssen.
ENTFERNT (remote) bedeutet hier, dass der Client (hier das Servlet) und die Bean in unterschiedlichen JVMs laufen können (möglicherweise auch auf unterschiedlichen Rechnern).
<ejb-ref>
<ejb-ref-name>ejb/LokalerKunde</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.wickedlysmart.KundeHome</home>
<remote>com.wickedlysmart.Kunde</remote>
</ejb-ref>
Eine entfernte Bean referenzieren
JVM
Servlet
JVM
(Optionale Unterelemente für beide Tag sind unter anderem <description> und <ejb-link>. Aber die müssen Sie für die Prüfung nicht kennen.)
Das müssen vollständig qualifizierte namen der Interfaces sein, die von der Bean veröffentlicht werden.
Der JnDI-Lookup-
name, den Sie im Code
verwenden werden.
Inhaltsverzeichnis
xv
Geschützt und sicher12 Ihre Webanwendung ist in Gefahr. Ärger lungert in jedem Winkel des Netzwerks. Sie
wollen nicht, dass die Bösen Buben die Transaktionen in Ihrem Onlinestore belauschen und Kredit-
kartennummern abfischen. Sie wollen nicht, dass die Bösen Buben Ihren Server überzeugen, dass
sie »Besonders Gute Kunden Mit Dicken Rabatten« sind. Und Sie wollen nicht, dass irgendwer (gut
ODER böse) sensible Angestelltendaten einsieht. Muss Tim aus dem Marketing wirklich wissen, dass
Lisa aus der Entwicklungsabteilung dreimal so viel verdient wie er?
Die Macht der Filter13 Mit Filtern können Sie Anfragen abfangen. Und wenn Sie die Anfrage abfangen
können, können Sie auch die Antwort steuern. Und das Beste ist: Das Servlet hat keine Ahnung.
Es erfährt nie, dass jemand zwischen die Anfrage vom Client und den Container-Aufruf der service()-
Methode des Servlets getreten ist. Was das für Sie bedeutet? Mehr Urlaub. Weil Sie die Zeit, die Sie
ansonsten damit verbringen würden, nur eins Ihrer Servlets anzupassen, stattdessen dem Schreiben
und Konfigurieren eines Filters widmen können, der dazu in der Lage ist, all Ihre Servlets zu beeinflus-
sen. Sie möchten jedes Servlet in Ihrer Anwendung mit einer Benutzerverfolgung ausstatten? Kein
Problem. Sie möchten die Ausgabe aller Servlets in Ihrer Anwendung anpassen? Kein Problem. Und
Sie müssen den Servlet-Code nicht einmal anrühren.
Prüfungsanforderungen 650
Die Großen 4 der Servlets-Sicherheit 653
Authentifizierung in der HTTP-Welt 656
Die zehn wichtigsten Argumente für deklarative Sicherheit 659
Wer in einer Webanwendung Sicherheit implementiert 660
Autorisierungsrollen und -einschränkungen 662
Die VIER Authentifizierungsarten 677
Daten bei der Übertragung sichern: HTTPS macht es möglich 682
Datenvertraulichkeit und -integrität spärlich und deklarativ 684
Prüfungsanforderungen 702
Den Filter zur Anfrageverfolgung schreiben 707
Der Lebenszyklus eines Filters 708
Filter deklarieren und anordnen 710
Ausgaben mit einem Antwortfilter komprimieren 713
Wrapper bringen es 719
Der wahre Kompressionsfilter-Code 722
Kompressions-Wrapper-Code 724
Die Top Ten der Gründe, Sich-erheit deklarativ zu machen
Wer braucht nicht mehr Übung mit XML?Entspricht häufig den vorhandenen Jobrollen in der IT-Abteilung eines Unternehmens.Sieht in Ihrer Zusammenfassung gut aus.
Reduziert die laufende Wartung, wenn Ihre Anwendung wächst.
Kommt in der Prüfung vor.
Ermöglicht Anwendungsentwicklern, Servlets wiederzuverwenden, ohne auf den Quellcode zuzugreifen.
Unterstützt das Konzept der komponentenbasierten Entwicklung.
Ermöglicht Ihnen, Servlets, die Sie bereits geschrieben haben, flexibler wiederzuverwenden.
Ist einfach cool.
Endlich eine Möglichkeit, die Kosten dieses Containers zu rechtfertigen ...
10
9
8
7
6
5
4
3
2
1
1
ServletA service()
111
1 5432
Wenn er die Anfrage erhält, ruft der Container die doFilter()-Methode von Filter3 auf, die läuft, bis sie auf ihren chain.doFilter()-Aufruf stößt.
Der Container schiebt die doFilter()-Methode von Filter7 oben auf den Stack - wo sie ausgeführt wird, bis sie den.doFilter()-Aufruf erreicht.
Der Container schiebt die service()-Metho-de von ServletA oben auf den Stack, die läuft, bis sie fertig ist und dann vom Stack herunter-genommen wird.
Der Container gibt die Ausführung an Filter7 zurück. Dort wird die Me-thode doFilter() abgeschlossen und dann vom Stack herunterge-nommen.
Der Container gibt die Ausfüh-rung an Filter3 zurück, dessen doFilter()-Metho-de abgeschlossen und vom Stack heruntergenom-men wird. Dann schließt der Container die Antwort ab.
Der Stack Der StackDer StackDer StackDer Stack
Filter3 doFilter(r,r,c)
Filter3 doFilter(r,r,c)
Filter3 doFilter(r,r,c)
Filter3 doFilter(r,r,c)
Filter3 doFilter(r,r,c)
Filter7 doFilter(r,r,c)
Filter7 doFilter(r,r,c)
Filter7 doFilter(r,r,c)
Inhaltsverzeichnis
xvi
index
Enterprise-Entwurfsmuster14 Irgendwer hat es bereits gemacht. Wenn Sie gerade mit der
Programmierung von Webanwendungen beginnen, haben Sie Glück. Sie können die
angesammelte Weisheit Zehntausender Entwickler nutzen, die diesen Weg schon hinter
sich haben und das T-Shirt besitzen. Mit J2EE-spezifischen und anderen Entwurfsmustern
können Sie Ihren Code und sich selbst das Leben erleichtern. Und für das wichtigste
Entwurfsmuster für Webanwendungen, MVC, gibt es sogar ein sehr beliebtes Framework,
Struts, das Ihnen hilft, flexible, wartbare Servlet-Front Controller zu schnitzen. Sie
schulden es sich selbst, die Arbeit aller anderen zu nutzen, damit Sie mehr Zeit mit den
wichtigen Dingen des Lebens verbringen können ...
ADer Abschlusstest. Das ist es. 69 Fragen. Sprache, Themen und
Schwierigkeitsgrad sind mit der tatsächlichen Prüfung fast identisch. Wir kennen uns
damit aus.
Prüfungsanforderungen 738
Hardware- und Softwarekräfte hinter Mustern 739
Zusammenfassung der Software-Entwurfsprinzipien ... 744
Muster zur Unterstützung entfernter Model-Komponenten 745
Überblick über JNDI und RMI 747
Das Business Delegate ist ein Vermittler 753
Zeit für ein Transfer Object? 759
Geschäftsschichtmuster: Kurzzusammenfassung 761
Rückkehr zu unserem allerersten Muster ... MVC 762
Ja! Das ist Struts (und Front Controller) in a Nutshell 767
Die Bier-Anwendung für Struts umgestalten 770
Zusammenfassung der Muster 778
Abschlusstest 791
Lösungen 828
i 865
View
Action-Servlet
Model
Form-Bean
<xml><validate> ...</validate><mapping> ...</mapping></xml>
struts-config.xml
Action- Objekt
Anfrage
1a 3a2a1b
2b 2c
3b
Kein Schon- kaffee
Kein Schon-kaffee
Struts in a Nutshell
xvii
EinführungWie man dieses Buch benutzt
Ich kann einfach nicht fassen, dass so etwas in einem Programmierbuch
steht!
In diesem Abschnitt beantworten wir die brennende Frage:
»Und? Warum STEHT so was in einem Programmierbuch?”
xviii Einführung
1
2
3
Für wen ist dieses Buch?
Wer sollte eher die Finger von diesem Buch lassen?
Wenn Sie alle folgenden Fragen mit »Ja« beantworten können:
Wenn Sie eine dieser Fragen mit »Ja« beantworten müssen:
... dann ist dieses Buch etwas für Sie.
... dann ist dieses Buch nicht das Richtige für Sie.
[Anmerkung aus dem Marketing: Dieses Buch ist
etwas für jeden, der eine Kreditkarte besitzt.]
Wissen Sie, wie man in Java programmiert (Sie müssen kein Guru sein)?
Basteln Sie gerne – lernen Sie, indem Sie etwas anwenden, statt einfach nur zu lesen? Möchten Sie Servlets und JSPs lernen, verstehen und im Kopf behalten und die SCWCD für Java EE 1.5-Prüfung bestehen?
Ziehen Sie anregende Partyunterhaltungen trockenen, öden, akademischen Vorlesungen vor?
1
2
4
Haben Sie keinerlei Java-Kenntnisse? Sie müssen kein fortgeschrittener Programmierer sein. Aber wenn Sie noch keinerlei Erfahrung haben, sollten Sie sich sofort ein Exemplar von Java von Kopf bis Fuß zulegen und zu diesem Buch hier zurückkehren, nachdem Sie das andere durchgearbeitet haben.
Sind Sie ein ausgebuffter Java-Programmierer auf der Suche nach einem Referenzbuch?
Haben Sie Angst, etwas Neues auszuprobieren? Würden Sie sich lieber einer Wurzelbehandlung unterziehen, als in einer Streifen-Karo-Kombination auf die Straße zu gehen? Sind Sie der Meinung, dass ein Fachbuch nicht seriös sein kann, wenn Java-Komponenten vermensch-licht werden?
3 Sind Sie ein Java EE-Veteran auf der Suche nach hypermodernen Ser-vertechniken, serverspezifischen How-tos, Enterprise-Architekturen und komplexem, robustem Code aus dem wahren Leben?
Wie man dieses Buch benutzt
Die Einführung
Sie sind hier� xix
»Wie kann das ein ernsthaftes Programmierbuch sein?«
»Was sollen all die Abbildungen?«
»Kann ich auf diese Weise wirklich lernen?«
Na toll. Nur noch 800 trockene, langweilige Seiten.
Wir wissen, was Sie gerade denken.
Und wir wissen, was Ihr Gehirn gerade denkt.Ihr Gehirn lechzt nach Neuem. Es ist ständig dabei, Ihre Umgebung abzusuchen, und es wartet auf etwas Ungewöhnliches. So ist es nun einmal gebaut, und es hilft Ihnen zu überleben.
Heutzutage ist es weniger wahrscheinlich, dass Sie von einem Tiger verputzt werden. Aber Ihr Gehirn hält immer noch Ausschau. Man weiß ja nie.
Also, was macht Ihr Gehirn mit all den gewöhnlichen, normalen Routinesachen, denen Sie begegnen? Es tut alles in seiner Macht Stehende, damit es dadurch nicht bei seiner eigentlichen Arbeit gestört wird: Dinge zu erfassen, die wirklich wichtig sind. Es gibt sich nicht damit ab, die langweiligen Sachen zu speichern, sondern lässt sie gar nicht erst durch den »Dashieristoffensichtlichnichtwichtig«Filter.
Woher weiß Ihr Gehirn denn, was wichtig ist? Nehmen Sie an, Sie machen einen Tagesausflug und ein Tiger springt vor Ihnen aus dem Gebüsch: Was passiert dabei in Ihrem Kopf und Ihrem Körper?
Neuronen feuern. Gefühle werden angekurbelt. Chemische Substanzen durchfluten Sie.
Und so weiß Ihr Gehirn:
Das muss wichtig sein! Vergiss es nicht!
Aber nun stellen Sie sich vor, Sie sind zu Hause oder in einer Bibliothek. In einer sicheren, warmen, tigerfreien Zone. Sie lernen. Bereiten sich auf eine Prüfung vor. Oder Sie versuchen, irgendein schwieriges Thema zu lernen, von dem Ihr Chef glaubt, Sie bräuchten dafür eine Woche oder höchstens zehn Tage.
Es gibt da nur ein Problem: Ihr Gehirn versucht Ihnen einen großen Gefallen zu tun. Es versucht dafür zu sorgen, dass diese offensichtlich unwichtigen Inhalte nicht knappe Ressourcen verstopfen. Ressourcen, die besser dafür verwendet würden, die wirklich wichtigen Dinge zu speichern. Wie Tiger. Wie die Gefahren des Feuers. Oder dass Sie nie wieder in Shorts snowboarden sollten.
Und es gibt keine einfache Möglichkeit, Ihrem Gehirn zu sagen: »Hey, Gehirn, vielen Dank, aber egal, wie langweilig dieses Buch auch ist und wie klein der Ausschlag auf meiner emotionalen Richterskala gerade ist, ich will wirklich, dass du diesen Kram behältst.«
Ihr Gehirn denkt, DAS HIER ist wichtig.
Ihr Gehirn denkt,
DAS HIER zu
speichern lohnt
sich nicht.
xx Einführung
Es ist wirklich ätzend
eine abstrakte Methode
zu sein, so ganz ohne
Rumpf ...
abstract void bewegen();
Kein Methoden-Body !
Schließen Sie die
Deklaration mit einem
Semikolon ab.
berechnen()
return wert
Muss eine Metho-de auf dem Server aufrufen.RMI-Remote-Service
Wie man dieses Buch benutzt
Also, was ist nötig, damit Sie etwas lernen? Erst einmal müssen Sie es aufnehmen, und dann
dafür sorgen, dass Sie es nicht wieder vergessen. Es geht nicht darum, Fakten in Ihren Kopf
zu schieben. Nach den neuesten Forschungsergebnissen der Kognitionswissenschaft, der
Neurobiologie und der Lernpsychologie gehört zum Lernen viel mehr als nur Text auf einer
Seite. Wir wissen, was Ihr Gehirn anmacht.
Einige der Lernprinzipien dieser Buchreihe:
Bilder einsetzen. An Bilder kann man sich viel besser erinnern als an Worte allein und
lernt so viel effektiver (bis zu 89% Verbesserung bei Abrufbarkeits- und Lerntransfer-
studien). Außerdem werden die Dinge dadurch verständlicher. Text in oder neben
die Grafiken setzen, auf die sie sich beziehen, anstatt darunter oder auf eine andere
Seite. Die Leser werden auf den Bildinhalt bezogene Probleme dann mit doppelt so
hoher Wahrscheinlichkeit lösen können.
Verwenden Sie einen gesprächsorientierten Stil mit per-
sönlicher Ansprache. Nach neueren Untersuchungen haben
Studenten nach dem Lernen bei Tests bis zu 40% besser abgeschnitten, wenn
der Inhalt den Leser direkt in der ersten Person und im lockeren Stil anspricht statt in
einem formalen Ton. Halten Sie keinen Vortrag, sondern erzählen Sie Geschichten.
Benutzen Sie eine zwanglose Sprache. Nehmen Sie sich selbst nicht zu ernst. Würden
Sie einer anregenden Unterhaltung beim Abendessen mehr
Aufmerksamkeit schenken oder einem Vortrag?
Bringen Sie den Lernenden dazu, intensiver nachzudenken.
Mit anderen Worten: Falls Sie nicht aktiv Ihre Neuronen strapazieren,
passiert in Ihrem Gehirn nicht viel. Ein Leser muss motiviert, begeistert und neugierig sein
und angeregt werden, Probleme zu lösen, Schlüsse zu ziehen und sich neues Wissen anzueignen.
Und dafür brauchen Sie Herausforderungen, Übungen, zum Nachdenken anregende Fragen und
Tätigkeiten, die beide Seiten des Gehirns und mehrere Sinne einbeziehen.
Ziehen Sie die Aufmerksamkeit des Lesers auf sich – und behalten Sie sie. Wir alle haben
schon Erfahrungen dieser Art gemacht: »Ich will das wirklich lernen, aber ich kann einfach nicht
über Seite 1 hinaus wach bleiben.« Ihr Gehirn passt auf, wenn Dinge ungewöhnlich, inter-
essant, merkwürdig, auffällig, unerwartet sind. Ein neues, schwieriges, technisches
Thema zu lernen, muss nicht langweilig sein. Wenn es das nicht ist, lernt Ihr Gehirn viel
schneller.
Sprechen Sie Gefühle an. Wir wissen, dass Ihre Fähigkeit, sich an eine Sache zu erinnern,
wesentlich von ihrem emotionalen Gehalt abhängt. Sie erinnern sich an das, was Sie bewegt.
Sie erinnern sich, wenn Sie etwas fühlen. Nein, wir erzählen keine herzzerreißenden Geschichten über
einen Jungen und seinen Hund. Was wir erzählen, ruft Überraschungs-, Neugier-, Spaß- und Was-soll-das?-
Emotionen hervor und dieses Hochgefühl, das Sie beim Lösen eines Puzzles empfinden oder wenn Sie
etwas lernen, was alle anderen schwierig finden. Oder wenn Sie merken, dass Sie etwas können, was
dieser »Ich-bin-ein-besserer-Techniker-als-du«-Typ aus der Technikabteilung nicht kann.
Wir stellen uns unseren Leser als einen aktiv Lernenden vor.
Die Einführung
Sie sind hier� xxi
Wenn Sie wirklich lernen möchten, und zwar schneller und nachhaltiger, dann schenken Sie Ihrer Aufmerksamkeit Aufmerksamkeit. Denken Sie darüber nach, wie Sie denken. Lernen Sie, wie Sie lernen.
Die meisten von uns haben in ihrer Jugend keine Kurse in Metakognition oder Lerntheorie gehabt. Es wurde von uns erwartet, dass wir lernen, aber nur selten wurde uns auch beigebracht, wie man lernt.
Wir nehmen aber an, dass Sie wirklich lernen möchten, wie man in Java Webanwendungen aufbaut, und das SCWCD-Zertifikat erwerben möchten, wenn Sie dieses Buch in den Händen halten. Und wahrscheinlich möchten Sie nicht viel Zeit aufwenden. Und Sie wollen sich an das erinnern, was Sie lesen, und es anwenden können. Und deshalb müssen Sie es verstehen. Wenn Sie so viel wie möglich von diesem Buch profitieren wollen, oder von irgendeinem anderen Buch oder einer anderen Lernerfahrung, übernehmen Sie Verantwortung für Ihr Gehirn. Ihr Gehirn im Zusammenhang mit diesem Lernstoff.
Der Trick besteht darin, Ihr Gehirn dazu zu bringen, neuen Lernstoff als etwas wirklich Wichtiges anzusehen. Als entscheidend für Ihr Wohlbefinden. So wichtig wie ein Tiger. Andernfalls stecken Sie in einem dauernden Kampf, in dem Ihr Gehirn sein Bestes gibt, um die neuen Inhalte davon abzuhalten, hängen zu bleiben.
Metakognition: Nachdenken übers Denken
Wie könnte ich mein Gehirn
wohl dazu kriegen, diesen Kram zu
behalten ...
Wie BringEn Sie also ihr gehirn dazu, Servlets für so wichtig zu halten wie einen Tiger?
Da gibt es den langsamen, ermüdenden Weg und den schnelleren, effektiveren Weg. Der langsame Weg geht über bloße Wiederholung. Natürlich ist Ihnen klar, dass Sie lernen und sich sogar an die langweiligsten Themen erinnern können, wenn Sie sich dieselbe Sache immer wieder einhämmern. Wenn Sie nur oft genug wiederholen, sagt Ihr Gehirn: »Er hat zwar nicht das Gefühl, dass das wichtig ist, aber er sieht sich dieselbe Sache immer und immer wieder an – dann muss sie wohl wichtig sein.«
Der schnellere Weg besteht darin, alles zu tun, was die Gehirnaktivität erhöht, vor allem verschiedene Arten von Gehirnaktivität. Eine wichtige Rolle dabei spielen die auf der vorhergehenden Seite erwähnten Dinge – alles Dinge, die nachweislich helfen, dass Ihr Gehirn für Sie arbeitet. So hat sich z.B. in Untersuchungen gezeigt: Wenn Wörter in den Abbildungen stehen, die sie beschreiben (und nicht irgendwo anders auf der Seite, z.B. in einer Bildunterschrift oder im Text), versucht Ihr Gehirn herauszufinden, wie die Wörter und das Bild zusammenhängen, und dadurch feuern mehr Neuronen. Und je mehr Neuronen feuern, umso größer ist die Chance, dass Ihr Gehirn mitbekommt: Bei dieser Sache lohnt es sich aufzupassen und vielleicht auch, sich daran zu erinnern.
Ein lockerer Sprachstil hilft, denn Menschen tendieren zu höherer Aufmerksamkeit, wenn ihnen bewusst ist, dass sie ein Gespräch führen – man erwartet dann ja von ihnen, dass sie dem Gespräch folgen und sich beteiligen. Das Erstaunliche daran ist: Es ist Ihrem Gehirn ziemlich egal, dass die »Unterhaltung« zwischen Ihnen und einem Buch stattfindet! Wenn der Schreibstil dagegen formal und trocken ist, hat Ihr Gehirn den gleichen Eindruck wie bei einem Vortrag, bei dem in einem Raum passive Zuhörer sitzen: Nicht nötig, wach zu bleiben.
Aber Abbildungen und ein lockerer Sprachstil sind erst der Anfang.
xxii Einführung
Spielen Sie Container
Punkt für Punkt
Wie man dieses Buch benutzt
Das haben WIR getan:Wir haben Bilder verwendet, weil Ihr Gehirn auf visuelle Eindrücke eingestellt ist, nicht auf Text. Soweit es Ihr Gehirn betrifft, sagt ein Bild wirklich mehr als 1.024 Worte. Und dort, wo Text und Abbildungen zusammenwirken, haben wir den Text in die Bilder eingebettet, denn Ihr Gehirn arbeitet besser, wenn der Text innerhalb der Sache steht, auf die er sich bezieht, und nicht in einer Bildunterschrift oder irgendwo vergraben im Text.
Wir haben Redundanz eingesetzt, d.h. dasselbe auf unterschiedliche Art und mit verschiedenen Medientypen ausgedrückt, damit Sie es über mehrere Sinne aufnehmen. Das erhöht die Chance, dass die Inhalte an mehr als nur einer Stelle in Ihrem Gehirn verankert werden.
Wir haben Konzepte und Bilder in unerwarteter Weise eingesetzt, weil Ihr Gehirn auf Neuigkeiten programmiert ist. Und wir haben Bilder und Ideen mit zumindest etwas emotionalem Charakter verwendet, weil Ihr Gehirn darauf eingestellt ist, auf die Biochemie von Gefühlen zu achten. An alles, was ein Gefühl in Ihnen auslöst, können Sie sich mit höherer Wahrscheinlichkeit erinnern, selbst wenn dieses Gefühl nicht mehr ist als ein bisschen Belustigung, Überraschung oder Interesse.
Wir haben einen umgangssprachlichen Stil mit direkter Anrede benutzt, denn Ihr Gehirn ist von Natur aus aufmerksamer, wenn es Sie in einer Unterhaltung wähnt, als wenn es davon ausgeht, dass Sie passiv einer Präsentation zuhören – sogar dann, wenn Sie lesen.
Wir haben mehr als 40 Aktivitäten für Sie vorgesehen, denn Ihr Gehirn lernt und behält von Natur aus besser, wenn Sie Dinge tun, als wenn Sie nur darüber lesen. Und wir haben die Übungen zwar anspruchsvoll, aber doch lösbar gemacht, denn so ist es den meisten Lesern am liebsten.
Wir haben mehrere unterschiedliche Lernstile eingesetzt, denn vielleicht bevorzugen Sie ein SchrittfürSchrittVorgehen, während jemand anders erst einmal den groben Zusammenhang verstehen und ein Dritter einfach nur ein Codebeispiel sehen möchte. Aber ganz abgesehen von den jeweiligen Lernvorlieben profitiert jeder davon, wenn er dieselben Inhalte in unterschiedlicher Form präsentiert bekommt.
Wir liefern Inhalte für beide Seiten Ihres Gehirns, denn je mehr von Ihrem Gehirn Sie einsetzen, desto wahrscheinlicher werden Sie lernen und behalten, und umso länger bleiben Sie konzen triert. Wenn Sie mit einer Seite des Gehirns arbeiten, bedeutet das häufig, dass sich die andere Seite ausruhen kann; so können Sie über einen längeren Zeitraum produktiver lernen.
Und wir haben Geschichten und Übungen aufgenommen, die mehr als einen Blickwinkel repräsentieren, denn Ihr Gehirn lernt von Natur aus intensiver, wenn es gezwungen ist, selbst zu analysieren und zu beurteilen.
Wir haben Herausforderungen eingefügt: in Form von Übungen und indem wir Fragen stellen, auf die es nicht immer eine eindeutige Antwort gibt, denn Ihr Gehirn ist darauf eingestellt, zu lernen und sich zu erinnern, wenn es an etwas arbeiten muss. Überlegen Sie: Ihren Körper bekommen Sie ja auch nicht in Form, wenn Sie nur die Leute auf dem Sportplatz beobachten. Aber wir haben unser Bestes getan, um dafür zu sorgen, dass Sie – wenn Sie schon hart arbeiten – an den richtigen Dingen arbeiten. Dass Sie nicht einen einzigen Dendriten darauf verschwenden, ein schwer verständliches Beispiel zu verarbeiten oder einen schwierigen, mit Fachbegriffen gespickten oder übermäßig gedrängten Text zu analysieren.
Wir haben Menschen eingesetzt. In Geschichten, Beispielen, Bildern usw. – denn Sie sind ein Mensch. Und Ihr Gehirn schenkt Menschen mehr Aufmerksamkeit als Dingen.
Wir haben einen 80/20Ansatz benutzt. Wir gehen davon aus, dass das hier nicht Ihr einziges Buch sein wird, wenn Sie Ihre Diss über JSPs schreiben wollen. Deshalb besprechen wir nicht alles. Nur das, was Sie wirklich brauchen werden.
Kein Schon- kaffee
Kein Schon-kaffee
Gy
mn
astik für den Ge
ist
View
Controller
AlteDatenbank
DB
Kunde-Bean
Service
Kunden verwalten
Anfrage1c
1a
3b
2a
3a
1b
4a
4b
4c
Kims Reich
Rosis Garten
Webdesigner lungern hier rum ...
Entity
Model
Model
Die Einführung
Sie sind hier� xxiii
Machen Sie den »Kein Schonkaffee«- Abschlusstest erst, nACHDEM Sie das Buch vollständig durchgearbeitet haben.
Machen Sie den Test zu früh, werden Sie kein klares Bild darüber erhalten, wie bereit Sie für die echte Prüfung sind. Warten Sie, bis Sie den Eindruck haben, dass Sie fast so weit sind, und gehen Sie dann erst den Test an. Und achten Sie darauf, dass Sie sich tatsächlich nur 180 Minuten geben – genau so viel Zeit werden Sie auch in der echten SCWCD-Prüfung haben.
So, wir haben unseren Teil der Arbeit geleistet. Der Rest liegt bei Ihnen. Diese Tipps sind ein Anfang; hören Sie
auf Ihr Gehirn und finden Sie heraus, was bei Ihnen funktioniert und was nicht.
Probieren Sie neue Wege aus.
Und das können SIE tun, um sich Ihr Gehirn Untertan zu machen
1 immer langsam. Je mehr Sie verstehen, desto weniger müssen Sie auswendig lernen.Lesen Sie nicht nur. Halten Sie inne und denken Sie nach. Wenn das Buch Sie etwas fragt, springen Sie nicht einfach zur Antwort. Stellen Sie sich vor, dass Sie das wirklich jemand fragt. Je gründlicher Sie Ihr Gehirn zum Nachdenken zwingen, umso größer ist die Chance, dass Sie lernen und behalten.
2 Bearbeiten Sie die Übungen. Machen Sie selbst notizen.
Wir haben sie entworfen, aber wenn wir sie auch für Sie lösen würden, wäre das, als ob jemand anderes Ihr Training für Sie absolviert. Und sehen Sie sich die Übungen nicht einfach nur an. Benutzen Sie einen Bleistift. Es deutet Vieles darauf hin, dass körperliche Aktivität beim Lernen den Lernerfolg erhöhen kann.
3 Lesen Sie die Abschnitte »Es gibt keine dummen Fragen«.
Und zwar alle. Das sind keine Zusatzanmerkungen – sie gehören zum Kerninhalt! Überspringen Sie sie nicht.
4 Lesen Sie dieses Buch als Letztes vor dem Schlafengehen. Oder lesen Sie danach zu-mindest nichts Anspruchsvolles mehr.
Ein Teil des Lernprozesses (vor allem die Übertragung in das Langzeitgedächtnis) findet erst statt, nach-dem Sie das Buch zur Seite gelegt haben. Ihr Gehirn braucht Zeit für sich, um weitere Verarbeitung zu leisten. Wenn Sie in dieser Zeit etwas Neues aufnehmen, geht ein Teil dessen, was Sie gerade gelernt haben, verloren.
5 Trinken Sie Wasser. Viel.Ihr Gehirn arbeitet am besten in einem schönen Flüssigkeitsbad. Austrocknung (zu der es schon kommen kann, bevor Sie überhaupt Durst verspüren) beeinträchtigt die kognitiven Funktionen.
6 reden Sie drüber. Laut.Sprechen aktiviert einen anderen Teil des Gehirns. Wenn Sie etwas verstehen wollen oder Ihre Chancen verbessern wollen, sich später daran zu erinnern, sagen Sie es laut. Noch besser: Versuchen Sie es jemand anderem laut zu erklären. Sie lernen dann schneller und haben vielleicht Ideen, auf die Sie beim bloßen Lesen nie gekommen wären.
7 Hören Sie auf ihr gehirn.
Achten Sie darauf, Ihr Gehirn nicht zu überladen. Wenn Sie merken, dass Sie etwas nur noch überfliegen oder dass Sie das gerade erst Gelesene vergessen haben, ist es Zeit für eine Pause. Ab einem bestimmten Punkt lernen Sie nicht mehr schneller, indem Sie mehr hineinzustopfen versuchen; das kann sogar den Lernprozess stören.
9
Schneiden Sie das hier aus und heften Sie es an Ihren Kühlschrank.
8 Aber bitte mit gefühl!
Ihr Gehirn muss wissen, dass es um etwas Wichtiges geht. Lassen Sie sich in die Geschichten hineinziehen. Erfinden Sie eigene Bildunterschriften für die Fotos. Über einen schlechten Scherz zu stöhnen ist immer noch besser, als gar nichts zu fühlen.
Einführung
Außer Ihrem Gehirn und einem Stift brauchen Sie Java, Tomcat 5 und einen Computer.
Sie benötigen keine weiteren Entwicklungswerkzeuge wie eine IDE (Integrated Development Environment). Wir empfehlen Ihnen dringend, nur einen einfachen Texteditor zu verwenden, bis Sie dieses Buch durchhaben. Eine IDE mit Servlet/JSP-Unterstützung kann Sie vor einigen Details schützen, die wirklich wichtig sind (und geprüft werden). Sie sind also erheblich besser bedient, wenn Sie den Bean-Code vollständig von Hand schreiben. Haben Sie einmal verstanden, was passiert, können Sie zu einem Werkzeug greifen, das einige der Schritte zu Erstellung und Deployment von Servlets/JSPs automatisiert. Wenn Sie bereits wissen, wie man mit Ant arbeitet, können sie nach Kapitel 3 damit beginnen, es zum Deployment einzusetzen. Aber wir raten von der Verwendung von Ant ab, bis Sie sich die Deployment-Struktur für Webanwendungen vollständig eingeprägt haben.
Was Sie für dieses Buch brauchen:
TOMCAT EINRICHTEN� Sollten Sie Java SE v1.5 oder höher noch nicht haben, müssen Sie es sich beschaffen.
� Sollten Sie Tomcat 5 noch nicht haben, erhalten Sie ihn unter http://tomcat.apache.org/. Wählen Sie im Downloads-Menü auf der linken Seite der Homepage »Tomcat v5.5«.
� Gehen Sie zum Abschnitt »Binary Distributions« und laden Sie die Version Ihrer Wahl herunter. Wenn Sie nicht wissen, was Sie nehmen sollen, wählen Sie die »Core«-Distri-bution. Mehr brauchen Sie nicht.
� Speichern Sie die Installationsdatei in einem temporären Verzeichnis.
� Installieren Sie Tomcat. Unter Windows müssen Sie dazu nur auf die Datei install.exe doppelklicken und den Anweisungen des Assistenten folgen. Auf anderen Systemen müs-sen Sie die Installationsdatei an dem Ort Ihrer Festplatte entpacken, an dem sich Tomcat befinden soll.
� Damit Sie die Anweisungen in diesem Buch leichter befolgen können, sollten Sie dem Tomcat-Home-Verzeichnis den Namen »tomcat« geben (oder einen »tomcat«-Alias auf das eigentliche Tomcat-Home-Verzeichnis erstellen).
� Setzen Sie Umgebungsvariablen für JAVA_HOME und TOMCAT_HOME auf die Weise, auf die das bei Ihrem System üblich ist.
� Sie sollten über ein Exemplar der Spezifikationen verfügen, auch wenn Sie diese nicht benötigen, um die Prüfung zu bestehen. Derzeit finden Sie sie unter Servlet 2.4 (JSR #154) http://jcp.org/en/jsr/detail?id=154 JSP 2.0 (JSR #152) http://jcp.org/en/jsr/detail?id=152 JSTL 1.1 (JSR #52) http://jcp.org/en/jsr/detail?id=52
Gehen Sie zur JSR-Seite und klicken Sie neben Final Release auf Download Page.
� Testen Sie Tomcat, indem Sie unter Linux/Unix/OS X das the tomcat/bin/startup-Skript (startup.sh) starten. Gehen Sie mit Ihrem Browser zu http://localhost:8080/, sollten Sie die Tomcat-Startseite sehen.
Wie man dieses Buch benutzt
Java 2 Standard Edition 1.5
Tomcat 5
Die Prüfung umfasst die folgenden Spezifikationen:
� Servlets 2.4
� JSP 2.0
� JSTL 1.1
xxiv
Die Einführung
Sie sind hier� xxv
Dies ist ein Lehrbuch, keine Referenz. Wir haben mit Absicht alles weggelassen, was Ihnen dabei in die Quere kommen könnte, das zu lernen, was wir am jeweiligen Punkt des Buchs behandeln. Beim ersten Lesen sollten Sie unbedingt auch am Anfang des Buchs beginnen. Das Buch geht zu jedem Zeitpunkt davon aus, dass Sie bestimmte Dinge bereits gesehen und gelernt haben.
Wir nutzen einfache UML-ähnliche Diagramme.
Wahrscheinlich kennen Sie UML bereits, aber in der Prüfung kommt es nicht vor, und es ist auch keine Voraussetzung für dieses Buch. Sie müssen sich also nicht den Kopf darüber zerbrechen, dass Sie jetzt gleichzeitig Servlets, JSP, JSTL und UML lernen müssen.
Wir behandeln nicht alle kleinlichen Einzelheiten aus der Spezifikation.
Die Prüfung ist ziemlich ausführlich. Deswegen sind wir es auch. Aber wenn die Spezifika-tion Details enthält, die in der Prüfung nicht auftauchen, erwähnen wir sie nur, wenn sie für die meisten Webentwickler interessant sind. Das, was Sie wissen müssen, um mit der Entwicklung von Webkomponenten (Servlets und JSPs) zu beginnen, und das, was Sie zum Bestehen der Prüfung benötigen, überschneidet sich zu rund 85%. Wir behandeln ein paar Dinge, die in der Prüfung nicht auftauchen. Wenn wir das tun, weisen wir darauf hin, damit Sie wissen, dass Sie sich das nicht merken müssen. Wir haben die echte Prüfung geschrieben. Wir wissen also, worauf Sie sich konzentrieren müssen! Wenn ein winziges Detail eventuell in einer der Fragen der Prüfung auftauchen könnte, der erforderliche Lernaufwand aber in keinem Verhältnis zum Ertrag steht, überspringen wir es oder behandeln es nur am Rande oder nur in einer Frage eines Übungstests.
Die Aktivitäten sind niCHT optional.
Die Übungen und Aktivitäten sind kein Beiwerk. Sie sind ein wesentlicher Bestandteil des Buchs. Einige von ihnen sollen Ihnen beim Merken helfen, andere beim Verstehen, und einige helfen Ihnen, das Gelernte anzuwenden. Überspringen Sie nichts.
Die redundanz ist beabsichtigt und wichtig.
Eins der Dinge, die bei einem Kopf bis Fuß-Buch grundlegend anders sind, ist, dass wir möchten, dass Sie die Sache wirklich verstehen. Und wir möchten, dass Sie nach Beendigung des Buches behalten, was Sie gelernt haben. Einprägen und Erinnern sind bei den meisten Lehr- oder Referenzbüchern nicht unbedingt das erste Ziel – in diesem Buch schon. Deswegen werden Ihnen in diesem Buch einige Konzepte mehrfach begegnen.
Die Codebeispiele sind so schlank wie möglich.
Unsere Leser sagen uns, dass sie es frustrierend finden, sich durch 200 Zeilen Code graben zu müssen, um die beiden Zeilen zu finden, die sie wirklich verstehen müssen. Die meisten Beispiele in diesem Buch werden mit so wenig Kontext wie möglich gezeigt, damit der Teil, den Sie lernen soll, klar und einfach ist. Sie dürfen nicht erwarten, dass der Code robust oder gar vollständig ist. Das ist unser Auftrag für Sie, wenn Sie mit dem Buch durch sind. Die Beispiele in diesem Buch wurden spezifisch für Lehrzwecke geschrieben und sind nicht immer vollständig arbeitsfähig. Gelegentlich machen wir Codebeispiele auf wickedlysmart.com verfügbar.
Was Sie sonst noch wissen sollten
Regisseur
getFilme()getOscars()getKevinBaconWert()
Wir nutzen einfa-
cheres, angepasstes
Schein-UML.
xxvi Einführung
Muss ich zunächst das SCJP bestehen?
Ja. Die Zertifizierungen Web Component Developer, Business Component Developer, Mobile Application Developer, Web Services Developer und Developer verlangen alle, dass Sie ein Sun Certified Java Pro-grammer sind.
Wie viele Fragen?
In der Prüfung müssen Sie 69 Fragen beantworten. Es erhalten aber nicht alle dieselben 69 Fragen. Es gibt viele verschiedene Versionen des Tests. Aber jeder erhält den gleichen Schwierigkeitsgrad und die gleiche Verteilung der Themen. Sie dürfen davon ausgeben, dass in der echten Prüfung mindestens eine Frage zu jeder Zertifikatsanforderung auftaucht, und zu einigen Anforderungen mehr als nur eine Frage.
Wie viel Zeit habe ich in der Prüfung?
Sie haben drei Stunden (180 Minuten). Für die meisten ist das kein Problem, da diese Fragen keine langen komplizierten Puzzles darstellen. Die meisten Fragen sind sehr kurz und müssen im Multiple-Choice-Ver-fahren beantwortet werden. Entweder Sie wissen die Antwort, oder Sie wissen sie nicht.
Wie sehen die Fragen aus?
Sie sehen fast genauso aus wie die Fragen in den Übungstests. Es gibt allerdings einen großen Unter-schied – in der echten Prüfung wird angegeben, wie viele Antworten richtig sind. Das machen wir nicht. Außerdem werden Ihnen einige Drag-and-Drop-Fragen begegnen, die wir hier nicht darstellen können. Aber Drag-and-Drop-Fragen sind ja nur eine interaktive Form der Zuordnung.
Wie viele Fragen muss ich richtig beantworten?
Sie müssen 49 Fragen (70%) richtig beantworten, um die Prüfung zu bestehen. Halten Sie Ihren Mauszei-ger über den Fertig-Button, nachdem Sie alle Fragen beantwortet haben, bis Sie den Mut finden, darauf zu klicken. Denn dann erfahren Sie blitzschnell, ob Sie bestanden haben (natürlich werden Sie bestehen).
Warum sagen die Übungstests in diesem Buch nicht, wie viele Optionen man für die richtige Antwort wählen muss?
Unsere Tests sollen einen Hauch schwerer sein als der echte Test, damit Sie realistisch einschätzen können, ob Sie bereit sind, die Prüfung abzulegen. Man neigt dazu, in Übungstests in Büchern bessere Ergebnisse zu erzielen, weil man einige Tests mehrfach macht. Wir möchten vermeiden, dass Sie fälschlich den Ein-druck haben, bereit für die Prüfung zu sein. Unsere Leser haben uns mitgeteilt, dass ihre Ergebnisse in der echten Prüfung ihrem Ergebnis beim Abschluss-Übungstest aus diesem Buch sehr ähnlich sind.
Zur SCWCD-Prüfung (für Java EE 1.5)
Die Prüfung ablegen
Das aktualisierte SCWCD-Zertifikat trägt den Namen »Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5« (CX-310-083). Lassen Sie sich von diesem Namen nicht verwirren. Das aktualisierte Zertifikat wurde immer noch für Java EE v1.4 und die Servlet v2.4- und JSP v2.0-Spezifikationen entworfen.
Die Einführung
Sie sind hier� xxvii
Kann ich die Prüfung auf deutsch ablegen?
Leider nicht. Es war uns daher wichtig, dass Sie zwar alle Konzepte und wichtigen Begriffe einmal auf deutsch richtig verstehen, dass Sie aber genauso die englische Fachterminologie kennenlernen, dem Code zuordnen können und in der Prüfung leicht wiedererkennen. Das Bild der Anfrage eines Clients und der Antwort eines Servers sollte Ihnen am Ende also genauso vertraut sein wie die Begriffe HTTP-Request und -Response.
Was erhalte ich, nachdem ich die Prüfung abgelegt habe?
Achten Sie darauf, dass Sie Ihren Prüfungsbericht erhalten, bevor Sie das Testzentrum verlassen. Er enthält eine Zusammenfassung Ihrer Ergebnisse in den verschiedenen Bereichen und sagt, ob Sie bestanden haben oder nicht. Bewahren Sie ihn auf ! Es ist Ihr anfänglicher Nachweis der Zertifizierung. Ein paar Wochen nach dem Test werden Sie ein kleines Päckchen von den Sun Educational Services erhalten, in dem sich Ihr echtes gedrucktes Zertifikat, ein Glück-wunschschreiben von Sun und eine niedliche Anstecknadel befinden, auf der Sun Certified Web Component Devel-oper steht – so klein geschrieben allerdings, dass Sie behaupten könnten, in allem zertifiziert zu sein, was Ihnen gefällt, ohne dass jemand entziffern könnte, ob Sie die Wahrheit sagen. Der Schampus, der Ihnen nach Bestehen der Prüfung zusteht, ist leider nicht enthalten.
Wie viel kostet es und wie registriere ich mich?
Die Prüfung kostet 235 €. Deswegen brauchen Sie ja dieses Buch ... um sicherzustellen, dass Sie beim ersten Mal beste-hen. Sie registrieren sich über die Sun Educational Services, indem Sie Ihre Kreditkartennummer angeben. Im Aus-tausch erhalten Sie eine Voucher-Nummer, mit der Sie beim nächsten Prometric-Testcenter einen Termin vereinbaren.
Bei http://www.de.sun.com/ finden Sie ausführliche Informationen und können Ihren Voucher erwerben. Ins Zertifizierungszentrum gelangen Sie über SCHULUNGEN -> ZERTIFIZIERUNG.
Wie sieht die Prüfungssoftware aus?
Die ist absolut simpel — Sie erhalten eine Frage und beantworten sie. Möchten Sie die Frage nicht beantworten, können Sie sie auslassen und später wieder zu ihr zurückkehren. Beantworten Sie die Frage, sind sich aber nicht sicher, und möchten später zu ihr zurückkehren, wenn Sie mehr Zeit haben, können Sie eine Frage »markieren«. Wenn Sie fertig sind, sehen Sie ein Fenster mit allen Fragen, die Sie noch nicht beantwortet oder markiert haben, und können darüber zu ihnen zurückkehren.
Zu Anfang der Prüfung bekommen Sie eine kleine Einführung zur Verwendung der Software, in der Sie einen kleinen Übungstest erhalten (nicht zu Servlets). Die Zeit, die Sie mit der Einführung verbringen, wird nicht auf Ihre Zeit für die SCWCD-Prüfung angerechnet. Die Uhr beginnt erst zu laufen, wenn Sie die Software-Einführung beendet haben und für den echten Test bereit sind.
Wo kann ich eine Lerngruppe finden und wie lange dauert die Vorbereitung?
Die beste Online-Forumsgruppe zu dieser Prüfung ist zufälligerweise die, die die Autoren dieses Buchs moderieren! (Wow, kaum zu glauben, oder?) Steigen Sie bei javaranch.com ab und betreten Sie den Big Moose Saloon (dort befinden sich alle Diskussionsforen). Er ist unübersehbar. Es ist immer jemand da, der Ihre Fragen beantwortet, manchmal auch wir. JavaRanch ist die freundlichste Java-Community im ganzen Internet, in der Sie immer willkommen sind, egal, auf welchem Level Ihr Java steht. Sollten Sie noch das SCJP ablegen müssen, können wir Ihnen auch damit helfen.
Wie lange Sie benötigen, bis Sie für die Prüfung bereit sind, ist in großem Maße davon abhängig, wie viel Servlet- und JSP-Erfahrung Sie bereits haben. Wenn Sie Servlet- und JSP-Neuling sind, könnten Sie sechs bis zwölf Wochen brauchen, je nachdem wie viel Zeit Sie täglich aufbringen können. Personen, die eine Menge aktuelle Erfahrung mit Servlets und JSPs haben, sind häufig bereits in gerade mal drei Wochen für die Prüfung bereit.
xxviii Einführung
Betatester & technische Gutachter
Das Gutachterteam
Dave Wood
Joe Konior
Philippe Maquet Johannes deJong
Jef Cumps
Andrew Monkhouse
Jason Menard
Dirk Schreckmann
Zwei neue graue Haare, für die dieses Buch ver-antwort-lich ist.
Sergio Ramirez
Nicht mit Bild vertreten, aber genauso toll: Amit Londhe
Theodore Casser
Oliver Roell
Ulf Dittmer
Bear Bibeault
Preetish Madalia
Neeraj Singhal
Collins Tchoumba
Die Einführung
Sie sind hier� xxix
Bei O’Reilly:
Unser größter Dank gilt Mike Loukides bei O’Reilly, der alles angestoßen und geholfen hat, das »Von Kopf bis Fuß«-Konzept zu einer Reihe zu formen. Wir freuen uns, einen Lektor zu haben, der ein richtiger Java-Typ ist. Großen Dank auch an die treibende Kraft hinter Von Kopf bis Fuß, Tim O’Reilly. Zu unserem Glück denkt er immer an die Zukunft und übt mit Vergnügen seinen erfrischenden Einfluss aus. Dank auch an die clevere »Mutter« der Von Kopf bis Fuß-Reihe Kyle Hart, die ausgeknobelt hat, wie Von Kopf bis Fuß in die restliche Computerbuch-Welt passt.
Unsere unerschütterlichen Gutachter:
Na gut, das Buch brauchte etwas länger, als wir ursprünglich geplant hatten. Aber ohne den JavaRanch-Review-Manager Johannes deJong wäre es erschreckend spät geworden. Du bis unser Held, Johannes. Unseren besonderen Dank auch an Joe Konior, dessen Feedback zu jedem Kapitel so ungefähr den gleichen Umfang hatte wie das Kapitel selbst. Höchst dankbar sind wir für die unnachgiebige Anstrengung und Expertise (und gute Laune) von Philippe Macquet. Alle drei Autoren lieben ihn so sehr, dass sie ihn vom Fleck weg heiraten würden ... was allerdings schon recht seltsam wäre. Wir sind Andrew Monkhouse sowohl für sein technisches Feedback als auch die Hilfe mit den komplizierten Englisch-Australisch-Übersetzungen dankbar. Jef Cumps, deine MP3-Wiedergabe des »setHeader«-Songs war umwerfend (vielleicht nur etwas zu Emo), und deine technischen Kommentare waren wirklich hilfreich.
Dave Wood hat beinahe alle Aspekte abgeklopft und mit Vergnügen bei frühen Entwürfen darauf hingewiesen, »Das ist aber nicht sehr Von Kopf bis Fuß-mäßig.« Exzellentes Feedback haben wir auch von den JavaRanch-Moderatoren Jason Menard, Dirk »Fischgesicht« Schreckmann, Rob Ross, Ernest Friedman-Hill und Thomas Paul erhalten. Und unser besonderer Dank geht wie immer an den javaranch.com-Trail-Boss Paul Wheaton.
Übungsfragen
Wenn Ihr Kopf bei einer besonders verzwickten oder vertrackten JSP-Übungs-frage zu qualmen beginnt, dürfen Sie nicht uns verantwortlich machen – wen-den Sie sich an Marc Peabody! Danke, Marc, dass du uns geholfen hast, die SCWCD-Kandidaten auf Trab zu halten. Marc verbringt großzügige Mengen seiner Freizeit mit dem Moderieren auf JavaRanch. Er ist dafür berüchtigt, Rancher dazu zu animieren, entsetzliche Mashups aus unschuldigen Java EE-Technologie n zu konstruieren.
Weitere Schuldige:
Mithelfer
Marc Peabody
xxx Einführung
Noch mehr Danksagungen
*Die große Zahl der Danksagungen verdankt sich dem Umstand, dass wir die Theorie testen, dass jeder, der in einem Buch erwähnt wird, mindestens ein Exemplar kauft, vielleicht sogar mehrere (die Familie muss schließlich auch versorgt werden). Falls Sie sich einen Platz in der Danksagungsliste unseres nächsten Buches sichern möchten und eine große Familie haben, schreiben Sie uns einfach.
1Klarstellung: Bryan ist der einzige Koautor, den wir je hatten. Aber das mindert die Aussage in keiner Weise.
Noch mehr Personen*
Von Bryan BashamIch könnte damit anfangen, meiner Mama zu danken. Aber das habe ich schon mal gemacht ... Meine Kenntnisse in der Java-Webentwicklung basieren auf einigen mittel-großen Anwendungen, die ich geschrieben habe. Aber diese Grundlage wurde durch Jahre von Diskussionen auf einen Sun-internen Java-Instruktoren-E-Mail-Alias gestärkt und verfeinert. Insbesondere möchte ich Steve Stelting, Victor Peters, Lisa Morris, Jean Tordella, Michael Judd, Evan Troyka und Keith Ratliff danken. Viele Menschen haben mein Wissen zugeschnitten, aber diese sechs sind die Messer, die die tiefsten Kerben hinterlassen haben.
Wie bei allen Buchprojekten waren die letzten drei Monate recht schwierig. Ich danke meiner Verlobten Kathy Collina für Ihre Geduld mit mir. Karma und Kiwi (unseren Katzen) möchte ich für mitternächtliches Schoßsitzen und das regelmäßige Verprügeln der Tastatur danken.
Abschließend und am meisten muss ich Kathy und Bert danken, dass Sie überhaupt vorgeschlagen haben, dass wir uns an dieses Projekt machen sollen. Ihre Kenntnisse der Metakognition und Lehrgestaltung werden nur von der kreativen Kraft in den Schatten gestellt, die aus ihren Von Kopf bis Fuß-Büchern strömt. Ich arbeite mittlerweile seit fünf Jahren in der Lehre, und fast alles, was ich weiß, habe ich von Kathy gelernt ... Und machen Sie sich keine Gedanken wegen meiner Mutter. Sie wird in meinem nächsten Von Kopf bis Fuß-Buch eine dicke Widmung erhalten. Ich liebe dich, Mama!
Von Kathy und BertHui, war das schmierig, Bryan. (Nicht dass Kathy Schmeicheleien nicht gefallen wür-den.) Was deine Verlobte betrifft, hast du natürlich recht. Aber wirklich vermisst kann sie dich kaum haben, wo sie doch den ganzen Sommer unterwegs war und Ultimate gespielt hat, während wir wie die Bienen an unseren Powerbooks gearbeitet haben. Aber du hast das zu einer sehr lohnenden Erfahrung gemacht und bist mit Sicherheit der beste Koau-tor,1 den wir je hatten! Schon fast erschreckend, wie ruhig und zufrieden du jederzeit bist.
Alle gemeinsam danken wir dem fleißigen Zertifizierungsteam bei Sun, insbesondere der Zertifizierungsmanagerin für Java, Evelyn Cartagena, und alle den Menschen, die dabei mitgeholfen haben, die JSRs für die Servlet- und JSP-Spezifikationen zu entwickeln.