Java Server Faces

Java Server Faces is een raamwerk dat je een hoop werk uit je handen neemt.
Bij mijn allereerste webapplicatie (dateert van 2005) schreef ik alles nog zelf : de Java Server Pages, de servlet die alle paginaovergangen voor zijn rekening nam. Met JSF kan je de paginaovergangen in XML voorzien.
En als je gebruik maakt van MyEclipse, een extensie voor Eclipse, dan krijg je de mogelijkheid om de JSF pagina's te tekenen. En ook de faces-config.xml, het bestand dat de paginaovergangen definieert, kan je tekenen.

En dus kies ik ervoor om voor JSF te gaan. Als dit werkt voor Engelbert, dan ga ik mijn ganse webapplicatie van gertcuppens.org herschrijven en zoveel mogelijk met JSF maken.

Mijn werkmiddelen zijn :

  • Java 1.6.0
  • Tomcat 6.0
  • MySQL 5.0
  • Eclipse
  • MyEclipse

hypertext transfer protocol

bierviltjeCristal.gif

Om het belang van JSF te begrijpen, beschrijf ik hier kort de voorgeschiedenis van Java webapplicaties.
De allereerste webapplicaties waren volledig geschreven aan de hand van servlets. Een servlet is een Javaklasse die op de hoogte is van het HTTP protocol. HTTP staat voor hypertext transfer protocol. Het is een statenloos protocol, wat betekent dat je enkel een communicatie van van request - response of vraag en antwoord. Je vraagt een bepaalde webpagina aan de webserver, die zoekt de pagina op en daarna wordt de communicatie afgesloten. De webserver heeft dus een zeer kort geheugen.
Voor een gewone webstek is hier geen enkel probleem. Als je pakweg op de webstek van een krant een bepaald artikel opvraagt, moet de webserver enkel de gevraagde pagina ophalen en weergeven. Onthouden wie welke pagina heeft opgevraagd heeft geen enkel belang. Je kan dit nog het beste vergelijken met het bestellen van een biertje op café. Je bestelt een biertje, de kelner geeft je het biertje, rekent af en moet verder niet onthouden met wie hij nog moet afrekenen.

winkelwagentje.jpg

Dit verhaal wordt echter heel anders als je kijkt hoe je boeken kan bestellen bij amazon.com of een andere webwinkel. Hier ben je in feite niets met het statenloze protocol dat http is. Op iedere webwinkel werkt men met het concept van het winkelwagentje of de "shopping cart". En net zoals in een gewone winkel wandelt de klant van de webwinkel langs de uitgestalde waren (in dit geval uitgestald op een webpagina), maakt een keuze en legt dan het gekozen artikel in het winkelwagentje. Hier moet de webserver dus heel goed onthouden wat welke gebruiker gekozen heeft en in het winkelkarretje heeft liggen. De bezoeker van de webwinkel is er niet mee gediend als de webserver niets onthoudt van zijn/haar keuze en er niets in het virtuele winkelkarretje ligt. Of erger nog, als de waren van klant 1 plots opduiken in het winkelwagentje van klant 2 op het moment van afrekening.
Hiervoor maakt men gebruik van de sessies. Iedere gebruiker die zich aanmeldt bij een webwinkel, meldt zich aan met zijn/haar gebruikersnaam. Op dat moment start de webserver een sessie. In de praktijk wordt er een klein bestandje, "cookie" genaamd, op de PC van de gebruiker gezet. Bij iedere communicatie met de webserver zorgt dit bestandje of "cookie" ervoor dat de webserver weet welke gebruiker er wat heeft gevraagd.

Nu even terug naar de servlets : zoals gezegd waren dit Javaklassen met kennis van het hypertext transfer protocol. Deze servlets produceerden HTML-code als output en het is deze output die als webpagina werd doorgestuurd als antwoord op de aanvraag van de internet browser op de PC van de webstekbezoeker.

van statisch naar dynamisch

koppelingen

Verder informatie kan je vinden op volgende webpagina's.
Javapedia over JSF

page_revision: 12, last_edited: 1237036863|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License