ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

12
TD - Servlet / JSP

Transcript of ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Page 1: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

TD - Servlet / JSP

Page 2: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Import du projetSous Eclipse

● Importer le projet - servlet-alone○ context root : servlet-alone○ content directory : web○ ne pas générer le deployement descriptor web.xml

● Lancer le tomcat sous Eclipse○ project○ run/as - run on server○ configurer le server Tomcat 6 avec le port 8080○ vérifier que le serveur est lancé http://127.0.0.1:8080/servlet-alone/beer

Page 3: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Les Pojos● Pojo Beer avec les attributs suivants :

○ String name; ○ String brewery;○ String country;○ double alcohol;

● Pojo Bar avec les attributs suivants :○ Beer beer○ int stock

Page 4: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

BusinessLa classe BarBusiness permet d'effectuer les actions sur le bar :

● ajouter une bière (newBeer)

● supprimer une bière (removeBeer)

● obtenir la liste des bières (getBeers)

● obtenir le stocke du bar (getBar)

● mettre des bière en stocke (checkinBeer)

● sortir une bière du stocke (checkoutBeer)

Page 5: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BeerServlet ● Mapping {web app context}/beer voir web.xml

<servlet>... <servlet-name>BeerServlet</servlet-name> <servlet-class>fr.enib.cai.servlet.BeerServlet</servlet-class> </servlet> ... <servlet-mapping> <servlet-name>BeerServlet</servlet-name> <url-pattern>/beer/*</url-pattern> </servlet-mapping>

● GETRenvoie la liste de bières dans la page /WEB-INF/views/beer.jsp

● POST○ sur l'url {web app context}/beer/add ajoute une bière et retourne le flux

JSON de la bière ajoutée. {"name":"1664","brewery":"Kronenbourg","country":"France","alcohol":5.5,"id":3}

○ sur l'url {web app context}/beer/delete supprime une bière et retourne le flux JSON de la bière supprimée

○ sinon affiche la page /WEB-INF/views/404.jsp

Page 6: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BarServlet ● Mapping {web app context}/beer voir web.xml

<servlet>... <servlet-name>BarServlet</servlet-name> <servlet-class>fr.enib.cai.servlet.BarServlet</servlet-class> </servlet> ... <servlet-mapping> <servlet-name>BarServlet</servlet-name> <url-pattern>/bar/*</url-pattern> </servlet-mapping>

● GET et POST qui renvoient Hello Enib

Page 7: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BarServlet Methode Get ● Méthode idempotent

1. Récupérer le bar avec la méthode getBar (liste de BeerStock)

2. Ajouter l'attribut "bar" à la request avec comme object la collection de BeerStock

3. Forwarder la requête à la jsp privée /WEB-INF/views/bar.jsp

Le résultat peut être consulté à l'URL suivante :http://127.0.0.1:8080/{context}/bar

Page 8: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BarServlet Methode Post checkInBeer ● Méthode non-idempotent

Le bouton + dans la page web) génére l'url suivante (utilisation de la methode POST):

http://127.0.0.1:8080/{context}/bar/checkInBeeravec le paramètre id=2

le paramètre ID corresponds à l'identifiant de la bière.

L'execution de cette méthode POST doit● ajouter une bière dans le stock● ajouter l'attribut beerStock à la requête● forwarder à la jsp bar-json.jsp

Cette jsp produit le json suivante {id=3,stock=12}

Actionner le bouton + doit ajouter une bière dans le stock et mettre à jour la page Web

Page 9: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BarServlet Methode Post checkOutBeer ● Méthode non-idempotent

Le bouton + dans la page web) génére l'url suivante (utilisation de la methode POST):

http://127.0.0.1:8080/{context}/bar/checkOutBeeravec le paramètre id=2

le paramètre ID corresponds à l'identifiant de la bière.

L'execution de cette méthode POST doit● retirer une bière dans le stock● ajouter l'attribut beerStock à la requête● forwarder à la jsp bar-json.jsp

Cette jsp produit le json suivante {id=3,stock=12}

Actionner le bouton - doit retirer une bière dans le stock et mettre à jour la page Web

Page 10: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Servlet BarServlet Extra (pour ceux qui s'ennuient)

Le bouton + et - ouvre un lightwindow permettant de choisir le nombre de bières à ajouter ou retirer du stock.

La jsp beer.jsp a un formulaire caché addbeer

La lightbox est gérer avec Bootstrap

Le formulaire est envoyé en Ajax avec la methode de JQuery ajaxForm

Bonne chance ;)

Page 11: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

Tomcat Beer

● Produire le war (sous Eclipse)○ File->export->web->War

■ nom du war servlet-alone.war

Option (pour ceux qui s'ennuient...)

● Deployer le war dans le Tomcat○ copier le war dans /opt/apache-tomcat-6.X.X/webapps/

● Démarrer le Tomcat○ /opt/apache-tomcat-6.X.X/bin/startup.sh

■ port d'écoute définit dans le server.xml (connector)■ les logs (catalina.out) sont riches d'information

● Arrêter le Tomcat○ /opt/apache-tomcat-6.X.XX/bin/shutdown.sh

Page 12: ENIB cours CAI Web - Séance 3 - JSP/Servlet - TP

CloudBee(r)s