- Free Documents

publicité
EISTI Examen Java EE
h Aucun document autoris
NOM PRENOM PLACE GROUPE TD
Q cycle de vie dun servlet points
Donnez le diagramme dtat reprsentant le cycle de vie dun servlet dans son conteneur.
Q redirection vs. forward points
Un servlet peut appeler une JSP avec une redirection
response.sendRedirectquotmyJSP.jspquot ou avec un forward RequestDispatcher
jspresquest.getRequestDispatcherquotmyJSP.jspquot jsp.forwardrequest,response
Expliquez puis montrez sur un exemple concret la diffrence entre lutilisation de ces deux
mcanismes vous pourrez vous appuyer sur des diagrammes de squence faisant intervenir le
client, le servlet et la JSP, pour tayer votre rponse. Forward Cest une action effectue de
manire interne la servlet dans son conteneur. Le navigateur du client nest jamais mis au
courant des changements effectus. Ainsi lURL du navigateur ne change pas. Si le navigateur
client actualise la page, la requte initiale sera rpte, avec lURL originale.
Redirect Cest un processus en tapes. Aprs avoir reu la premire requte, le Servlet envoi au
navigateur client une demande de redirection vers une autre URL quil effectue. Si le
navigateur client actualise la page, la requte initiale ne sera pas rpte. Au contraire cest la
nouvelle URL qui sera recharge. Les Objets/Beans placs dans le request Scope initial ne
seront plus disponible dans la seconde requte. La redirection est toujours plus lente quun
forward, car il ncessite une seconde requte du navigateur client.
Exemple Les Forward doivent tre utiliss si lopration peut tre rpte lorsque lon recharge la
page. Sinon il faut utiliser un redirect. Par exemple, si lopration modifie une base de donne,
alors il faut utiliser un redirect.
Q QCM points
Entourez la ou les bonnes rponses seulement la lettre. Quelles sont les mthodes utilises par
un servlet pour grer les donnes envoyes par un client via un formulaire HTML A.
HttpServlet.doHead B. HttpServlet.doPost C. HttpServlet.doForm D. ServletRequest.doGet
E. ServletRequest.doPost F. ServletRequest.doForm Comment un dveloppeur gretil la
mthode service de son servlet, lorsque ce dernier tend HttpServlet A. Il redfinit la mthode
service. B. Il redfinit une mthode doXXX par ex. goGet ou doPost. C. Il appelle la mthode
service depuis une mthode doXXX par ex. doGet ou doPost. D. Il appelle la mthode service
depuis la mthode init. E. Il na rien faire
Sur quels types dobjets peuton utiliser les mthodes getAttribute et setAttribute A.
HttpSession B. ServletRequest C. ServletResponse D. ServletContext E. ServletConfig F.
SessionConfig Soit le code suivant lthtmlgt ltbodygt Le chiffre deviner est lt Math.randomgt
lt/bodygt lt/htmlgt Quaffiche cette JSP la suite de Le chiffre deviner est A. Un nombre
alatoire. B. lt Math.random gt C. out.printlnquotMath.random quot D. Elle naffiche rien il
manque le dans gt pas de dans ce tag.
Parmi les balises suivantes quelles sont celles que lon peut utiliser dans une JSP pour
afficher la valeur dune expression Java sur la sortie A. lt B. lt C. lt D. lt E. lt gt gt lt out.println
gt gt gt gt
Note Il manque les sur la balise fermante. Soit le code de la JSP test.jsp suivant lthtmlgt
ltheadgtlttitlegtA Comment Testlt/titlegtlt/headgt ltbodygt lthgtA Test of Commentslt/hgt lt This
is Html Hidden Comment gt lt This is JSP Hidden Comment gt lt/bodygt lt/htmlgt
A lexcution de test.jsp, devinez quel sera la sortie correspondante A. La ligne sera insre
dans la rponse mais pas la ligne . B. Les lignes et seront insres dans la rponse. C. Les lignes
et ne seront pas insres dans la rponse. D. La ligne sera insre dans la rponse mais pas la
ligne . Quelles sontest les EL valables qui permettent de retourner la property nom du bean
Etudiant ayant pour scope la session A. Etudiant.nom B. Etudiant.getNom C.
sessionScope.Etudiantquotnomquot D. sessionquotEtudiantquot.nom Quaffiche le code
suivant
ltcforEach stepquotquot beginquotquot endquotquot varStatusquotstatusquotgt ltcif
testquotstatus.firstquotgtlt/cifgt status.index, ltcif testquotstatus.lastquotgtlt/cifgt lt/cforEachgt
A. ,,,, B. ,,, C. ,,,, D. ,, E. ,,,,,,
Q MVC points
On considre lapplication MVC que nous avons tudie en cours AREL V .. Cette application
permet lutilisateur de slectionner une promotion pour afficher la liste des tudiants
correspondante. Voici les fichiers sources de cette application index.html
ltDOCTYPE html PUBLIC quot//WC//DTD HTML . Transitional//ENquot
quothttp//www.w.org/TR/html/loose.dtdquotgt lthtmlgt ltheadgt ltmeta
httpequivquotContentTypequot contentquottext/html charsetISOquotgt lttitlegtAREL V.lt/titlegt
lt/headgt ltbodygt lth alignquotcenterquotgtAREL Lcole virtuelle de lEISTIlt/hgt ltform
methodquotGETquot actionquotselectpromoquotgtSlectionner la promo afficher ltselect
namequotpromoquot sizequotquotgt ltoptiongtinglt/optiongt ltoptiongtinglt/optiongt
lt/selectgtltinput typequotSUBMITquot /gtlt/formgt lt/bodygt lt/htmlgt
arel/SelectPromo.java
package arel import java.io.IOException import java.util.List import import import import
javax.servlet.RequestDispatcher javax.servlet.ServletException
javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse
public class SelectPromo extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet protected void doGetHttpServletRequest request, HttpServletResponse
response throws ServletException, IOException String promoName
request.getParameterquotpromoquot Promo promo new Promo ListltStringgt result
promo.getPromopromoName request.setAttributequotpromoquot, result RequestDispatcher
view request.getRequestDispatcherquotresult.jspquot view.forwardrequest, response
arel/Promo.java
package arel import java.util.ArrayList import java.util.List public class Promo public
ListltStringgt getPromoString promo ListltStringgt promoList new ArrayListltStringgt if
promo.equalsquotingquot promoList.addquotDonald Duckquot promoList.addquotMinnie
Mousequot promoList.addquotPlutoquot //... else if promo.equalsquotingquot
promoList.addquotMickey Mousequot promoList.addquotDaisy Duckquot
promoList.addquotGoofyquot //... else return null return promoList
result.jsp
lt page importquotjava.util.quotgt lt page languagequotjavaquot contentTypequottext/html
charsetISOquot pageEncodingquotISOquotgt ltDOCTYPE html PUBLIC quot//WC//DTD
HTML . Transitional//ENquot quothttp//www.w.org/TR/html/loose.dtdquotgt lthtmlgt ltheadgt
ltmeta httpequivquotContentTypequot contentquottext/html charsetISOquotgt
lttitlegtResultlt/titlegt lt/headgt ltbodygt lt ListltStringgt promoList
ListltStringgtrequest.getAttributequotpromoquot Iterator it promoList.iterator whileit.hasNext
out.printquotltbr /gtquot it.next gt lt/bodygt lt/htmlgt
Compltez le descripteur de dploiement suivant en fonction des liens et autres nommages
exprims dans les fichiers sources donns cidessus.
web.xml
ltxml versionquot.quot encodingquotUTFquotgt ltwebapp
xmlnsxsiquothttp//www.w.org//XMLSchemainstancequot
xmlnsquothttp//java.sun.com/xml/ns/javaeequot
xmlnswebquothttp//java.sun.com/xml/ns/javaee/webapp.xsdquot
xsischemaLocationquothttp//java.sun.com/xml/ns/javaee
http//java.sun.com/xml/ns/javaee/webapp.xsdquot idquotWebAppIDquot versionquot.quotgt
ltdisplaynamegtMVClt/displaynamegt ltservletgt ltservletnamegt X lt/servletnamegt
ltservletclassgt
arel.SelectPromo
lt/servletclassgt
lt/servletgt ltservletmappinggt ltservletnamegt X lturlpatterngt
lt/servletnamegt lt/urlpatterngt
/selectpromo
lt/servletmappinggt lt/webappgt
Avec X quelconque, mais identique pour les ltservletname /gt
On dsire modifier lapplication pour afficher la liste rsultat dans la mme page que celle du
formulaire initial. Loption choisie est de remplacer le formulaire HTML index.html par une
JSP index.jsp servant la fois de formulaire de dpart et de vue dans lapplication MVC pour
afficher le rsultat en dessous du formulaire.
index.jsp
lt page importquotjava.util.quot gt lt page languagequotjavaquot contentTypequottext/html
charsetISOquot pageEncodingquotISOquotgt ltDOCTYPE html PUBLIC quot//WC//DTD
HTML . Transitional//ENquot quothttp//www.w.org/TR/html/loose.dtdquotgt lthtmlgt ltheadgt
ltmeta httpequivquotContentTypequot contentquottext/html charsetISOquotgt lttitlegtAREL
V.lt/titlegt lt/headgt ltbodygt lth alignquotcenterquotgtAREL Lcole virtuelle de lEISTIlt/hgt
ltform methodquotGETquot actionquotselectpromoquotgtSlectionner la promo afficher
ltselect namequotpromoquot sizequotquotgt ltoptiongtinglt/optiongt ltoptiongtinglt/optiongt
lt/selectgtltinput typequotSUBMITquot /gtlt/formgt lthgtListe des tudiants lt/hgt lt ListltStringgt
promoList ListltStringgtrequest.getAttributequotpromoquot Iterator it promoList.iterator
whileit.hasNext out.printquotltbr /gtquot it.next gt lt/bodygt lt/htmlgt
Que fautil modifier pour que index.jsp devienne la vue dans notre application MVC Donnez
les fichiers et les nouvelles instructions
arel/SelectPromo.java
RequestDispatcher view request.getRequestDispatcherquotindex.jspquot
Lorsque lon tente daccder la JSP index.jsp, une erreur survient. Trouvez cette erreur et
corrigez la.
Au premier lancement d index.jsp, lattribut promo nexiste pas dans le requestScope. Il faut
donc tester sil nest pas null. possibilits pour corriger cette erreur Ajouter un test de nullit
lt ListltStringgt promoList ListltStringgtrequest.getAttributequotpromoquot ifpromoListnull
Iterator it promoList.iterator whileit.hasNext out.printquotltbr /gtquot it.next gt
Ou bien avec les JSTL Ajouter dans les dclarations de la JSP
lt taglib prefixquotcquot uriquothttp//java.sun.com/jsp/jstl/corequot gt
Puis modifier le scriptlet lt gt en
ltcforEach varquotXquot itemsquotpromoquotgt ltbr /gtX lt/cforEachgt
Avec X quelconque. LEL promo peut aussi sexprimer requestScope.promo ou bien
requestScopequotpromoquot
Téléchargement