helloworld:web:java:servlet
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
helloworld:web:java:servlet [2015/08/09 20:42] – Remplace out par PrintWriter out = response.getWriter (); root | helloworld: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 '' |
- | + | ||
- | «»ûFö¦G78·O£ObÞ1Úˤ½nÙ | + | <WRAP center round info 60%> |
- | ÅÛ ä' | + | Tous les exemples ci-dessous utilisent le [[helloworld: |
- | «³ûF¸Èùñ4úôhÀÀÁã¨]3IOz)Ür | + | </ |
- | ÉÏ÷su»m}nÒºý!Iz)Ü;÷ý¶7=]äìªu{&Iy)ÜÅ5gmÍé¦n{jÝúüö"(>$$ÿ³ | + | |
- | t»UëöÛ¼®É
â, | + | =====Cycle de vie===== |
- | ]æÌF0pè8jÇä2éQ/ y xütqh{ºåCÑCÛ8ÿà¥ð#]P¼MH 9ÝWvO£O8Úµs4ÉKa!@q±\@\Ë~«í9DÛóÏ^ | + | {{: |
- | ?ùwk{þÌe{Zu+Ú@vBñV!ùñ*³}qh¨CòR¸d? | + | |
- | ×lâ | + | [[http:// |
- | Bò£Äç²=¹I ¹ û 8OH~JÇ7sÓèÓË2gÿÅKa>ä)zÎv3¿ÍÖk$_6ÖKá6O¡8GH~² | + | |
- | r°ÓèÓ]ß+5r4ÎKánÃPü©ü×*W¢áCr÷R¸ä+(þLHT@Ü
.Ë,×Üò-«<>rFÃÑÈM¢±^ÙÀù´Â# | + | |
- | ¿_´TËsîUe¤q2åHéQDnÉÆqueñâ->ú¨Üÿýòé§Úç|o4nLIBJ? | + | =====Création du projet===== |
- | )ÒÙº%OtsÖísHi"ÇB·äº ÛyZÎñHi"Ð-ù ¤q£åôq>æ"º%? | + | Nécessite un projet de type [[ide: |
- | òÉùW¤ôKD¾ | + | |
- | Ý\ÓkAäÛÐÍ\3rFÃÑÈM¢±^ù@Ç¡ÉHé DNnÉ/£¹æí·O# | + | {{: |
- | Ý_¬ØØfý!cÙ | + | |
+ | La création d'une servlet crée automatiquement un fichier '' | ||
+ | |||
+ | Si un message de type '' | ||
+ | <code bash> | ||
+ | cd / | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | =====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 ("/ | ||
+ | public class Servlet extends HttpServlet | ||
+ | { | ||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | response.setCharacterEncoding (" | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | response.setContentType (" | ||
+ | |||
+ | out.println ("<!DOCTYPE html PUBLIC \" | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | if (15 % 2 == 0) | ||
+ | | ||
+ | out.print ("15 est un nombre pair."); | ||
+ | } | ||
+ | else | ||
+ | | ||
+ | out.print ("15 est un nombre impair." | ||
+ | } | ||
+ | out.println | ||
+ | | ||
+ | { | ||
+ | case 0: | ||
+ | out.print ("16 est un nombre pair."); | ||
+ | break; | ||
+ | default: | ||
+ | out.print ("16 est un nombre impair." | ||
+ | break; | ||
+ | | ||
+ | out.println | ||
+ | out.println | ||
+ | out.println | ||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | * response) | ||
+ | */ | ||
+ | protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | doGet (request, response); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Rendu : | ||
+ | < | ||
+ | 15 est un nombre impair. | ||
+ | 16 est un nombre pair. | ||
+ | </ | ||
+ | |||
+ | =====Exemple 2 - Utilisation d'un Bean===== | ||
+ | |||
+ | Le Bean utilisé est celui d'une [[helloworld: | ||
+ | |||
+ | <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 ("/ | ||
+ | public class Servlet2 extends HttpServlet | ||
+ | { | ||
+ | /** | ||
+ | * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse | ||
+ | | ||
+ | */ | ||
+ | protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | response.setCharacterEncoding (" | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | response.setContentType (" | ||
+ | |||
+ | out.println ("<!DOCTYPE html PUBLIC | ||
+ | | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | BeanPersonne perso1 = new BeanPersonne (); | ||
+ | perso1.setTaille (170); | ||
+ | perso1.setYeuxBleus (true); | ||
+ | BeanPersonne perso2 = new BeanPersonne (); | ||
+ | perso2.setTaille (160); | ||
+ | perso2.setYeuxBleus (false); | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | if (!perso1.isYeuxBleus ()) | ||
+ | | ||
+ | out.print (" | ||
+ | } | ||
+ | else | ||
+ | | ||
+ | out.print (" | ||
+ | } | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | if (!perso2.isYeuxBleus ()) | ||
+ | { | ||
+ | out.print (" | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | out.print (" | ||
+ | } | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | doGet (request, response); | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Rendu : | ||
+ | < | ||
+ | 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. | ||
+ | </ | ||
+ | |||
+ | =====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 ("/ | ||
+ | public class Servlet3 extends HttpServlet | ||
+ | { | ||
+ | @Override | ||
+ | public void init (ServletConfig config) throws ServletException | ||
+ | { | ||
+ | BeanPersonne pers = new BeanPersonne (); | ||
+ | |||
+ | pers.setTaille (123); | ||
+ | config.getServletContext ().setAttribute (" | ||
+ | |||
+ | super.init (config); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | response.setCharacterEncoding (" | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | BeanPersonne pers = new BeanPersonne (); | ||
+ | |||
+ | request.getSession (true).setAttribute (" | ||
+ | |||
+ | response.setContentType (" | ||
+ | |||
+ | out.println ("<!DOCTYPE html PUBLIC \" | ||
+ | out.println ("<html>" | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | | ||
+ | | ||
+ | | ||
+ | BeanPersonne persApp = (BeanPersonne) getServletContext ().getAttribute (" | ||
+ | BeanPersonne persLoc = (BeanPersonne) request.getSession (true).getAttribute (" | ||
+ | persLoc.setTaille (Integer.parseInt (request.getParameter (" | ||
+ | |||
+ | response.setContentType (" | ||
+ | |||
+ | out.println ("< | ||
+ | | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | out.println | ||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Rendu du formulaire : | ||
+ | {{: | ||
+ | Rendu de la réponse : | ||
+ | < | ||
+ | Valeur par défaut du bean application : 123. | ||
+ | Valeur saisie du bean local : 153 | ||
+ | </ | ||
+ | |||
+ | =====Exemple 3b - avec validation des données===== | ||
+ | Dans le cas d'une '' | ||
+ | |||
+ | =====Exemple 4 - context-param et init-param===== | ||
+ | Ajout de 3 '' | ||
+ | <file xml web.xml> | ||
+ | <?xml version=" | ||
+ | <web-app xmlns: | ||
+ | xmlns=" | ||
+ | xsi: | ||
+ | version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | … | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <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 | ||
+ | public class Servlet4 extends HttpServlet | ||
+ | { | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | response.setCharacterEncoding (" | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | response.setContentType (" | ||
+ | |||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | | ||
+ | out.println ("< | ||
+ | | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | out.println ("nom : " + getServletContext ().getInitParameter (" | ||
+ | out.println ("pass : " + getServletContext ().getInitParameter (" | ||
+ | out.println (" | ||
+ | out.println ("nom2 : " + getInitParameter (" | ||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | doGet (request, response); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Rendu : | ||
+ | < | ||
+ | nom : utilisateur | ||
+ | pass : mot de passe | ||
+ | driver : com.mysql.jdbc.Driver | ||
+ | nom2 : utilisateurServlet | ||
+ | </ | ||
+ | |||
+ | =====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 ("/ | ||
+ | public class Servlet5 extends HttpServlet | ||
+ | { | ||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | | ||
+ | */ | ||
+ | protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | response.setCharacterEncoding ("UTF-8"); | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | String value = getCookie (request.getCookies (), " | ||
+ | response.setContentType (" | ||
+ | int compteur = 0; | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("</ | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | if (value == null) | ||
+ | { | ||
+ | out.println ("Pas de cookie, allez cuisiner !!!" | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | compteur = Integer.parseInt (value); | ||
+ | out.println (" | ||
+ | } | ||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | compteur++; | ||
+ | Cookie c = new Cookie (" | ||
+ | c.setMaxAge (3600); | ||
+ | response.addCookie (c); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse | ||
+ | | ||
+ | */ | ||
+ | protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | { | ||
+ | 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; | ||
+ | { | ||
+ | if (cookieName.equalsIgnoreCase (cookies[i].getName ())) | ||
+ | { | ||
+ | return cookies[i].getValue (); | ||
+ | } | ||
+ | } | ||
+ | return null; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Rendu 1 : | ||
+ | < | ||
+ | Pas de cookie, allez cuisiner !!! | ||
+ | </ | ||
+ | |||
+ | Rendu 2 : | ||
+ | < | ||
+ | compteur : 1 | ||
+ | </ | ||
+ | |||
+ | =====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: | ||
+ | |||
+ | <file java Liste6.java> | ||
+ | package com.llgc; | ||
+ | |||
+ | import java.util.LinkedList; | ||
+ | import java.util.List; | ||
+ | |||
+ | @ManagedBean | ||
+ | public class Liste6 | ||
+ | { | ||
+ | public static List < | ||
+ | { | ||
+ | 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 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("/ | ||
+ | public class Servlet6 extends HttpServlet { | ||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | */ | ||
+ | protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | response.setCharacterEncoding (" | ||
+ | PrintWriter out = response.getWriter (); | ||
+ | response.setContentType (" | ||
+ | |||
+ | List < | ||
+ | |||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | out.println ("< | ||
+ | | ||
+ | | ||
+ | out.println ("< | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | out.println | ||
+ | out.println (" | ||
+ | |||
+ | for (BeanPersonne beanPersonne : liste) | ||
+ | { | ||
+ | out.println (" | ||
+ | out.println (" | ||
+ | | ||
+ | out.println (" | ||
+ | } | ||
+ | out.println (" | ||
+ | |||
+ | out.println (" | ||
+ | out.println ("</ | ||
+ | out.println ("</ | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @see HttpServlet# | ||
+ | */ | ||
+ | protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, | ||
+ | doGet(request, | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Rendu : | ||
+ | {{: |
helloworld/web/java/servlet.1439145770.txt.gz · Dernière modification : 2015/08/09 20:42 de root