1 Chapitre 2 : Les Servlets cours JEE - Dr. Abdessamad Belangour 17 Introductio

1 Chapitre 2 : Les Servlets cours JEE - Dr. Abdessamad Belangour 17 Introduction aux servlets Ce sont des classes Java fonctionnant du côté serveur. Elles permettent de construire des pages Web dynamiques. Une Servlet: ●Reçoit des requêtes HTTP d’un client Web ●Effectue traitement ●Fournit une réponse HTTP dynamique au client Web La compréhension du fonctionnement du protocole HTTP est nécessaire 2 Servlets et protocole HTTP Les servlets s’appuient sur le protocole HTTP pour communiquer avec le client. HTTP agit comme un protocole de Transport cours JEE - Dr. Abdessamad Belangour 18 Requête HTTP Réponse HTTP Serveur Web Client (navigateur) Le protocole HTTP HTTP = HyperText Tranfert Protocol Protocole qui permet au client de récupérer des documents sur serveur : ●Documents Statiques (HTML, PDF, Image, etc..) ou ●Documents Dynamiques (PHP, JSP, ASP…) HTTP permet également de soumissionner les formulaires SOA - Pr. Abdessamad Belangour 19 envoi des en-têtes HTTP Client (navigateur) Décode localisation du fichier Création des en-têtes formatage des données envoi des en-têtes HTTP de réponse 3 Le protocole HTTP : Fonctionnement SOA - Pr. Abdessamad Belangour 20 IPS =…. Port = 80 :Socket Port = 80 :SocketServer accept() IPC =…. Port = …. :Socket Doc.html Connexion GET / doc.html Réponse HTTP (OK) Status=200 Déconnexion Client HTTP Serveur Web Le protocole HTTP : Méthodes Une requête HTTP peut être envoyée en utilisant les méthodes suivantes: ●GET : Pour récupérer le contenu d’un document ●POST : Pour soumissionner des formulaires (Envoyer, dans la requête, des données saisies par l’utilisateur ) ●PUT pour envoyer un fichier du client vers le serveur ●DELETE permet de demander au serveur de supprimer un document ●HEAD permet de récupérer les informations sur un document (Type, Capacité, Date de dernière modification etc…) SOA - Pr. Abdessamad Belangour 21 4 Le protocole HTTP : Forme d’une requête HTTP SOA - Pr. Abdessamad Belangour 22 Entête : valeur Entête : valeur Entête : valeur Entête : valeur … *** saut de ligne *** …. …. .... …. …. Entête Corps de la requête Ligne vide Le protocole HTTP : Requête de type POST SOA - Pr. Abdessamad Belangour 23 Post http://www.site.ma HTTP/1.0 Accept : text/html Accept-Language : fr User-Agent : Mozilla/4.0 *** saut de ligne *** param1=Valeur1& param2=Valeur2 & param3=Valeur3 Entête Corps de la requête Ligne vide 5 Le protocole HTTP : Requête de type GET SOA - Pr. Abdessamad Belangour 24 GET http://www.site.ma HTTP/1.0 Accept : text/html Accept-Language : fr User-Agent : Mozilla/4.0 *** saut de ligne *** Entête Corps de la requête (VIDE) Ligne vide Le protocole HTTP : Exemple SOA - Pr. Abdessamad Belangour 25 GET Nom_Script?login=val1&pass=val2&…. HTTP/1.0 Accept : text/html Accept-Language : fr User-Agent : Mozilla/4.0 *** saut de ligne *** HTTP/1.0 200 OK Date : Wed, 15 Sep 2017 15:02:01 GMT Server : Apache/1.3.24 Last-Modified : Wed 02 Oct 2016 22:05:01 GMT Content-Type : Text/html Content-legnth : 4205 *** saut de ligne *** <!DOCTYPE html> <HTML> <HEAD>…. </HEAD> <BODY> …. </BODY> </HTML> Requête Réponse 6 Le protocole HTTP et Types MIME MIME veut dire Multipurpose Internet Mail Extensions Standard utilisé entre autres pour typer les documents transférés par le protocole HTTP Un type MIME est constitué comme suit : Content-type: TYPE/SOUS-TYPE ●Exemples : Content-type: image/gif (Images gif ) Content-type: image/jpeg (Images Jpeg ) Content-type: text/html (Fichiers HTML ) Content-type: text/plain (Fichiers texte sans mise en forme) cours JEE - Dr. Abdessamad Belangour 26 Moteur de servlets Une Servlet ne tourne pas directement sur un serveur Web : Elle a besoin de tourner sur un Moteur de Servlet Est connu aussi par conteneur de servlets (en anglais Servlet Container) Il permet d’établir le lien entre la Servlet et le serveur Web cours JEE - Dr. Abdessamad Belangour 27 Servlet Requête HTTP Réponse HTTP Serveur web Client (navigateur) Moteur de servlet 7 cours JEE - Dr. Abdessamad Belangour 28 Moteur de servlets Un moteur de Servlets prend en charge et gère les servlets: ●chargement de la servlet ●gestion de son cycle de vie ●passage des requêtes et des réponses Nombreux conteneurs de Servlet (Tomcat, JBoss, WebSphere Application Server, WebLogic,…) Dans le reste du cours et des TP, nous utiliserons le conteneur Tomcat pour déployer nos servlets. cours JEE - Dr. Abdessamad Belangour 29 Jakarta Tomcat Tomcat est une Implémentation de référence de la spécification JEE Fournit donc une implémentation de l’API JEE (dossier lib) Disponible gratuitement sous forme d’une licence Open Source Écrit entièrement en Java et nécessite obligatoirement une machine virtuelle (JRE ou JDK). 8 Jakarta Tomcat Disponible pour téléchargement à l’adresse suivante : https://tomcat.apache.org/ Existe en ●Version zip (non installable) ●version installable (.exe) cours JEE - Dr. Abdessamad Belangour 30 Jakarta Tomcat : version zip Téléchargement du fichier compressé Décompression dans un endroit spécifique Ajout des variables d’environnement suivantes : ●CATALINA_HOME : dossier de décompression de Tomcat ●JAVA_HOME (ou JRE_HOME) : dossier d’installation du JDK (ou dossier du JRE) cours JEE - Dr. Abdessamad Belangour 31 22/11/2019 cours JEE - Dr. Abdessamad Belangour 31 9 Jakarta Tomcat : version zip Les script de demarrage de tomcat sont logés dans le dossier « bin » de tomcat : ●« Startup.bat » pour le demarrage ●« Shutdown.bat » pour l’arrêt Remarque : ●L’avantage de la version zip est que vous pouvez déplacer Tomcat facilement ●Il suffit de modifier le chemin dans la variable d’environnement cours JEE - Dr. Abdessamad Belangour 32 Jakarta Tomcat : version installable Après installation de Tomcat : ●L’icône suivante montre quand il marche ●L’icône suivante montre quand il est arrêté ●« Start service » permet de le faire marcher s’il est en arrêt ●« stop service » permet de l’arrêter s’il est en marche cours JEE - Dr. Abdessamad Belangour 33 22/11/2019 cours JEE - Dr. Abdessamad Belangour 33 10 Jakarta Tomcat Page d’accueil de Tomcat : http://localhost:8080 cours JEE - Dr. Abdessamad Belangour 34 Tomcat Manager Les applications hébergée sur Tomcat peuvent être gérées (démarrées, arrêtées, rechargées) grâce au Tomcat Manager. 22/11/2019 cours JEE - Dr. Abdessamad Belangour 35 cours JEE - Dr. Abdessamad Belangour 35 11 Tomcat Manager Tomcat manager requière un login et un mot de passe. Il fournit deux modes de gestion de Tomcat : ●Une gestion à partir de son interface graphique représentée par le rôle manager-gui ●Une gestion à travers un script (réservées aux IDE comme Eclipse et Netbeans) représentée par le rôle manager-script Ces deux modes de gestion peuvent être éditées à travers le fichier « tomcat-users.xml » dans le dossier «conf » de Tomcat Exemple (pour la version 9): <user username="adminGui" password=" adminGui" roles="manager-gui"/> <user username="adminScript" password="adminScript" roles="manager-script"/> cours JEE - Dr. Abdessamad Belangour 36 22/11/2019 cours JEE - Dr. Abdessamad Belangour 36 Tomcat Manager 22/11/2019 cours JEE - Dr. Abdessamad Belangour 37 cours JEE - Dr. Abdessamad Belangour 37 12 Hiérarchie des dossiers Tomcat  Organisation partielle des dossiers de Tomcat cours JEE - Dr. Abdessamad Belangour 38 Scripts de lancement et d'arrêt du Serveur Tomcat Bibliothèques de Tomcat + Bibliothèques implémentant la norme Java EE Fichiers de configuration : server.xml, web.xml,tomact-users.xml Fichiers de journalisation Fichiers temporaires de Tomcat Fichiers relatifs à la traduction de JSP en Servlets Dossier de déploiement Déploiement d'une Servlet dans Tomcat Fichier d’accueil & de présentation Descripteur de déploiement (Optionnel en cas d'annotations) Fichiers *.class des Servlets Fichiers bibliothèques Une application Web doit être déployée dans le dossier webapps et avoir la structure suivante: 22/11/2019 cours JEE - Dr. Abdessamad Belangour 39 39 Optionnel en cas d'annotations 13 Une première Servlet Une Servlet est : ●Classe Java ●Utilise des bibliothèques JEE ●Qui écrit du HTML ●Qui a besoin d’une certaine configuration pour tourner sur le Web côté serveur Nous allons écrire une Servlet qui écrit Hello World en HTML cours JEE - Dr. Abdessamad Belangour 40 Une première Servlet package com.exemple; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloWorldServlet extends HttpServlet { // la méthode doGet traite les requêtes envoyées avec GET @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); // précision du type MIME de contenu à renvoyer au client PrintWriter out = res.getWriter(); // objet responsable d’envoyer du texte au client // rédaction du code HTML à renvoyer au client out.println("<!DOCTYPE html> "); out.println("<HTML><HEAD><TITLE> Titre </TITLE></HEAD>"); out.println("<BODY> Hello World </BODY></HTML>"); out.close(); //fermeture de l’objet Printwriter } } cours JEE - Dr. Abdessamad Belangour 41 Objet requête Objet réponse Packages pour la création de servlets 14 Une première Servlet Remarques : ●La méthode doGet (resp. doPost) traite les requêtes envoyées avec GET (resp. POST) ●La méthode doGet (resp. doPost) prend deux paramètres : Un paramètre de type HttpServletRequest représentant la requête client Un paramètre de type HttpServletResponse représentant la réponse à renvoyer au client ●L'objet HttpServletRequest permet d’extraire toutes les informations sur le client (adresse IP, navigateur, Domaine, paramètres d’un formulaire, etc..) ●L’objet HttpServletResponse doit être complété d’informations par la servlet avant de le renvoyer au client. cours JEE - Dr. Abdessamad Belangour 42 Une première Servlet Remarque : ●Pour compiler une Servlet sous DOS il faudra ajouter la bibliothèque « servlet-api.jar » à la variable d’environnement classpath. ●Cette bibliothèque se uploads/s1/ coursjee-prbelangour-chapitre2.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 01, 2022
  • Catégorie Administration
  • Langue French
  • Taille du fichier 1.5076MB