|
Inhaltsverzeichnis |
6 |
|
|
Einleitung |
10 |
|
|
Open Source |
12 |
|
|
1.1 Definition |
13 |
|
|
1.2 Vor- und Nachteile der Lizenzen |
14 |
|
|
1.3 Projektsammlungen |
15 |
|
|
1.4 Java Open Source-Projekte |
16 |
|
|
1.5 Das Jakarta-Projekt |
18 |
|
|
Entwicklungsumgebungen |
20 |
|
|
2.1 Integrierte Entwicklungsumgebung (IDE) |
22 |
|
|
2.1.1 Emacs/XEmacs |
22 |
|
|
2.1.2 jEdit Java Programmers Editor |
23 |
|
|
2.1.3 Netbeans/Sun Forte for Java |
28 |
|
|
2.2 Versions-/Releasemanagement-System |
47 |
|
|
2.3 Eclipse |
54 |
|
|
2.3.1 Ein neues Java-Projekt |
56 |
|
|
2.3.2 Navigation |
59 |
|
|
2.3.3 Versionsmanagement |
60 |
|
|
2.3.4 Refactoring |
62 |
|
|
2.3.5 Sinnvolle Plug-Ins |
66 |
|
|
2.4 Automatische Build-Umgebung |
67 |
|
|
2.4.1 ANT-Syntax |
69 |
|
|
2.4.2 Installation und Verwendung |
71 |
|
|
2.4.3 Integration in IDE-Umgebungen |
72 |
|
|
2.5 Fazit |
76 |
|
|
Basisfunktionalitäten |
78 |
|
|
3.1 Logging |
79 |
|
|
3.1.1 Log4J-Architektur |
81 |
|
|
3.1.2 Installation |
82 |
|
|
3.1.3 Logging-Kategorien |
83 |
|
|
3.1.4 Appender und Layouter |
85 |
|
|
3.1.5 Konfiguration |
86 |
|
|
3.1.6 Beispiel |
88 |
|
|
3.1.7 Fazit |
92 |
|
|
3.2 Persistenz-Werkzeuge |
93 |
|
|
3.2.1 Exolab Castor JDO |
94 |
|
|
3.2.2 Vergleich JDBC/Castor JDO |
96 |
|
|
3.2.3 Fazit |
113 |
|
|
3.3 XML |
114 |
|
|
3.3.1 XML-Parser |
114 |
|
|
3.3.2 SAX API |
115 |
|
|
3.3.3 DOM API |
120 |
|
|
3.3.4 JDOM API |
123 |
|
|
3.3.5 Fazit |
125 |
|
|
3.4 Jakarta Commons |
125 |
|
|
3.4.1 Jakarta Commons Collections |
128 |
|
|
3.4.2 Reflection in Action: Commons BeanUtils |
150 |
|
|
3.4.3 Validator-Framework |
167 |
|
|
3.4.4 Fazit |
183 |
|
|
Webschicht |
184 |
|
|
4.1 JavaServer Pages |
186 |
|
|
4.1.1 Einführung in JavaServer Pages |
187 |
|
|
4.1.2 JSP-Syntax |
199 |
|
|
4.1.3 Custom Tags |
222 |
|
|
4.1.4 Das Jakarta TagLibs-Projekt |
232 |
|
|
4.2 Jakarta Struts |
245 |
|
|
4.2.1 Das MVC-Paradigma |
248 |
|
|
4.2.2 Überblick über das Struts-Framework |
249 |
|
|
4.2.3 Mit Formularen Daten erfassen |
256 |
|
|
4.2.4 Daten mittels Actions verarbeiten |
266 |
|
|
4.2.5 Darstellung von Daten mit JSPs |
272 |
|
|
4.2.6 Exceptionhandling in Struts |
289 |
|
|
4.2.7 Dynamische ActionForms |
293 |
|
|
4.2.8 Validierung von ActionForms |
297 |
|
|
4.2.9 Das Tiles-Framework |
304 |
|
|
4.3 Jakarta Velocity |
322 |
|
|
4.3.1 Überblick über Velocity |
323 |
|
|
4.3.2 Die Java-Seite von Velocity |
326 |
|
|
4.3.3 Velocity-Vorlagen mit VTL erstellen |
336 |
|
|
4.4 Fazit |
343 |
|
|
Serverumgebungen/Technologien |
344 |
|
|
5.1 Überblick J2EE-Architektur |
345 |
|
|
5.2 Container |
347 |
|
|
5.2.1 Servlet/JSP-Container |
347 |
|
|
5.2.2 Installation |
348 |
|
|
5.2.3 Manager- und Admin-Anwendung |
351 |
|
|
5.2.4 Webanwendungen |
358 |
|
|
5.2.5 Servlet API |
359 |
|
|
5.3 Enterprise JavaBeans Container |
360 |
|
|
5.3.1 Jboss-Architektur |
362 |
|
|
5.3.2 Installation |
363 |
|
|
5.3.3 Enterprise JavaBeans |
366 |
|
|
5.3.4 SessionBeans |
367 |
|
|
5.3.5 Entity Beans |
376 |
|
|
5.3.6 Message Driven Beans |
387 |
|
|
5.4 Web Services |
397 |
|
|
5.4.1 SOAP |
399 |
|
|
5.4.2 Konfiguration/Laufzeitumgebung |
402 |
|
|
5.4.3 Beispiel |
405 |
|
|
5.4.4 Fazit |
415 |
|
|
Fallstudie |
416 |
|
|
6.1 Das Szenario |
418 |
|
|
6.2 Die Anforderungen |
419 |
|
|
6.3 Einschränkungen und Randbedingungen |
420 |
|
|
6.4 Die Anwendungsfälle |
420 |
|
|
6.4.1 Anwendungsfälle der einzelnen Akteure |
421 |
|
|
6.4.2 Verfeinerung der Anwendungsfälle |
421 |
|
|
6.4.3 Die zusätzlichen Anwendungsfälle |
423 |
|
|
6.4.4 Beschreibung der Anwendungsfälle |
424 |
|
|
6.4.5 Entwicklung eines Sequenzdiagramms am Beispiel »Bücher kaufen« |
426 |
|
|
6.5 Open Source und UML |
429 |
|
|
6.5.1 Übersicht über ArgoUML |
430 |
|
|
6.6 Verwendete Open Source-Projekte |
434 |
|
|
6.7 Das Design |
436 |
|
|
6.7.1 Die Basiskomponenten der Anwendung |
436 |
|
|
6.7.2 Flexible Persistenz dank Castor |
437 |
|
|
6.8 Die Struts-Komponenten |
438 |
|
|
6.8.1 Dynamische ActionForms als DTOs |
438 |
|
|
6.8.2 Funktion mit der DispatchAction zusammenfassen |
441 |
|
|
6.8.3 Vom Anwendungsfall zur Action |
444 |
|
|
6.9 Werbebanner mit Jakarta ECS |
446 |
|
|
6.9.1 Aufbau und Funktionsweise des Werbeservlets |
449 |
|
|
6.9.2 ECS und Velocity im Vergleich |
451 |
|
|
6.10 Logging mit Log4J |
452 |
|
|
6.10.1 Aufbau der Logging-Komponente |
452 |
|
|
6.10.2 Die Implementierung |
454 |
|
|
6.11 Komfortables Property-Management mit ExtendedProperties |
461 |
|
|
6.12 Der MailService |
467 |
|
|
6.12.1 Aufbau des MailServices |
468 |
|
|
6.12.2 Erzeugen und Senden von E-Mails mit JavaMail und Velocity |
469 |
|
|
6.12.3 Konfiguration des MailServices |
482 |
|
|
6.12.4 Installation und Konfiguration von James |
483 |
|
|
6.13 Persistenz |
485 |
|
|
6.13.1 Aufbau des Persistenzdienstes |
486 |
|
|
6.13.2 Implementierung mit JDBC |
491 |
|
|
6.13.3 Implementierung mit Castor |
509 |
|
|
6.13.4 Konfiguration des DAOService |
520 |
|
|
6.14 Fazit |
523 |
|
|
Weiterführende Themen |
524 |
|
|
7.1 PDF-Generierung |
525 |
|
|
7.2 Reporterstellung |
530 |
|
|
7.3 Portale |
532 |
|
|
Inhalt der CD (nicht im eBook enhtalten, auf Anfrage) |
536 |
|
|
Stichwortverzeichnis |
538 |
|
|
15 Fragen an die Autoren |
546 |
|
|
Die Autoren über sich |
552 |
|