Outils pour utilisateurs

Outils du site


helloworld:web:java:servlet

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
helloworld:web:java:servlet [2015/08/09 20:42] – Remplace out par PrintWriter out = response.getWriter (); roothelloworld:web:java:servlet [2020/05/11 00:22] (Version actuelle) – Suppression de la taille par défaut pour les images root
Ligne 1: Ligne 1:
-‰PNG +Un ''servlet'' utilise du code ''Java'' dans lequel est mis du code ''HTML'' ou ''XML''. Toutes les données de la page étant générées par la ''servlet'', il est possible de générer du ''HTML 4.01'' ou du ''HTML 5'' sans aucune difficulté. 
- + 
-ˆ«»ŒûFö¦G7—8·O£ObÞ1ŽÚ’ˤ‡½n +<WRAP center round info 60%> 
-Åۅä+Tous les exemples ci-dessous utilisent le [[helloworld:design_pattern:bean:java|BeanPersonne]]. 
-ˆ«³ŒûF¸Èùñ4úôhÀÀÁã¨]3—IOz)Ür Š +</WRAP> 
-ÉÏ÷s—u»m}nÒºý!—Iz)܈;÷ý¶7=]äìªu{&—Iy)Ü’ś5gmÍé¦n{jÝúüö "(>$$ÿ³ + 
-t»Uëö­Û¼®Ʌâ,!y\èv×4úôÖ÷çù¹Lú«—ÂoA~€â"!ùåâ.}÷õ¦G—8=Úo‡h¿à¥ðs(þBH~¶€¸‹–qߨÞô¸ùŽ ÑÐmžö[ŸnŸÐ1á()$ÿCûí(ýÖãkå2é)/…‡@N@ñ!yrq +=====Cycle de vie===== 
-]æÌ™FŸ›0pè8jÇä2éQy  x—ütqh{ºåCшCÛ8ÿà¥ð#]P¼MHž 9ݜWvO£OŸ 8ŽÚµs™4ÉKa!ˆ@q±œ\@\œË~›«í9DÛóÏ^ +{{:helloworld:web:java:servlet:cycle_de_vie_1.jpg|Cycle de vie 1}} {{:helloworld:web:java:servlet:cycle_de_vie_2.jpg|Cycle de vie 2}} 
-?ùŠwk{þÌe{Zu+ڞ›@vBñV!ùñ*˜³}qh¨ŽCòR¸d?,$ÿ¥€¸ÿ÷?`ÏÀÿ¸—½ ß@ñ~!ùïÄÕw9ÆGƒs›eÎ>£çìõ x“<¾€¸Z.ÏÙѐó§o·h{Þ©s°1^ + 
-ׂl‡â +[[http://javawebaction.blogspot.com/2011/07/what-is-java-servlet-life-cycle-and-how.html|What is Java Servlet Life Cycle and how to explain it]] {{ :helloworld:web:java:servlet:java_web_development_what_is_java_servlet_life_cycle_and_how_to_explain_it_2020-04-26_12_14_05_am_.html |Archive du 09/07/2011 le 27/04/2020}} 
-Bò£ĝç²=­¹IŒŽ ¹ û 8OH~JÇ7s“ÓèÓË2gÿÅKa>ˆŠ „ä)zÎv3¿ÍÖk$_6ÖKá6O¡8GH~² + 
-r°ÓèÓ]ß+5r™4ÎKánÃPü©ü×*˜W¢áCrŽ÷R¸ä+(þLHžT@܅.Ë,×Üò-’Ÿ«‚<>rFÞÑÈM¢±^ÙÀù´—Â# §¡ø[‡¹‡¢‘kæj¿j‰C»@Añ'U‡¢U«©î|Țßúüö(È(>.$¿R~kìYuö –›|r + 
-Š¿’_´™›TËsîU€Œe¤q2åHéQDއnɓ‘Æqueñ⒝->ú¨Üÿýò駟Úç|o€4n„LIBJ?Adoè–ü¤ñÅueñ¢8çÆ +=====Création du projet===== 
-‘)ÒÙº%Ots‰ÖísHi"ÇB·äº ÛyZÎñHi"žÐ-ù ¤q£åôq>†”æ"’º%?á‚n—Ztû-"E¡[ò .èv®–sRº‘ÜÐ-ùqt»b€4nŒLy)=È¡[ò+HãÆʹx€4¾™ò7¤4‘‚Ð-ùçhLˆ†n—hÝþ)ý‘£¡[òó.è6]ß+Ï#¥Eˆœݒÿågš¶ç_ÒÏ9º%ÿUÛӍØWqè]˼’‡È®Ð-9ÉÎ í·SÒRD$tKNvÁo­ö܇ȗ¡[ò$íù8RêAdgè–ü¤ º}_ËùRú"ûC·äg\3ö\d‰ñ_!òMè–üœ 1!œïXò¡lDv„nÉ\˜³£!çO%ÞÎ  SþŒ”nAd{è–ü˜ öôń‰:&ì ÝÊbB$œËõœýRú"ÞÐ-yŠ 1Á—ƒ=‰”îFäÓÐ-ù)ä\¨ï•gÒˆݒÿî½ +Nécessite un projet de type [[ide:eclipse:projet|Dynamic Web Project]]. Une fois le projet généré, il faut créer la servlet. Pour cela : ''File|New|Servlet'' et choisissez comme ''Superclass'' ''javax.servlet.http.HttpServlet''. Si la super classe n'est pas disponible, c'est que le ''Dynamic Web Project'' n'a pas été correctement créé. Ensuite cliquez sur ''Next|Next'' et demandez à implémenter les méthodes ''doGet'' et ''doPost'' en fonction des besoins. 
-òÉùW¤ôKD¾ + 
-Ý\‘ÓškAäÛÐ͕\3rFÞÑÈM¢±^ù@Ç¡ÉHé DN‡nÉ/£¹æí·O#¥_ r(tKþ›‹óguÖj¢‘Yý¶‘3¡›+~kìYuöL·ä&ňœ +{{:helloworld:web:java:servlet:1.png|Étape 1}}{{:helloworld:web:java:servlet:2.png|Étape 2}}{{:helloworld:web:java:servlet:3.png|Étape 3}}{{:helloworld:web:java:servlet:4.png|Étape 4}} 
-ݒ_¬ØžØfý!cÙ+ 
 +La création d'une servlet crée automatiquement un fichier ''web.xml''. 
 + 
 +Si un message de type ''IWAE0035I No servlets exist to add'' apparait sous Gentoo, il faut suivre les instructions de [[https://forums.gentoo.org/viewtopic-t-934004.html|www-servers/tomcat-7.0.29-r1 with Eclipse WST]] {{ :helloworld:web:java:servlet:gentoo_forums_view_topic_-_solved_www-servers_tomcat-7.0.29-r1_with_eclipse_wst_2020-04-26_12_11_16_am_.html |Archive du 20/08/2012 le 27/04/2020}}, à savoir : 
 +<code bash> 
 +cd /usr/share/tomcat-8/lib 
 +ln -s /usr/share/eclipse-ecj-4.4/lib/ecj.jar  
 +ln -s /usr/share/tomcat-servlet-api-3.1/lib/el-api.jar  
 +ln -s /usr/share/tomcat-servlet-api-3.1/lib/jsp-api.jar  
 +ln -s /usr/share/tomcat-servlet-api-3.1/lib/servlet-api.jar  
 +</code> 
 + 
 +=====Exemple 1 - La base===== 
 +<file java Servlet.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.OutputStreamWriter; 
 +import java.io.PrintWriter; 
 +import java.nio.charset.StandardCharsets; 
 + 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet 
 + */ 
 +@WebServlet ("/Servlet"
 +public class Servlet extends HttpServlet 
 +
 +  /** 
 +   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    response.setContentType ("text/html"); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  <p>"); 
 +    if (15 % 2 == 0) 
 +    { 
 +      out.print ("15 est un nombre pair.")
 +    } 
 +    else 
 +    { 
 +      out.print ("15 est un nombre impair."); 
 +    } 
 +    out.println (   <br />"); 
 +    switch (16 % 2) 
 +    { 
 +      case 0: 
 +        out.print ("16 est un nombre pair."); 
 +        break; 
 +      default: 
 +        out.print ("16 est un nombre impair."); 
 +        break; 
 +    } 
 +    out.println ( </p>"); 
 +    out.println ("</body>")
 +    out.println ("</html>")
 +  } 
 + 
 +  /** 
 +   @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
 +   *      response) 
 +   */ 
 +  protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    doGet (request, response); 
 +  } 
 +
 +</file> 
 +Rendu : 
 +<code> 
 +15 est un nombre impair.  
 +16 est un nombre pair. 
 +</code> 
 + 
 +=====Exemple 2 - Utilisation d'un Bean===== 
 + 
 +Le Bean utilisé est celui d'une [[helloworld:design_pattern:bean:java|personne]]. 
 + 
 +<file java Servlet2.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.OutputStreamWriter; 
 +import java.io.PrintWriter; 
 +import java.nio.charset.StandardCharsets; 
 + 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet2 
 + */ 
 +@WebServlet ("/Servlet2"
 +public class Servlet2 extends HttpServlet 
 +{ 
 +  /** 
 +   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    response.setContentType ("text/html"); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    BeanPersonne perso1 = new BeanPersonne (); 
 +    perso1.setTaille (170); 
 +    perso1.setYeuxBleus (true); 
 +    BeanPersonne perso2 = new BeanPersonne (); 
 +    perso2.setTaille (160); 
 +    perso2.setYeuxBleus (false); 
 +    out.println ("  <p>"); 
 +    out.println ("    La personne 1 possède une taille de " + perso1.getTaille () + " cm et"); 
 +    if (!perso1.isYeuxBleus ()) 
 +    { 
 +      out.print ("n'a pas"); 
 +    } 
 +    else 
 +    { 
 +      out.print ("a"); 
 +    } 
 +    out.println ("    les yeux bleus.<br />"); 
 +    out.println ("    La personne 2 possède une taille de " perso2.getTaille () + " cm et"); 
 +    if (!perso2.isYeuxBleus ()) 
 +    { 
 +      out.print ("n'a pas"); 
 +    } 
 +    else 
 +    { 
 +      out.print ("a"); 
 +    } 
 +    out.println ("    les yeux bleus."); 
 +    out.println ("  </p>"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +  } 
 + 
 +  /*
 +   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    doGet (request, response); 
 +  } 
 +
 +</file> 
 + 
 +Rendu : 
 +<code> 
 +La personne 1 possède une taille de 170 cm et a les yeux bleus. 
 +La personne 2 possède une taille de 160 cm et n'a pas les yeux bleus. 
 +</code> 
 + 
 +=====Exemple 3 - Formulaire avec Bean global et session===== 
 +<file java Servlet3.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.OutputStreamWriter; 
 +import java.io.PrintWriter; 
 +import java.nio.charset.StandardCharsets; 
 + 
 +import javax.servlet.ServletConfig; 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet3 
 + */ 
 +@WebServlet ("/Servlet3"
 +public class Servlet3 extends HttpServlet 
 +
 +  @Override 
 +  public void init (ServletConfig config) throws ServletException 
 +  { 
 +    BeanPersonne pers = new BeanPersonne (); 
 + 
 +    pers.setTaille (123); 
 +    config.getServletContext ().setAttribute ("beanApp"pers); 
 + 
 +    super.init (config); 
 +  } 
 + 
 +  /** 
 +   @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    BeanPersonne pers = new BeanPersonne (); 
 + 
 +    request.getSession (true).setAttribute ("beanSession", pers); 
 + 
 +    response.setContentType ("text/html"); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  <br />"); 
 +    out.println ("  <form method=\"post\" action=\"Servlet3\">"); 
 +    out.println ("    Taille : <input name=\"taille\" type=\"text\" /> <input type=\"submit\""); 
 +    out.println ("      value=\"Submit\" />"); 
 +    out.println ("  </form>"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +  } 
 + 
 +  /** 
 +   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out response.getWriter (); 
 +    BeanPersonne persApp = (BeanPersonne) getServletContext ().getAttribute ("beanApp"); 
 +    BeanPersonne persLoc = (BeanPersonne) request.getSession (true).getAttribute ("beanSession"); 
 +    persLoc.setTaille (Integer.parseInt (request.getParameter ("taille"))); 
 + 
 +    response.setContentType ("text/html"); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  Valeur par défaut du bean application : " persApp.getTaille () ".<br />"); 
 +    out.println ( Valeur saisie du bean local : " + persLoc.getTaille ()); 
 +    out.println ("  <br />"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +  } 
 +
 +</file> 
 +Rendu du formulaire : 
 +{{:helloworld:web:java:servlet:rendu_ex3.png|Rendu exemple 3}} 
 +Rendu de la réponse : 
 +<code> 
 +Valeur par défaut du bean application : 123. 
 +Valeur saisie du bean local : 153 
 +</code> 
 + 
 +=====Exemple 3b - avec validation des données===== 
 +Dans le cas d'une ''servlet''la vérification des données se fait dans la méthode ''doPost''. Le ''Javascript'' peut être utilisé en pré-traitement. 
 + 
 +=====Exemple 4 - context-param et init-param===== 
 +Ajout de 3 ''context-param''
 +<file xml web.xml> 
 +<?xml version="1.0" encoding="UTF-8"?> 
 +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 +  xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
 +  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
 +  version="3.1"> 
 +  <display-name>EL</display-name> 
 +  <servlet> 
 +    <servlet-name>Faces Servlet</servlet-name> 
 +    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
 +  </servlet> 
 +  <context-param> 
 +    <param-name>user</param-name> 
 +    <param-value>utilisateur</param-value> 
 +  </context-param> 
 +  <context-param> 
 +    <param-name>password</param-name> 
 +    <param-value>mot de passe</param-value> 
 +  </context-param> 
 +  <context-param> 
 +    <param-name>driver</param-name> 
 +    <param-value>com.mysql.jdbc.Driver</param-value> 
 +  </context-param> 
 +  … 
 +</web-app> 
 +</file> 
 + 
 +<file java Servlet4.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.OutputStreamWriter; 
 +import java.io.PrintWriter; 
 +import java.nio.charset.StandardCharsets; 
 + 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebInitParam; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet4 
 + */ 
 +@WebServlet (urlPatterns = "/Servlet4", initParams = { @WebInitParam (name = "user2", value = "utilisateurServlet") }) 
 +public class Servlet4 extends HttpServlet 
 +
 + 
 +  /** 
 +   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    response.setContentType ("text/html"); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>")
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  <p>"); 
 +    out.println ("nom : " + getServletContext ().getInitParameter ("user") + "<br />"); 
 +    out.println ("pass : " + getServletContext ().getInitParameter ("password") + "<br />"); 
 +    out.println ("driver : " + getServletContext ().getInitParameter ("driver") + "<br />"); 
 +    out.println ("nom2 : " + getInitParameter ("user2")); 
 +    out.println ("  </p>"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +  } 
 + 
 +  /** 
 +   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    doGet (request, response); 
 +  } 
 +
 +</file> 
 +Rendu : 
 +<code> 
 +nom : utilisateur 
 +pass : mot de passe 
 +driver : com.mysql.jdbc.Driver 
 +nom2 : utilisateurServlet 
 +</code> 
 + 
 +=====Exemple 5 Cookies===== 
 +<file java Servlet5.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.PrintWriter; 
 + 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.Cookie; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet5 
 + */ 
 +@WebServlet ("/Servlet5"
 +public class Servlet5 extends HttpServlet 
 +
 +  /** 
 +   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    String value = getCookie (request.getCookies (), "compteur"); 
 +    response.setContentType ("text/html"); 
 +    int compteur = 0; 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">")
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">")
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  <p>"); 
 +    if (value == null) 
 +    { 
 +      out.println ("Pas de cookie, allez cuisiner !!!"); 
 +    } 
 +    else 
 +    { 
 +      compteur = Integer.parseInt (value); 
 +      out.println ("compteur : " compteur); 
 +    } 
 +    out.println ("  </p>"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +    compteur++; 
 +    Cookie c = new Cookie ("compteur", "" + compteur); 
 +    c.setMaxAge (3600); 
 +    response.addCookie (c); 
 +  } 
 + 
 +  /** 
 +   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
 +        response) 
 +   */ 
 +  protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 +  { 
 +    doGet (request, response); 
 +  } 
 + 
 +  // Renvoie la valeur d'un cookie. 
 +  protected static String getCookie (Cookie[cookies, String cookieName) 
 +  { 
 +    if (cookies == null) 
 +    { 
 +      return null; 
 +    } 
 +    for (int i = 0; i < cookies.length; i++) 
 +    { 
 +      if (cookieName.equalsIgnoreCase (cookies[i].getName ())) 
 +      { 
 +        return cookies[i].getValue (); 
 +      } 
 +    } 
 +    return null; 
 +  } 
 +
 +</file> 
 + 
 +Rendu 1 : 
 +<code> 
 +Pas de cookie, allez cuisiner !!! 
 +</code> 
 + 
 +Rendu 2 : 
 +<code> 
 +compteur : 1 
 +</code> 
 + 
 +=====Exemple 6 Affichage d'une liste dans un tableau===== 
 +La liste est générée par une classe Java et affiche un type [[helloworld:design_pattern:bean:java#cas_general|BeanPersonne]]. 
 + 
 +<file java Liste6.java> 
 +package com.llgc; 
 + 
 +import java.util.LinkedList; 
 +import java.util.List; 
 + 
 +@ManagedBean 
 +public class Liste6 
 +
 +  public static List <BeanPersonne> getListePersonne () 
 +  { 
 +    LinkedList <BeanPersonne> liste = new LinkedList <> (); 
 +     
 +    BeanPersonne personne = new BeanPersonne (); 
 +    personne.setTaille (160); 
 +    personne.setYeuxBleus (true); 
 +    liste.add (personne); 
 +     
 +    personne = new BeanPersonne (); 
 +    personne.setTaille (170); 
 +    personne.setYeuxBleus (true); 
 +    liste.add (personne); 
 +     
 +    personne = new BeanPersonne (); 
 +    personne.setTaille (180); 
 +    personne.setYeuxBleus (false); 
 +    liste.add (personne); 
 +     
 +    return liste; 
 +  } 
 +
 +</file> 
 + 
 +<file java Servlet6.java> 
 +package com.llgc; 
 + 
 +import java.io.IOException; 
 +import java.io.PrintWriter; 
 +import java.util.List; 
 + 
 +import javax.servlet.ServletException; 
 +import javax.servlet.annotation.WebServlet; 
 +import javax.servlet.http.HttpServlet; 
 +import javax.servlet.http.HttpServletRequest; 
 +import javax.servlet.http.HttpServletResponse; 
 + 
 +/** 
 + * Servlet implementation class Servlet6 
 + */ 
 +@WebServlet("/Servlet6"
 +public class Servlet6 extends HttpServlet { 
 +  /** 
 +   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
 +   */ 
 +  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 +    response.setCharacterEncoding ("UTF-8"); 
 +    PrintWriter out = response.getWriter (); 
 +    response.setContentType ("text/html"); 
 +     
 +    List <BeanPersonne> liste = Liste6.getListePersonne (); 
 + 
 +    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\\"http://www.w3.org/TR/html4/loose.dtd\">"); 
 +    out.println ("<html>"); 
 +    out.println ("<head>"); 
 +    out.println ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
 +    out.println ("<title>Insert title here</title>"); 
 +    out.println ("</head>"); 
 +    out.println ("<body>"); 
 +    out.println ("  <p>"); 
 +    out.println ("    <table border=\"1\">"); 
 +    out.println ("      <tr>"); 
 +    out.println ("        <td>Taille</td>"); 
 +    out.println (       <td>Yeux bleus</td>"); 
 +    out.println ("      </tr>"); 
 +     
 +    for (BeanPersonne beanPersonne : liste) 
 +    { 
 +      out.println ("      <tr>"); 
 +      out.println ("        <td>" beanPersonne.getTaille () + "</td>"); 
 +      out.println ("        <td>" + beanPersonne.isYeuxBleus () + "</td>"); 
 +      out.println ("      </tr>"); 
 +    } 
 +    out.println ("    </table>"); 
 +     
 +    out.println ("  </p>"); 
 +    out.println ("</body>"); 
 +    out.println ("</html>"); 
 +
 + 
 + /** 
 + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
 + */ 
 + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 + doGet(request, response); 
 +
 + 
 +
 +</file> 
 + 
 +Rendu : 
 +{{:helloworld:web:java:servlet:rendu_ex6.png|Rendu exemple6}}
helloworld/web/java/servlet.1439145770.txt.gz · Dernière modification : 2015/08/09 20:42 de root