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
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 01, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 1.5076MB