Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Vierde jaar Netwerken IV Labo's Struts

Labo Struts

In dit labo ontwikkelen we een webapplicatie gebruik makend van het Struts 2-framework. Deze applicatie biedt de mogelijkheid om kunstwerken te zoeken op basis van een kunstenaar en/of een museum. Bovendien kan een geregistreerde uitlener ook kunstwerken reserveren om te toon te stellen. Een aantal screenshots geven een idee van de te ontwikkelen applicatie.

De datalaag voor deze applicatie is reeds ontwikkeld.

Datalaag

De datalaag bestaat uit een aantal algemene interfaces en klassen, die gebundeld zijn in de bibliotheek museaBo.jar. Deze interfaces heb je nodig in je applicatie en behoren tot het pakket be.hogent.iii.musea.bo. Bekijk dit pakket dan ook eens grondig.

De interfaces uit de datalaag worden geïmplementeerd door een tweede bibliotheek museaBoJdbc.jar. De implementatieklassen mag je NIET gebruiken in je applicatie, behalve in configuratiebestanden.

Zorg ervoor dat beide bibliotheken op de juiste plaats staan.

Interfaces

Het pakket be.hogent.iii.musea.bo bevat de volgende interfaces en klasse:

  • MuseumExceptie: wordt gegooid als er een fout optreedt.
  • Kunstenaar: stelt een kunstenaar voor.
  • Museum: stelt een museum voor.
  • Kunstwerk: stelt een kunstwerk voor.
  • KunstwerkenBeheer: stelt de interface voor die methodes bevat om kunstenaars op te halen, om musea op te halen, om een kunstwerk te reserveren, om kunstwerken op te zoeken, ...
Je vindt deze interfaces in het jar-bestand museaBo.jar. Al de nodige informatie ivm de uitwerking van de interfaces kan je vinden in de bijgeleverde javadocdirectory.

De code van de te ontwikkelen webapplicatie maakt alleen gebruik van dit pakket.

JDBC

Het pakket be.hogent.iii.musea.bo.jdbc bevat de jdbc-uitwerkingen van alle interfaces uit het vorig pakket.

  • JDBCMuseumExceptie: wordt gegooid als er een fout optreedt, afgeleide klasse van MuseumExceptie.
  • JDBCKunstenaar: implementatie van Kunstenaar.
  • JDBCMuseum: implementatie van Museum.
  • JDBCKunstwerk: implementatie van Kunstwerk.
  • JDBCKunstwerkenBeheer: implementatie van KunstwerkenBeheer.
Je vindt deze klassen in het jar-bestand museaBoJdbc.jar.

De klassen uit dit pakket mogen enkel voorkomen in de configuratie van de webapplicatie.

Databank

Deze applicatie maakt gebruik van een gegevensbank met de volgende structuur.

De kolommen startdatum en einddatum van de tabel uitleningen zijn van het type timestamp. Alle andere kolommen zijn van het type string. De kolommen in vetjes vormen de primaire sleutels van de verschillende tabellen.

Elke kunstenaar en elk museum wordt gekenmerkt door een unieke identificatie en een naam. Een kunstwerk heeft ook een unieke identificatie, een titel, een url die verwijst naar een foto van het kunstwerk, een referentie naar de kunstenaar die het werk maakte en het museum waar het werk tentoongesteld wordt. Instanties die kunstwerken kunnen uitlenen hebben een naam, een unieke loginnaam voor de webapplicatie en een bijhorend wachtwoord. Het uitlenen van kunstwerken wordt bepaald door een start- en einddatum, de identificatie van het kunstwerk en de unieke login van de uitlener.

Opzetten gegevensbank

De implementatie van de interfaces uit de datalaag maakt gebruik van een gegevensbank. Als gegevensbanksysteem gebruiken we Java DB. Dit gegevensbanksysteem is ingebed in Netbeans. Voer de volgende stappen uit om de gegevensbank aan te maken en te initialiseren.

  1. Maak een gegevensbank aan:
    • Open het tabblad Services (Window --> Services)
    • Verander in het properties-paneel van Java DB (onder Databases) de eigenschap Java DB Installation in /opt/jdk1.6.0_16/db
    • Maak een nieuwe gegevensbank aan (In Services: Databases --> Java DB; rechts klikken: Create Database) met de volgende gegevens
      • Database Name: kunstwerken
      • User Name: gast
      • Password: gast
  2. Maak de tabellen aan:
    • Open de verbinding met de gegevensbank. Klik rechts op jdbc:derby://localhost:1527/kunstwerken [gast on GAST] in het tabblad Services en kies Connect.
    • Open het bestand initDB.sql. Dit bestand bevat de SQL-opdrachten om de tabellen aan te maken. Selecteer bovenaan de "Connection": jdbc:derby://localhost:1527/kunstwerken[gast on GAST] en voer de opdrachten uit (eerste knop naast de keuzelijst voor "Connection").
    • Vul de tabellen op door de SQL-bestanden kunstenaars.sql, musea.sql, kunstwerken.sql en uitleners.sql.
  3. Normaal is het gegevensbanksysteem nu opgestart. Indien niet, klik rechts op Java DB in het Services-tabblad en selecteer Start Server. De server moet gestart zijn om je applicatie te kunnen testen.
  4. Via het tabblad Services kan je nu de inhoud van de tabellen bekijken. Kijk naar de tabel uitleners om de gebruikers te kennen.

JDBC-driver

Gebruik het volgende testprogramma om het opzetten van de datalaag te controleren. Maak daarvoor een nieuw project aan in NetBeans.

Voeg de JDBC-driver voor Java DB toe: in projects-view rechtsklikken op Libraries, kies Add Library en selecteer Java DB Driver. Vergeet ook niet de andere jars van de datalaag toe te voegen.

Webapplicatie

Maak voor de webapplicatie een nieuw webproject in Netbeans. De webapplicatie moet gestructureerd zijn volgens het MVC-principe, gebruik makend van Struts 2. De bibliotheken die je daarvoor nodig hebt, vind je hier.

Informatie

  • Struts tags
  • Struts tutorial
  • Een alternatieve manier om sessie- en applicatie-objecten te verkrijgen zonder gebruik te maken van het ActionContext-object, vind je hier voor sessies. Iets analoog bestaat ook voor het applicatie-object.

Startpagina

Zoals de onderstaande figuur illustreert kunnen in de webapplicatie kunstwerken gezocht worden. Als selectiecriteria kan de kunstenaar die het kunstwerk ontwierp of het museum dat het kunstwerk tentoonstelt opgegeven worden. Indien geen kunstenaar of museum geselecteerd wordt, dan worden alle kunstwerken weergegeven als resultaat.

Resultaat van de zoekactie

Als resultaat van de bovenstaande zoekactie wordt een webpagina getoond waarop alle geselecteerde kunstwerken getoond worden. Voor elke kunstwerk wordt de titel, de kunstenaar, het museum en een afbeelding getoond. Indien het kunstwerk vandaag uitgeleend is, dan wordt dit ook vermeld.

Is een geregistreerde uitlener ingelogd, dan kan hij/zij het schilderij ook reserveren voor een bepaalde periode.

Inloggen

Zowel de startpagina als de pagina met de kunstwerken voorzien een link om in te loggen. Als de gebruiker hierop klikt beland hij op de loginpagina. Ingelogde gebruikers kunnen zich afmelden.

Reserveren

Een kunstwerk kan voor een bepaalde periode gereserveerd worden. Deze periode wordt bepaald door een begin- en een einddatum. Enkel ingelogde gebruikers kunnen kunstwerken reserveren.

Indienen

  • Kopieer de mappen src en web naar U:/netwerken IV/Struts.
  • Ten laatste dinsdag 3 november om 8u15.

V. Ongenae 20/10/2009

Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet