Outils pour utilisateurs

Outils du site


developpement:java:servlets

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
developpement:java:servlets [2015/08/01 01:42] – modification externe 127.0.0.1developpement:java:servlets [2023/10/03 23:11] sgariepy
Ligne 1: Ligne 1:
 ====== Servlets ====== ====== Servlets ======
  
-Pour développer des applications web, la technologie java fournit deux types de composants : les servlets et les pages [[prog:java:jsp|JSP]].  Le composant fondamental est le servlet parce que une page JSP est prise par le conteneur web et sera compilée pour donner un servlet.+Pour développer des applications web, la technologie java fournit deux types de composants : les servlets et les pages [[developpement:java:jsp|JSP]].  Le composant fondamental est le servlet parce que une page JSP est prise par le conteneur web et sera compilée pour donner un servlet.
  
-Une servlet est un programme [[prog:java:toc|Java]] s'exécutant au sein d'un serveur et répondant à des requêtes de clients.  La servlet est déployée dans un conteneur.  Le conteneur fournit un environnement d'exécution à la servlet et gère son cycle de vie.  Dans pratiquement tous les cas, on est dans le contexte du réseau Internet ou d'un réseau intranet et les requêtes des clients sont des requêtes HTTP.  Le conteneur est alors un conteneur web et la servlet fait partie d'une application web.  << Conteneur web >> est la nouvelle appellation de << moteur de servlet >>.+Une servlet est un programme [[developpement:java:introduction|Java]] s'exécutant au sein d'un serveur et répondant à des requêtes de clients.  La servlet est déployée dans un conteneur.  Le conteneur fournit un environnement d'exécution à la servlet et gère son cycle de vie.  Dans pratiquement tous les cas, on est dans le contexte du réseau Internet ou d'un réseau intranet et les requêtes des clients sont des requêtes HTTP.  Le conteneur est alors un conteneur web et la servlet fait partie d'une application web.  << Conteneur web >> est la nouvelle appellation de << moteur de servlet >>.
  
 Le conteneur web doit respecter les spécifications des servlets((Les spécifications des servlets sont publiées sur le site de Sun Microsystems consacré à Java : http://java.sun.com/products/servlet/)).  On ne déploie pas de servlet, on déploie une application web et la plus simple des application web est composé d'une servlet.  La servlet fait forcément partie d'une application web et l'application web fait partie d'un conteneur.  Un conteneur web est une application réseau qui respecte les spécifications de la norme JEE et ce processus est standardisé, c'est-à-dire que si votre servlet et application web fonctionne sur un conteneur web, ce dernier fonctionnera sur tous les autres conteneurs web. Le conteneur web doit respecter les spécifications des servlets((Les spécifications des servlets sont publiées sur le site de Sun Microsystems consacré à Java : http://java.sun.com/products/servlet/)).  On ne déploie pas de servlet, on déploie une application web et la plus simple des application web est composé d'une servlet.  La servlet fait forcément partie d'une application web et l'application web fait partie d'un conteneur.  Un conteneur web est une application réseau qui respecte les spécifications de la norme JEE et ce processus est standardisé, c'est-à-dire que si votre servlet et application web fonctionne sur un conteneur web, ce dernier fonctionnera sur tous les autres conteneurs web.
  
-Une application web est un ensemble de composants de deux types.  Il peut y avoir plusieurs servlet et plusieurs pages [[prog:java:jsp|JSP]] dans une application, ainsi qu'un [[#descripteur_de_deploiement|fichier de configuration]] et ces composants sont déployés dans un conteneur web.  Le conteneur fourni un environnement d'exécution, c'est-à-dire essentiellement une machine virtuelle et il gère aussi le cycle de vie de l'application.+Une application web est un ensemble de composants de deux types.  Il peut y avoir plusieurs servlet et plusieurs pages [[developpement:java:jsp|JSP]] dans une application, ainsi qu'un [[#descripteur_de_deploiement|fichier de configuration]] et ces composants sont déployés dans un conteneur web.  Le conteneur fourni un environnement d'exécution, c'est-à-dire essentiellement une machine virtuelle et il gère aussi le cycle de vie de l'application.
  
-{{  :prog:java:3tiers_conteneurweb.jpeg  |}}+{{  :developpement:java:3tiers_conteneurweb.jpeg  |}}
  
 Afin que le conteneur puisse gérer correctement le fonctionnement et le cycle de vie d'une servlet, il faut que celle-ci respecte un certain nombre de règles.  Le contrat entre le conteneur web et tes servlets se présente sous forme de l'interface ''Servlet'' du package ''javax.servlet'' : toute servlet doit être instance d'une classe qui implémente cette interface. Afin que le conteneur puisse gérer correctement le fonctionnement et le cycle de vie d'une servlet, il faut que celle-ci respecte un certain nombre de règles.  Le contrat entre le conteneur web et tes servlets se présente sous forme de l'interface ''Servlet'' du package ''javax.servlet'' : toute servlet doit être instance d'une classe qui implémente cette interface.
Ligne 15: Ligne 15:
 L'interface Servlet contient les cinq méthodes décrites dans te tableau 1.  On y trouve, en particulier, une méthode d'initialisation de la servlet, une méthode pour fournir un service aux clients et une méthode de libération de ressources lors de la destruction de la servlet L'interface Servlet contient les cinq méthodes décrites dans te tableau 1.  On y trouve, en particulier, une méthode d'initialisation de la servlet, une méthode pour fournir un service aux clients et une méthode de libération de ressources lors de la destruction de la servlet
  
-  +===== Conteneur web =====
  
-===== Conteneur web ===== 
 Le conteneur web, ou conteneur de servlet, ou moteur de servlet.  Le plus populaire est Tomcat d'Apache ([[web:tomcat:installation|installation sur Mac OS X]]), mais beaucoup d'autres existent comme Jetty, JBoss, BEA WebLogic Server, etc. Le conteneur web, ou conteneur de servlet, ou moteur de servlet.  Le plus populaire est Tomcat d'Apache ([[web:tomcat:installation|installation sur Mac OS X]]), mais beaucoup d'autres existent comme Jetty, JBoss, BEA WebLogic Server, etc.
  
-====== Implémetation d'une servlet ====== +====== Implémentation d'une servlet ======
  
 Afin que le conteneur puisse gérer correctement le fonctionnement et le cycle de vie d'une servlet, il faut qu'il applique un certain nombre de règles, donc qu'il y ait un contrat entre le conteneur et la servlet.  Ce contrat se présente comme une interface du package ''javax.Servlet'', qui est ''Servlet'' Donc, tous les servlet doivent implémenter cet interface. Afin que le conteneur puisse gérer correctement le fonctionnement et le cycle de vie d'une servlet, il faut qu'il applique un certain nombre de règles, donc qu'il y ait un contrat entre le conteneur et la servlet.  Ce contrat se présente comme une interface du package ''javax.Servlet'', qui est ''Servlet'' Donc, tous les servlet doivent implémenter cet interface.
Ligne 30: Ligne 28:
  
 Il y a aussi les méthodes ''getServletConfig()'' et ''getServletInfo()'' La méthode principale est ''service(ServletRequest request, ServletResponse response)''. Il y a aussi les méthodes ''getServletConfig()'' et ''getServletInfo()'' La méthode principale est ''service(ServletRequest request, ServletResponse response)''.
- 
  
 ===== Méthode service() ===== ===== Méthode service() =====
Ligne 48: Ligne 45:
  
  
-{{  :prog:java:javax_servlet.jpeg  |}}+{{  :developpement:java:javax_servlet.jpeg  |}}
  
 En [[web:tomcat:installation|installant Tomcat]], on peut trouver les classes nécessaires à la compilation.  En conséquence, on peut exporter le ''CLASSPATH'' pour que les classes Java puissent être compilées de partout : En [[web:tomcat:installation|installant Tomcat]], on peut trouver les classes nécessaires à la compilation.  En conséquence, on peut exporter le ''CLASSPATH'' pour que les classes Java puissent être compilées de partout :
Ligne 104: Ligne 101:
 </code> </code>
  
-Remarquons que la méthode ''doGet()'' reçoit un paramètre de type ''HttpServletRequest'' qui représente la requête HTTP qui a invoquée la servlet et un paramètre de type ''HttpServletResponse'' qui représente la réponse de la servlet.  Dans l'exemple de la servlet ''TestServlet'', la méthode ''doGet()'' utilise la méthode ''getWriter()'' de ce deuxième paramètre pour obtenir un flux de sortie de type ''PrintWriter'' Ce flux est dirigé vers le client et permet de lui envoyer des réponses textuelles (au format [[web:html|HTML]] ou [[prog:general:xml|XML]]).+Remarquons que la méthode ''doGet()'' reçoit un paramètre de type ''HttpServletRequest'' qui représente la requête HTTP qui a invoquée la servlet et un paramètre de type ''HttpServletResponse'' qui représente la réponse de la servlet.  Dans l'exemple de la servlet ''TestServlet'', la méthode ''doGet()'' utilise la méthode ''getWriter()'' de ce deuxième paramètre pour obtenir un flux de sortie de type ''PrintWriter'' Ce flux est dirigé vers le client et permet de lui envoyer des réponses textuelles (au format [[web:html5:toc|HTML]] ou [[developpement:general:xml|XML]]).
  
 {{:web:tomcat:testservlet.jpg|Figure 2. La servlet TestServlet envoie un message de bienvenue à l'utilisateur.}} {{:web:tomcat:testservlet.jpg|Figure 2. La servlet TestServlet envoie un message de bienvenue à l'utilisateur.}}
Ligne 123: Ligne 120:
 </html> </html>
 </code> </code>
-{{:prog:java:test_bienvenue.jpg|figure 3. Formulaire HTML où le client peut saisir son nom.}}+ 
 +{{:developpement:java:test_bienvenue.jpg|figure 3. Formulaire HTML où le client peut saisir son nom.}}
  
 En cliquant sur le bouton **OK**, les données du formulaire sont envoyées à la servlet ''TestServlet'' Cette dernière va pouvoir récupérer le nom contenu dans le champ ''name'' Elle va pour cela utiliser la méthode ''getParameter()'' de l'argument ''request'' de la méthode ''doGet()'' Ce paramètre représente la requête du client et encapsule toutes les informations sur cette requête : En cliquant sur le bouton **OK**, les données du formulaire sont envoyées à la servlet ''TestServlet'' Cette dernière va pouvoir récupérer le nom contenu dans le champ ''name'' Elle va pour cela utiliser la méthode ''getParameter()'' de l'argument ''request'' de la méthode ''doGet()'' Ce paramètre représente la requête du client et encapsule toutes les informations sur cette requête :
developpement/java/servlets.txt · Dernière modification : 2023/10/03 23:14 de sgariepy