les servlets en java ee

5
Les servlets en Java EE 4 ième année – M. Messan – EPSIEL 2015 Définition : Composant web qui permet d’étendre les fonctionnalités d’un serveur web de manière portable et efficace. C’est une classe java qui gère le traitement des différentes requêtes http utilisateur soumises au serveur web. Quand le servlet reçoit une requête du client, elle génère une réponse en utilisant soit la logique métier ou en interrogeant une base de données. La réponse retournée est donc soit au format Html ou XML. Comment créer un servlet ? La création d’un servlet peut se faire de deux façons : Soit par implémentation de l’interface javax.servlet.Servlet Dans ce cas ci la méthode init() permet d’initialiser le Servlet .La méthode service() permet de recevoir et répondre aux différentes requêtes http envoyées par l’utilisateur. Le servlet peut également se créé par extension de la classe javax.servlet.http.HttpServlet qui implémente l’interface javax.servlet.Servlet précisé plus haut.

Upload: prince-ba

Post on 12-Nov-2015

5 views

Category:

Documents


1 download

DESCRIPTION

Les Servlets en Java 2E

TRANSCRIPT

  • Les servlets en Java EE 4ime anne M. Messan EPSIEL 2015 Dfinition : Composant web qui permet dtendre les fonctionnalits dun serveur web de manire portable et efficace. Cest une classe java qui gre le traitement des diffrentes requtes http utilisateur soumises au serveur web. Quand le servlet reoit une requte du client, elle gnre une rponse en utilisant soit la logique mtier ou en interrogeant une base de donnes. La rponse retourne est donc soit au format Html ou XML. Comment crer un servlet ? La cration dun servlet peut se faire de deux faons : - Soit par implmentation de linterface javax.servlet.Servlet

    Dans ce cas ci la mthode init() permet dinitialiser le Servlet .La mthode service() permet de recevoir et rpondre aux diffrentes requtes http envoyes par lutilisateur. Le servlet peut galement se cr par extension de la classe javax.servlet.http.HttpServlet qui implmente linterface javax.servlet.Servlet prcis plus haut.

  • Dans ce cas ci la mthode service() est remplace par deux mthodes : La mthode doGet() qui permet de grer les requtes de type GET. La mthode doPost() qui permet de grer les requtes de type POST Linstruction res.setContentType("text/html"); permet de dfinir le type de donnes renvoyes au client. Linstruction PrintWriter out = res.getWriter(); permet de crer un objet permettant denvoyer du texte format vers le navigateur.Pour envoyer les donnes textuelles vers le navigateur on utilisera donc la mthode printl() Dans un projet web il existe gnralement plusieurs servlets qui se chargent de grer diffrentes actions effectues par lutilisateur .Ces diffrentes actions sont appeles travers des liens (url). Anatonomie dun url de servlet : [Protocol://][DNS]:[PORT]/[DossierPrincipal]/[NomduServlet] Cest ici que rentre donc en jeu le conteneur web (fichier web.xml se trouvant dans le rpertoire web-inf).Le rle du conteneur web est de relier les Url chaque servlet du projet.

  • Le conteneur web est un fichier au format XML qui est le descripteur de dploiement permettant de configurer : l'application, les servlets, les sessions, les bibliothques de tags personnaliss, les paramtres de contexte, les types Mimes, les pages par dfaut, les ressources externes, la scurit de l'application et des ressources J2EE.

    Ce exemple de fichier web.xml prsente deux lments : Les servlets et les servlet-mapping Llment servlet permet de dclarer des servlets, et de les associer des classes Java. Dans lexemple ci dessus, il est cr une servlet appele Hello, associe la classe Java org.galilee.servlet.Bonjour, qui doit donc se trouver dans un fichier Bonjour.class et dans la bonne structure de rpertoire. Llment servlet-mapping permet dassocier une servlet une URL. Cette dclaration doit bien sr tre cohrente avec ce qui a t dclar dans Tomcat (et ventuellement Apache). Dans lexemple ci , le servlet servlet est associe lURL /bonjour. Gestion des formulaires avec un servlet Pour traiter un formulaire laide dun servlet il faut juste prciser lurl du servlet dclar au niveau du conteneur web dans le paramtre action et prciser le type de requte au niveau du paramtre method du formulaire. Lire les paramtres dun formulaire avec un servlet. En effet, l'objet HttpServletRequest possde de nombreuses mthodes (dont la plus courante getParameter()) permettant de retourner la valeur d'un champ du formulaire en lui passant en argument le nom du champ, qu'il s'agisse de donnes pases par la mthode POST ou GET. public String getParameter(String Key) Les noms des champs sont sensibles la casse. Il faut donc veiller les saisir dans la servlet comme ils le sont dans le formulaire HTML. La mthode getParameter() retourne une chane contenant la valeur du champ. Si le champ est vide, une chane vide est retourne. Si le champ n'existe pas, la valeur null est retourne. Exemple pour le champ : La rcupration dans un servlet se fera par :

  • String Champ = req.getParameter("NomDuChamp") Lorsqu'un champ d'un formulaire peut avoir plusieurs valeurs (liste choix multiples, cases cocher, ...), il est possible d'utiliser la mthode getParameterValues() : public String[] getParameterValues(String Key) Cette mthode retourne un tableau contenant l'ensemble des valeurs affectes la cl spcifie en paramtre. Pour rcuprer le nom de tous les paramtres dun formulaire on utilise la mthode getParameterNames() .Cette mthode retourne un objet de type Enumeration qui est une collection contenant la liste de tous les paramtres du formulaire. Enumeration getParameterNames() Pour parcourir lEnumeration on utilise la boucle suivante :

    Les Cookies Les cookies de faon gnrale sont utiliss pour stocker temporairement des donnes chez le client dune application web afin de le rcuprer ultrieurement. La classe javax.servlet.http.Cookie permet de crer un objet Cookie encapsulant toutes les oprations ncessaires la manipulation des cookies. Le nom dun cookie doit tre une chaine de caractre et ne pas contenir des caractres spciaux . Lenvoie dun cookie vers le navigateur se fait avec la mthode : void AddCookie(Cookie cookie) Il est noter que la cration dun cookie doit se faire avant tout envoi de donnes au navigateur. Exemple de cration et denvoie dun Cookie Cookie MonCookie = new Cookie("nom", "valeur"); response.addCookie(MonCookie); Pour rcuprer les cookies provenant de la requte du client, il suffit d'utiliser la mthode getCookies() de l'objet HttpServletRequest. Cette mthode retourne un tableau contenant l'ensemble des cookies prsents chez le client. Il est ainsi possible de parcourir le tableau afin de retrouver un cookie spcifique grce la mthode getName() de l'objet Cookie(). La rcupration de la valeur d'un cookie se fait grce la mthode getValue() de l'objet Cookie

  • String Valeur = Cookie.getValue()

    Les Cookies possdent une dure de vie.Pour leur assigner une dure on utilise la mthode setMaxAge().Exemple dassignation dune dure de 24H C.setMaxAge(24*3600); Les sessions : Les sessions permettent galement se stocker temporairement des donnes . La cration dune nouvelle session se fait travers linstruction : HttpSession session = request.getSession(true); session.setAttribute(parametre, valeur); La rcupration de la donne stocke se fait aprs par linstruction : session.getAttribute(parametre) Les redirections : Les redirections permettent denvoyer lutilisateur vers une autre page aprs le traitement des informations par un servlet : Exemple : response.sendRedirect("Lien ou nom de la page"); Envoie de donnes une page travers les servlets : Exemple : //Prparation de la donne int result = 10; RequestDispatcher rd = null; rd = getServletContext().getRequestDispatcher("/result.jsp"); //Assignation de la donne request.setAttribute("resultat", result); //Envoie de la donne vers la page rd.forward(request, response) Dans ce cas la rcupration de la donne dans la page se fera de la forme : Resultat :