enib cours cai web - séance 3 - jsp/servlet - tp
Post on 22-May-2015
670 Views
Preview:
TRANSCRIPT
TD - Servlet / JSP
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
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
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)
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
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
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
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
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
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 ;)
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
CloudBee(r)s
top related