Back

Développement de Servlet

Développement de Servlet

  1. Objectifs

    • Connaitre les servlets
    • Connaitre les paramètres de doGet ().
  2. Présentation

    • Afin de développer une servlet fonctionnant avec le protocole HTTP, il suffit de créer une classe étendant HttpServlet (qui implémente elle-même l’interface Servlet).
    • Une servlet est une classe qui hérite de la classe HttpServlet et qui redéfinit les méthodes du protocole HTTP.
    • Si la méthode utilisée est GET, il suffit de redéfinir la méthode :
      • public void doGet( HttpServletRequest request, HttpServletResponse response )
    • Si la méthode utilisée est POST, il suffit de redéfinir la méthode :
      • public void doPost( HttpServletRequest request, HttpServletResponse response )



  3. Environnement d’exécution

    1. cas général
      • import javax.servlet.*;
        import javax.servlet.http.*;
        import java.io.*;
        public class ServletName extends HttpServlet {
        public void doGet(HttpServletRequest req, HttpServletResponse res)
         throws ServletException {
         // lecture de la requête
         // traitements
         // envoi de la réponse
         }
         public void doPost(HttpServletRequest req, HttpServletResponse res)
         throws ServletException {
         // lecture de la requête
         // traitements
         // envoi de la réponse
         }
         }
    2. Exemple
      • import javax.servlet.*;
        import javax.servlet.http.*;
        import java.io.*;
        public class ServletName extends HttpServlet {
        public void doGet(HttpServletRequest requete, HttpServletResponse reponse)
         throws ServletException, IOExeption {
         reponse.setContentType("text/html");
        	PrintWriter out = reponse.GetWriter();
        	out.println"");
        	out.println"

        Hello depuis une servlet

        "); out.println""); } }
  4. La méthode de servlet doGet

    1. La méthode de servlet doGet
      • C’est le code que vous avez compilé dans l’exemple précédent pour le servlet le plus simple possible:
      • import javax.servlet.*;
        import javax.servlet.http.*;
        public class ServletName extends HttpServlet {
        }
      • Ce servlet est utile pour tester votre configuration, mais il ne fait rien. Pour faire quelque chose, un servlet doit remplacer la méthode doGet().
      • C’est ce que le serveur Web appellera lorsque le navigateur envoie une requête GET pour votre servlet. La méthode doGet() prend deux paramètres, une shell vide de votre override ressemble à ceci:
      • protected void doGet(HttpServletRequest request, 
        HttpServletResponse response) throws ServletException, IOException {
        //...........
        }
    2. Les parties composantes la méthode de servlet doGet
      • La méthode de servlet doGet est composée de trois parties. Les deux premiers sont des paramètres et le troisième une liste.
        1. HttpServletRequest request
          • Le premier paramètre de cette méthode ( HttpServletRequest request) est un objet représentant la requête effectuée par le navigateur.
        2. HttpServletResponse response
          • Le deuxième paramètre ( HttpServletResponse response) est un objet représentant la réponse que le servlet construit pour renvoyer au navigateur. Vous allez définir les propriétés de cet objet, ou y écrire du HTML, dans toutes vos servlets.
        3. throws ServletException, IOException
          • Après la liste des paramètres se trouve la clause throws de la méthode definition ( throws ServletException, IOException).
          • Les servlets ont leurs propres exceptions, qu’ils peuvent lancer. En outre, il est possible de déclencher une IOException lors de l’écriture de HTML dans l’objet de réponse.
          • Cette liste alerte le code serveur qui appelle doGet() pour être prêt à intercepter ces types d’exceptions.
  5. Écrire un servlet qui génère du HTML

    • On notera les points suivants :
    • il faut importer des classes spéciales pour les servlets :
    • import javax.servlet.*;
      import javax.servlet.http.*;
    • La bibliothèque javax.servlet n’est pas toujours livrée en standard avec le jdk. Dans ce cas, on peut la récupérer directement sur le site d’Oracle.
    • Une servlet dérive de la classe HttpServlet
    • public class HelloWorld extends HttpServlet {
    • Une requête GET faite à la servlet est traitée par la méthode doGet
    •  public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws IOException, ServletException
    • De même une requête POST faite à la servlet est traitée par la méthode doPost
    •  public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws IOException, ServletException
    • L’objet HttpServletRequest request est l’objet qui nous donne accès à la requête faite par le client Web. La réponse de la servlet sera faite via l’objet HttpServletResponse response
    • L’objet response nous permet de fixer les entêtes http qui seront envoyés au client. Par exemple l’entête Content-type: text/html est ici fixé par :
    • response.setContentType("text/html");
    • Pour envoyer la réponse au client, la servlet utilise un flux de sortie que lui délivre l’objet response :
    •  PrintWriter out = response.getWriter();
    • Une foix ce flux de sortie obtenu, le code HTML est écrit dedans et donc envoyé au client :
    •  out.println("<html>");
       out.println("<body>");
       out.println("<head>");
       out.println("<title>Hello World!</title>");
       out.println("</head>");
       out.println("<body>");
       out.println("<h1>Hello World!</h1>");
       out.println("</body>");
       out.println("</html>");

      Développement de Servlet

    • La génération de HTML implique aussi peu que quatre lignes de code dans la méthode doGet () de votre servlet .
      1. Définissez le type de contenu de votre réponse, pour indiquer au navigateur que vous retournerez du texte HTML en clair
      2. Obtenez un rédacteur de sortie dans lequel vous pouvez écrire du HTML, attaché à l’objet de réponse
      3. Écrivez du HTML à cet écrivain
      4. Fermer l’écrivain

    Bibliographie

    • Livre:Java EE Guide de développement d’applications web en Java de Jérôme LAFOSSE



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement