cours j2ee -présentation

437 vues

Publié le

cours j2ee -présentation

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
437
Sur SlideShare
0
Issues des intégrations
0
Intégrations
11
Actions
Partages
0
Téléchargements
11
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

cours j2ee -présentation

  1. 1. 1 Développement WEB avec Java JSP/ Servlet /javaBean Fonctionnement du Web
  2. 2. 2
  3. 3. 3
  4. 4. 4 Construction d'une application Web Préparer une arborescence par exemple dans le répertoire SiteWebTP. A partir de la racine de cette arborescence placer correctement :  le répertoire WEB-INF  le répertoire classes où seront placées les servlets compilés  le fichier web.xml
  5. 5. 5 Le déploiement est une étape essentielle de la mise en place d’une application web. En effet, le serveur doit être capable de localiser les servlets et les JSP invoquées par le navigateur.
  6. 6. 6
  7. 7. 7
  8. 8. 8
  9. 9. 9 Application JSP/Servlet Lorsque l'utilisateur soumet ce formulaire, son nom est envoyé au servlet Hello parce nous avons mis l'attribut ACTION pointer vers le servlet. Le formulaire utilise la méthode Get, de sorte que toutes les données sont ajoutées (appended) à la requête URL comme une requête de chaîne. Par exemple, si l'utilisateur entre le nom "Inigo Montoya," la requête URL est http: //serveur: 8080 / servlet / Hello ? name = Inigo +Montoya .
  10. 10. 10 L'espace dans le nom est spécialement codé comme un signe plus par le navigateur (browser), car les URL ne peuvent pas contenir d'espaces Une servlet qui sait à qui dit Hello La méthode getServletInfo( ) donne des informations descriptives sur le servlet.
  11. 11. 11 JSP Traducteur sous forme Servlet (méthode Get) Import java.io.* ; Import javax.servlet.* ; Import javax.servlet.http.* ; public class traduire extends HttpServlet( // traiter la requête avec doGet( ) Public void doGet (HttpServletRequest req, HttpServletResponse rep) Throws IOException, ServletException(
  12. 12. 12 //Initialisation du type de la réponse rep.setContentType (text/html) // Ouverture du flux de la réponse http PrintWriter pw=rep.getWriter ( ) ; // Envoyer le code HTML sur le flux http pw.println (<html>) ; pw.println (<head>) ; pw.println (<title>Une servlet pour traduire </title> ) ; pw.println (</head>) ; pw.println (<body bgcolor=’white’>) ; // Vérifier si une phrase est transmise avec la requête If (req.getParameter (phrase) == null) { pw.println (<font size=+1>) ; pw.println (Je n’ai pas de phrase à traduire</font>) ; } else { //traiter la phrase fournie en paramètre String phrase = req.getParameter (phrase) ; phrase = phrase.replace (‘a’,’*’) ; phrase = phrase.replace (‘o’,’ !’) ; phrase = phrase.replace (‘e’,’%’) ; } pw.println (</body>) ; pw.println (</html>) ; } } Traducteur sous la forme d’un JSP <html> <head> <title> Un JSP pour traduire une phrase </title> </head>
  13. 13. 13 <%--debut de scriplet --%> <% <%--rechercher le paramètre phrase transmis avec la requête --%> String p= request.getParameter (phrase) ; if (p !=null) { <%-- si p ne vaut pas null, un paramètre est transmis le traiter --%> p = p.replace (‘a’,’*’) ; p = p.replace (‘o’,’ !’) ; p = p.replace (‘e’,’%’) ; %> <%-- fin du if, affichage à l’aide de balises HTML --%> <%-- affichage du contenu de p --%> <p> J’ai compris : <%=p%> </p> <%-- debut du else --%> <%-- si il n’y a pas de paramètre transmis p vaut null --%> } else { %> <%-- affichage à l’aide de balises HTML --%> <p> Erreur : vous avez oublié la phrase à traduire <BR> Exemple : http://localhost:8080/jsp/traduire.jsp?phrase=cours JSP LST IGI </p> <%-- fin de else, fin de la scriplet --%> <% }
  14. 14. 14 %> </body> </html> Traducteur avec javaBean // Un javabean doit être sérialisable pour être envoyer sur un flux Import java.io.Serializable public class phrase implements java.io.Serializable ( // Définition de la propriété de javaBean private string phrase ; // Définition de la méthode d’accès à la propriété, en modification // Cette méthode remplace les caractères de la propriété de l’objet Public void setphrase (string p) { Phrase=p ; phrase = phrase.replace (‘a’,’*’) ; phrase = phrase.replace (‘o’,’ !’) ; phrase = phrase.replace (‘e’,’%’) ; } // Définition de la méthode d’accès à la propriété, en consultation Public void getphrase ( ) { Return phrase ; } } Un JSP qui appelle le javaBean phrase <html>
  15. 15. 15 <head> <title> Java Bean pour traduire une phrase </title> </head> <body> <%--Utiliser phrase.class, comme JavaBean avec comme nom d’objet p --%> <jsp :useBean id=p class= phrase/> <%--Placer dans la propriété phrase de l’objet p --%> <%--la valeur du paramètre transmis avec la requête --%> <jsp :setProperty name=p property= phrase param= param /> <%--récupérer la valeur de la propriété de l’objet p --%> <BR> J’ai compris : <jsp :getProperty name=p property= phrase /> </body> </html>
  16. 16. 16 Application : Résultat d’une enquête Le servlet stocke les résultats d’une enquête concernant vos animaux de compagnie préférés sur le serveur. Lorsqu’un utilisateur répond à l’enquête, le servlet HTTPPostServlet envoie un document HTML au client qui résume les résultats de l’enquête jusqu’à ce stade. L’utilisateur choisit son animal préféré dans un bouton radio de la page Web de la figure puis appuie sur Soumettre. Le navigateur envoie une requête POST en HTTP au servlet; celui-ci réagit en lisant les résultats précédents de l’enquête dans un fichier sur le serveur, il met les résultats du sondage à jour, les réinscrit sur le fichier du serveur, et il envoie enfin une page Web au client qui lui indique les résultats cumulés de l’enquête.
  17. 17. 17
  18. 18. 18
  19. 19. 19 La méthode doPost commence par déterminer si le fichier sondage.txt existe sur le serveur. La ligne 18 définit un objet File nommé f dans ce but. Le programme ne fournit pas d’emplacement pour le fichier. Par défaut, les fichiers créés par un servlet exécuté par le WebServer JSDK sont stockés dans le répertoire d’installation du JSDK (jsdk2.1). Vous pouvez imposer l’emplacement de stockage du fichier au moment de la création de l’objet File. À la ligne 20, si le fichier existe, son contenu est lu par le servlet, de sorte que les résultats du sondage seront mis à jour et renvoyés au client en cours. Si le fichier n’existe pas, c’est-à-dire si la requête actuelle est la toute première réponse au sondage, la méthode doPost crée le fichier un peu plus loin dans le code.
  20. 20. 20 Le tableau d’entiers animaux stocke le nombre de réponses pour chaque type d’animal. Si le fichier qui contient les résultats précédents au sondage existe, alors les lignes 23 à 30 ouvrent un ObjectInputStream pour lire le tableau d’entiers animaux et totaliser le nombre de réponses qui ont été reçues jusqu’à cette étape. Lorsque le servlet crée le fichier et stocke le tableau d’entiers, il utilise un ObjectOutputStream pour écrire le fichier. La ligne 42 incrémente le total pour indiquer qu’il y a une réponse de plus au sondage. Les lignes 45 à 47 déterminent l’animal sélectionné par le client et mettent à jour le total de l’animal adéquat. Les lignes 50 à 55 ouvrent un ObjectOutputStream pour stocker les résultats mis à jour de l’enquête dans le fichier sondage.txt. Ce fichier garantit que, même si le servlet est interrompu et redémarré, les résultats du sondage demeurent sur disque. Les lignes 58 à 61 préparent le pourcentage du total des votes qui représentent chaque animal. Ces résultats sont renvoyés à l’utilisateur dans une partie de la HttpServletResponse. Nous préparons la réponse à partir de la ligne 64, où la méthode setContentType de ServletResponse spécifie que le contenu sera du texte d’un document HTML (text/html). La ligne 66 utilise la méthode getWriter de ServletResponse pour obtenir une référence à un objet PrintWriter et affecte celle-ci à sortieReponse. Cette référence sert à envoyer la réponse au client. Le StringBuffer tamp de la ligne 67 stocke le contenu de la réponse pendant que le servlet prépare le document HTML. Les lignes 68 à 86 préparent son contenu par une suite d’appels à la méthode append de StringBuffer.

×