Follow Us on Twitter

JDeveloper for NewBees - deel 4

Welkom in de wereld van Struts

December 2002 - In deze laatste aflevering van het Whitebook over JDeveloper gaan we in op Struts, een Model-View-Controller (MVC) implementatie dat Servlets (2.2) en Java Server Pages (1.1) tags gebruikt. Struts helpt je om complexe JSP applicaties op een gecontroleerde wijze te ontwikkelen èn om wijzigingen gecontroleerd door te voeren. Zoals in de vorige aflevering van deze Whitebook is beschreven ontkoppelt MVC de bedrijfs logica van de gegevens.

Bij het bouwen van een JSP applicatie kom je als HTML ontwikkelaar een groot aantal issues tegen waaronder kleuren, de pagina layout, browser compatibiliteit, het creëren van images, Java Script, en meer. Het opbouwen van een mooie website is erg veel werk, en veel Java ontwikkelaars zijn meer geïnteresseerd in het opzetten van een goede object interface dan een gebruikers interface. De Java Server Pages (JSP) technologie verbindt de wereld van de HTML ontwikkelaar met de wereld van de Java ontwikkelaar.

Onze Java experts nemen je in deze aflevering mee naar het Struts framework. Lees de vorige aflevering van deze Whitebook voor meer informatie over JSP's en het scheiden van de Java en HTML code.

Model-View-Controller (MVC)

Het MVC model is een zogenaamde design pattern waarin applicatie- en presentatie logica wordt gescheiden. MVC verdeelt een applicatie in de volgende 3 categorieën:

  • Model
    Het model bevat de actuele data van de applicatie en daarmee ook de applicatiestatus voor de betreffende sessie. 
  • View
    De view is de presentatie van de actuele data (de inhoud van het model). Het is het gezicht van de applicatie. De view heeft toegang tot de data van model (get) maar kan de data niet zelf wijzigen (set).
  • Controller
    De controller reageert op de input van de gebruikers en stuurt de communicatie tussen de view en het model. Alle wijzigingen op de actuele data verlopen via het controller.

Het MVC pattern kunnen we nu ook toepassen in een JSP omgeving, hetgeen in onderstaande figuur wordt weergegeven. Onderstaand model is een aangepaste versie van het originele MVC model en wordt ook wel MVC Model 2 genoemd.

Figuur 1: MVC Model 2

Figuur 1: MVC Model 2

Struts, een MVC 2 implementatie

Struts is een geheel van classes, servlets, en JSP tags dat een herbruikbaar MVC 2 ontwerp vormt. Dit betekent dat Struts meer een raamwerk (framework) is dat een library, alhoewel Struts ook een uitgebreide tag library bevat alsmede utility classes die onafhankelijk van het framework kunnen worden gebruikt.  Struts maakt deel uit van de Apache Software Foundation en sluit uitstekend aan bij het J2EE framework. Het Struts framework kan eenvoudig in een willekeurige Java web engine geplaatst worden zoals Apache Tomcat, maar past ook uitstekend in Oracle9iAS (OC4J).

In onderstaande figuur wordt een overzicht gegeven van Struts.

Figuur 2: Overzicht van Struts

Figuur 2: Overzicht van Struts

Struts bestaat uit de volgende onderdelen:

  • Client browser
    Een HTTP request afkomstig van een client browser creëert een event waarop uiteindelijk met een HTTP response wordt gereageerd.
  • Controller
    De Controller ontvangt het request van de browser, en beslist waar het verzoek naar toe moet worden gezonden - m.a.w. welk object geactiveerd moet worden. In Struts is de Controller als servlet geïmplementeerd. De Controller wordt geconfigureerd met de struts-config.xml file.
  • Business logic
    De business logic heeft betrekking op de objecten die de bedrijfsgegevens ontvangen en verwerken. Na verwerking worden de bewerkte gegevens doorgegeven aan het model. 
  • Model state
    Het model bevat de actuele data en bevat de applicatiestatus.
  • View
    De view is een (eenvoudige) JSP file zonder flow logic, business logic, en model informatie - alleen maar JSP tags. 

Struts neemt ontwikkelaars veel (codeer)werk uit handen en geeft ze houvast bij het implementeren en beheren van een JSP/Java applicatie.

Conclusie

Struts lost een aantal belangrijke Java ontwikkeling problemen met tags en MVC. Deze aanpak richt zich op hergebruik van code en flexibiliteit. Door het opsplitsen van de code in kleine componenten is hergebruik sneller mogelijk en kunnen wijzigingen eenvoudiger worden doorgevoerd. Tevens maakt Struts het mogelijk voor HTML en Java ontwikkelaars om zich te richten op die zaken waar ze echt goed in zijn. Echter deze verbetering in robuustheid vertaalt zich in een toename in in complexiteit. Struts is complexer dan een eenvoudig, enkele JSP pagina. Struts helpt met name om de complexiteit van grote systemen beter beheersbaar te maken.

Tevens wil je natuurlijk niet je eigen MVC implementatie schrijven. Ook al gebruik je Struts niet, toch is het bestuderen van het Struts framework zonder meer leerzaam om JSP en servlets beter te begrijpen en hoe je deze technologie het beste kan inzetten voor je volgende web applicatie.

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.