JAVA EE Mustapha OUJAOURA ROYAUME DU MAROC Université Cadi Ayyad Ecole National

JAVA EE Mustapha OUJAOURA ROYAUME DU MAROC Université Cadi Ayyad Ecole Nationale des Sciences Appliqués Département Génie Informatique, Réseaux & Télécoms Safi ____________ oujaoura@gmail.com Introduction Les Servlets Chap 2 Introduction ¨ Composant logiciel écrit en Java s'exécutant du côté serveur Web ¤ Solution concurrente à la programmation Shell CGI. ¨ Permet de gérer des requêtes HTTP et de fournir au client une réponse HTTP via un protocole de communication (généralement le protocole HTTP) ¨ Une Servlet s’exécute dans un moteur ou conteneur de Servlet permettant d’établir le lien entre la Servlet et le serveur Web ¨ Une servlet est une application Java qui permet de créer dynamiquement des données au sein d'un serveur HTTP. ¨ Une servlet s'exécute dynamiquement sur le serveur web et permet l'extension des fonctions de ce dernier. Typiquement : accès à des bases de données, transactions d'e-commerce, etc. ¨ Une servlet peut être chargée automatiquement lors du démarrage du serveur web ou lors de la première requête du client. Une fois chargées, les servlets restent actives dans l'attente d'autres requêtes du client. ¨ Ecrite en Java, une servlet en retire ses avantages : la portabilité, l'accès à toutes les API de Java dont JDBC pour l'accès aux bases de données, ... ¨ Une servlet peut être invoquée plusieurs fois en même temps pour répondre à plusieurs requêtes simultanées. 3 Fonctionnement d'une servlet ¨ Un serveur d'applications permet de charger et d'exécuter les servlets via un moteur de servlets qui se charge de manager les servlets qu'il contient. ¨ Pour exécuter une servlet, il suffit de saisir une URL qui désigne la servlet dans un navigateur. 1. Le serveur reçoit du navigateur la requête http qui a recours à une servlet 2. Si c'est la première sollicitation de la servlet, le serveur l'instancie. Les servlets sont stockées dans un répertoire particulier du serveur. La servlet reste en mémoire jusqu'à l'arrêt du serveur. Au fil des requêtes, la servlet peut être appelée par plusieurs threads lancés par le serveur. Ce principe de fonctionnement évite d'instancier un objet de type servlet à chaque requête et permet de maintenir un ensemble de ressources actives telles qu'une connexion à une base de données. 3. Le serveur crée un objet qui représente la requête http ainsi que l'objet qui contiendra la réponse et les envoie à la servlet 4. La servlet crée dynamiquement la réponse sous forme de page html transmise par un flux dans l'objet contenant la réponse. La création de cette réponse utilise bien sûr la requête du client mais aussi un ensemble de ressources incluses sur le serveur telles que des fichiers ou des bases de données. 5. Le serveur récupère l'objet réponse et envoie la page html au client. 4 Cycle de vie d’une servlet ¨ Lorsque le conteneur reçoit une requête, il la transmet au servlet qui correspond à l’URL pour que la requête soit traitée effectivement suivant le cycle suivant: 1. Chargement de la classe 2. Instanciation du servlet : constructeur par défaut 3. Appel de la méthode init() 4. Appel(s) de service() : 1 thread par requête 5. Appel de la méthode destroy() 5 Cycle de vie d’une servlet ¨ Quatre étapes dans le cycle de vie d'une servlet : ¤ Chargement et instanciation (création de l'objet relatif à la classe mise en oeuvre) ; ¤ Initialisation ; ¤ Traitement des requêtes ; ¤ Fin de vie 6 Cycle de vie d’une servlet ¨ Le serveur crée un pool de threads auxquels il va pouvoir affecter chaque requête ¨ La servlet est chargée au démarrage du serveur ou lors de la première requête ¨ La servlet est instanciée par le serveur ¨ La méthode init() est invoquée par le conteneur ¨ Lors de la première requête, le conteneur crée les objets Request et Response spécifiques à la requête ¨ La méthode service() est appelée à chaque requête dans un nouveau thread. Les objets Request et Response lui sont passés en paramètre ¨ Grâce à l'objet request, la méthode service() va pouvoir analyser les informations en provenance du client ¨ Grâce à l'objet response, la méthode service() va fournir une réponse au client ¨ La méthode destroy() est appelée lors du déchargement de la servlet, c'est-à- dire lorsqu'elle n'est plus requise par le serveur. La servlet est alors signalée au garbage collector. 7 Le Protocole HTTP ¨ HTTP :HyperText Tranfert Protocol ¤ protocole client-serveur inventé par Tim Berners-Lee n avec le langage HTML et les adresses Web ¤ port 80 par défaut ¤ HTTPS – variante sécurisée (port 443) ¤ Protocole qui permet au client de récupérer des documents du serveur ¤ Ces documents peuvent être statiques (contenu qui ne change pas : HTML, PDF, Image, etc..) ou dynamiques ( Contenu généré dynamiquement au moment de la requête : PHP , JSP , ASP…) ¤ Ce protocole permet également de soumettre les formulaires. ¨ Fonctionnement (très simple en HTTP/1.0) ¤ Le client se connecte au serveur (Créer une socket) ¤ Le client demande au serveur un document : Requête HTTP ¤ Le serveur renvoi au client le document (status=200) ou d’une erreur (status=404 quand le document n’existe pas) ¤ Déconnexion 8 Le Protocole HTTP ¨ Une particularité du protocole HTTP est de maintenir la connexion entre le client et le serveur uniquement durant l'échange de la requête et de la réponse. ¨ La requête est composée de trois parties : ¤ la commande : n La première ligne de la requête contient la commande à exécuter par le serveur. La commande est suivie éventuellement d'un argument qui précise la commande (par exemple l'url de la ressource demandée). Enfin la ligne doit contenir la version du protocole HTTP utilisé, précédée de HTTP/. n Exemple : GET / index.html HTTP/1.0 n Avec HTTP 1.1, les commandes suivantes sont définies : GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE et CONNECT. Les trois premières sont les plus utilisées. ¤ la section en-tête : Cette partie en-tête est optionnelle. n Il est possible de fournir sur les lignes suivantes de la partie en-tête des paramètres supplémentaires. Les informations fournies peuvent permettre au serveur d'obtenir des informations sur le client. Chaque information doit être mise sur une ligne unique. Le format est nom_du_champ:valeur. Les champs sont prédéfinis et sont sensibles à la casse. ¤ le corps n Une ligne vide doit précéder le corps de la requête. Le contenu du corps de la requête dépend du type de la commande. ¨ La requête doit obligatoirement être terminée par une ligne vide. 9 Le Protocole HTTP ¨ La réponse est elle aussi composée des trois mêmes parties: ¤ une ligne de statuts n La première ligne de l'en-tête contient un état qui est composé : de la version du protocole HTTP utilisé, du code de statut et d'une description succincte de ce code. n Le code de statut est composé de trois chiffres qui donnent des informations sur le résultat du traitement qui a généré cette réponse. Ce code peut être associé à une catégorie en fonction de sa valeur n Plusieurs codes sont définis par le protocole HTTP dont les plus importants sont : n 200 : traitement correct de la requête n 204 : traitement correct de la requête mais la réponse ne contient aucun contenu (ceci permet au browser de laisser la page courante affichée) n 404 : la ressource demandée n'est pas trouvée (sûrement le plus célèbre) n 500 : erreur interne du serveur ¤ un en-tête dont le contenu est normalisé n L'en-tête contient des informations qui précisent le contenu de la réponse. ¤ un corps dont le contenu dépend totalement de la requête n Le corps de la réponse est précédé par une ligne vide. 10 Le Protocole HTTP ¨ Le code de statut est composé de trois chiffres qui donnent des informations sur le résultat du traitement qui a généré cette réponse. ¨ Ce code peut être associé à une catégorie en fonction de sa valeur: 11 Plage de valeurs du code Signification 100 à 199 Information 200 à 299 Traitement avec succès 300 à 399 La requête a été redirigée 400 à 499 La requête est incomplète ou erronée 500 à 599 Une erreur est intervenue sur le serveur Méthodes du protocole HTTP ¨ 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…) 12 L’API Servlet 13 ¨ L'API servlet regroupe un ensemble de classes dans deux packages : ¤ javax.servlet.http : contient les classes pour développer des servlets qui reposent sur le protocole http utilisé par les serveurs web. ¤ javax.servlet : contient les classes pour développer des serlvets génériques indépendantes d'un protocole Javax.servlet.http uploads/s1/ jee-1-servlet.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 19, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 3.5569MB