[Rezension] Programming Jakarta Struts (Java-Webapplikationen)

Christian Fein

Erfahrenes Mitglied
jakarta.s.gif


Die Java Servlet / JSP Technologie ist sehr umfangreich und nicht allzu leicht zu beherrschen. Gerade bei größeren Projekten ist eine sinnvolle Umsetzung des MVC (Modell - View - Controller Pattern) sehr wichtig und sinnvoll.
Die Lösung bestand das viele Firmen die ihre Brötchen mit der Entwicklung von J2EE-Webapplikationen sich Frameworks gebastelt haben die einen viel Arbeit abnehmen.

Jakarta, die Apache-Java Abteilung, hat mit Struts ein OpenSource Projekt entwickelt das MVC sehr gut und deutlich umsetzt. Struts hat sich über die Jahre zu einer absoluten Referenzimplementierung gemausert und hat sich vom "Geheimtipp" zum Standardframework entwickelt.

Der Verlag OReilly ist u.a bekannt für seine vielen weiterführende Java Bücher. So war es nicht verwunderlich das auch für Struts ein Werk in diesem Verlag erschien.
OReilly's deutsche Bücher sind zumeist Übersetzungen des englischen Orginalwerkes, wobei
meist die Übersetzung ebenso von Fachmännern/frauen durchgeführt wird.
Da ich das Buch nur im englischen Original gelesen habe, kann ich hier nichts zu der Übersetzung, dieses Buches sagen.

Code:
1. Introduction 
      A Brief History of the Web 
      What Are Java Servlets? 
      JavaServer Pages 
      JSP Model 1 and Model 2 Architectures 
      Why Is Model-View-Controller So Important? 
      What Is a Framework? 
      Creation of the Struts Framework 
      Alternatives to Struts
Kapitel 1.
Eine nicht ganz so ausführliche Einweisung in Servlet/JSP Programmierung und eine Einweisung in MVC und deren Vorteile.
Mann sollte sich Servlet Programmierung vor dem Durcharbeiten dieses Buches mit einem anderen Werk anlernen. Die Einweisung in diesem Buch ist nicht dazu geeignet Neulingen das für Struts benötigte Hintergrundwissen zu vermitteln. Als Auffrischung der Kenntnisse ist es jedoch gut geeignet.
MVC wird geschichtlich aufgearbeitet, und die Vorteile deutlich aufgezeigt.
Die Einleitung zu Struts vermittelt einen schon recht deutlich was denn genau Struts ist und wo es einen helfen kann, seine Arbeit schneller und leichter durchzuführen.

Code:
2. Inside the Web Tier 
      An Architecture Overview 
      The HTTP Request/Response Phase 
      Struts and Scope 
      Using URL Parameters 
      Forward Versus Redirec
2. Kapitel
Dieses Kapitel ist als Ergänzung zum 1. Kapitel, insbesondere mit Blick auf die Struts Anfordernisse und Umsetzung zu verstehen. Es vermittelt das benötigte Grundwissen um zu verstehen, weshalb Struts funktioniert.

Code:
3. Overview of the Struts Framework 
      A Banking Account Example 
      Looking at the Big Picture 
      Struts Controller Components 
      Struts Model Components 
      Struts View Components 
      Multiple Application Support 
      Summary
3.Kapitel
Ein erstes Beispiel zeigt auf wie eine Strutsapplikation aufgebaut ist. Dies gelingt dem Kapitel recht gut. Das Kapitel ist dennoch recht theoretisch und vermittelt eher Hintergrundwissen als richtige HOWTOS.


Code:
4. Configuring Struts Applications 
 _ _ _The Storefront Application 
 _ _ _What Is a Web Application? 
 _ _ _The Web Application Directory Structure 
 _ _ _The Web Application Deployment Descriptor 
 _ _ _Configuring the web.xml File for Struts 
 _ _ _The Struts Configuration File 
 _ _ _The org.apache.struts.config Package 
 _ _ _The Digester Component 
 _ _ _The Struts Console Tool 
 _ _ _Reloading the Configuration Files
4.Kapitel
Hier geht es dann ans Eingemachte. Die Storefront Application ist eine recht umfangreiche Webapplikation die viele Aspekte von
Struts aufzeigt und mann praktisch damit üben kann. Nachdem mann dieses Kapitel durchgeabeitet hat ist mann schon in der Lage mit Struts zu arbeiten. Wer jedoch mehr wissen will wird in den nächsten Kapiteln dazu genügend Information bekommen

Code:
5. Struts Controller Components 
 _ _ _The Controller Mechanism 
 _ _ _The Utilities Classes 
6. Struts Model Components 
 _ _ _The "M" in MVC 
 _ _ _What Is a Business Object? 
 _ _ _Persistence 
 _ _ _What Does Struts Offer for the Model? 
 _ _ _Building the Storefront Model 


7. Struts View Components 
 _ _ _What Is a View? 
 _ _ _What Are ActionForms? 
 _ _ _Using ActionErrors 
 _ _ _Performing Presentation Validation 
 _ _ _Using the DynaActionForm Class 
 _ _ _Looking Ahead to JavaServer Faces
5. Kapitel
In den vorhergegangenen Kapiteln wurde einem eine Übersicht über
MVC und deren Implementierung anhand des Beispiels Storefront Application gegeben. MVC (Modell – View – Controller) wird nochmals sehr detailiert beschrieben. Im 5. Kapitel wird das C, der Controller, von MVC untersucht.
6. Kapitel
In diesem Kapitel folgt die Theorie über das Modell.
7. Kapitel
Die View wird hier untersucht.


Code:
8. JSP Custom Tag Libraries 
 _ _ _Custom Tags Overview 
 _ _ _Tag Libraries Included with Struts 
 _ _ _Using JavaBeans with Struts Tags 
 _ _ _Struts HTML Tags 
 _ _ _Logic Tags 
 _ _ _Bean Tags 
 _ _ _Template Tags 
 _ _ _Nested Tags 
 _ _ _Other Useful Tag Libraries 
 _ _ _The JSP Standard Tag Library (JSTL)

8.Kapitel
Wenn einen eine Aussage über die View in den vorhergegangenen Kapitel eingebleut wurde, so ist es die Aussage das die View sowenig wie möglich Logic implementiern sollte. Somit ist auch Javacode in einer JSP nicht ein guter Stil, falls es sich vermeiden lässt. Ein Weg um dies zu vermeiden sind die Tags um Javabeans auszulesen, zu setzen und ähnlichem. Struts bietet aber vieles das weiter hinausgeht, wie z.b Interationalisierung. In diesem Kapitel werden somit nicht nur die Standard Tag Library beschrieben sondern eben auch die durch Struts hinzugefügten Tags, wie HTML / Logic / Template und Nested Tags.

Code:
9. Extending the Struts Framework 
 _ _ _What Are Extension Points? 
 _ _ _General Extension Points 
 _ _ _Controller Extension Points 
 _ _ _Extending View Components 
 _ _ _Extending Model Components 
 _ _ _Downsides to Extending the Framework

9.Kapitel
Keine Software ist gut genug das der Punkt der Erweiterbarkeit vernachlässigbar ist, so werden die Möglichkeiten Struts zu erweitern in diesem Kapitel beschrieben.

Code:
10. Exception Handling 
 _ _ _Java Exception Handling 
 _ _ _System Versus Application Exceptions 
 _ _ _Using Chained Exceptions 
 _ _ _Exception Handling Provided by Struts 
 _ _ _Tying Up the Loose Ends 
 _ _ _Conclusion
10.Kapitel
Java bietet einen ein ausgeklügeltes ExceptionHandling. In einer Webapplikation gelten aber extra Regeln, gerade auch beim ExceptionHandling und was bei GUI Applicationen gut ist, muss es bei Webapplikationen nicht sein. Dieses Kapitel bietet einen Ansatzpunkte einer produktiven Fehlerbehandlung.

Code:
11. The Validator Framework 
 _ _ _The Need for a Validation Framework 
 _ _ _Installing and Configuring the Validator 
 _ _ _Using an ActionForm with the Validator 
 _ _ _Creating Your Own Validation Rules 
 _ _ _The Validator and JSP Custom Tags 
 _ _ _Internationalizing the Validation 
 _ _ _Using the Validator Outside of Struts
11.Kapitel
Angabenüberprüfung von HMTL-Formularen ist einer der größeren und umfangreicheren Aufgaben jedes Webprogrammierers. Das Validator Framework bietet einen viele Erleichterrung bei dieser Aufgabe. Wie mann einen Validator einsetzt wird einem in diesem Kapitel gezeigt.

Code:
12. Internationalization and Struts 
 _ _ _What Is Internationalization? 
 _ _ _Support for I18N in Java 
 _ _ _Internationalizing Your Struts Applications 
 _ _ _Exception Handling and Internationalization
12.Kapitel
Webapplikationen sind weltweit abrufbar und sollten dementsprechend auch so programmiert werden. Jedoch ist die Interationalisierung (Abkürzung: I18N heisst I+18 Buchstaben (im englischen) +N) eine sehr Aufwendige Arbeit. Java bietet die Möglichkeit der Interationalisierung, und Struts hat dies ihrem Framework angepasst.

Code:
13. Struts and Enterprise JavaBeans 
 _ _ _Implementing the Storefront Service Using EJB 
 _ _ _Interfacing Struts to EJB 
 _ _ _Conclusion
Enterprise JavaBeans sind eine Technologie der Serverseitigen wiederverwenbaren Komponenten, die eine starke Skaalierbarkeit gewährleisten. J2EE setzt dort an wo CGI/PHP aufhören und sollte dementsprechend auch für Skaalierungsanforderungen gewappnet sein. Ein Buch über ein J2EE Framework muss dies Berücksichtigen und zeigt hier die Integration von Struts zu EJBs.
Dieses Kapitel sollte ausgelassen werden wenn einen EJBs nicht genläufig sind.

Code:
14. Using Tiles 
 _ _ _Understanding Templates 
 _ _ _Installing and Configuring Tiles 
 _ _ _Overview of Tiles 
 _ _ _The Tiles Tag Library 
 _ _ _Using Definitions 
 _ _ _Internationalization Support with Tiles

14.Kapitel
Tiles, mehr nur als ein TemplateSystem ist umfrangreich genug für ein eigenes Buch. Dennoch wird einem in diesem Kapitel ein guter Einblick gewährt, der für meinen Geschmack etwas zu dünn ausfällt.

Code:
15. Logging in a Struts Application 
 _ _ _Logging in a Web Application 
 _ _ _Using the Servlet Container for Logging 
 _ _ _Jakarta Commons Logging 
 _ _ _Using the log4j Package 
 _ _ _Using Commons Logging in JSP Pages 
 _ _ _The Performance Impact of log4j 
 _ _ _Third-Party log4j Extensions 
 _ _ _Java 1.4 Logging API
15.Kapitel
Das Debuggen von Webapplikation ist oftmals um einiges Schwierieger als von „normalen“ Applikationen. Besonders dann wenn sich diese schon auf dem Server befindet und mann nur die Möglichkeit hat über den JPDA remote zu debuggen. Um so wichtiger ist es schon beim Entwickeln darauf zu achten, aussagekräftig zu loggen. In diesem Kapitel werden die verschiedenen Möglichkeiten des Loggings beschrieben. So einerseits die des Servletcontainers (hier Tomcat) als auch Tools von 3.

Code:
16. Packaging Your Struts Application 
 _ _ _To Package or Not to Package 
 _ _ _Deciding How to Package Your Application 
 _ _ _Packaging the Application as a WAR File 
 _ _ _Building Your Struts Applications with Ant 
 _ _ _Creating an Automated Build Environment 
 _ _ _Restarting Your Server Remotely
16.Kapitel
Im Gegensatz zu CGI und PHP Webapplikationen ist das Aufspielen, ausliefern bei J2EE Applikationen etwas umfangreicher. Zwar sind WAR Files eine grosse Hilfe, aber oftmals muss mann sich dennoch mit z.b ANT herumschlagen. Jedoch wer erwaretet hier eine gute umfangreiche Einführung in ANT zu bekommen, den muss ich entäuschen. ANT ist mittlerweile so komplex geworden das es hier nur angeschnitten werden konnte. Wer mehr zu ANT wissen will, dem empfehle ich: Ant – Addison-Wesley Verlag ISBN 3-8273-2066-6

Code:
17. Addressing Performance 
 _ _ _What Is Good Performance? 
 _ _ _Performance Versus Load Testing 
 _ _ _Performance- and Stress-Testing Tools 
 _ _ _Performance and Scalability Gotchas 
 _ _ _Testing the Storefront Application

17.Kapitel
Die beste Webapplikation ist nicht viel Wert wenn der Server permanent in die Knie gezwungen wird. Viel Zeit und Geld geht oft dabei drauf, den sogenannten Flaschenhals zu finden. In diesem Kapitel werden einen deshalb einige Tools vorgestellt die einem schon während der Entwicklung helfen können diesem Problem aus dem Weg zu gehen.

Abschliessen kann ich nur sagen, das ich nachdem ich mit einem anderen Struts Buch sehr alleine gelassen wurde, mit meinen Problemen, ich hier trotz der Englischen Sprache, und meinen eingerosteten Englischkentnissen immer einen Kompetenten Berater im Bezug auf Struts, mit diesem Buch gefunden habe.
Das Buch ist geeignet für denjenigen der sich intensiv mit Struts beschäftigen will.
Es ist letztendlich geeignet für Entwickler. Für Manager / Entscheider die sich nur einen überblick verschaffen wollen, ist dieses Buch zu umfangreich.
Der Preis ist mit 44 €, wie in dieser Sparte leider alltäglich, recht happig, aber im Vergleich zu Konkurrenzbüchern angemessen.

Author: Chuck Cavaness
First Edition November 2002
ISBN 0-596-00328-5
Seiten 462
EUR 44.00, SFR72.90

Direkte Bestellmöglichkeit in unserem Shop: Programming Jakarta Struts
 
Zurück