Servlet en Java

Mohammad Irfan 15 février 2024
  1. Qu’est-ce que Servlet
  2. Avantages de l’utilisation de Servlet
  3. Comment créer une servlet en Java
  4. Paquets importants pour Servlet
  5. Classes de servlets
  6. Interfaces de servlets
Servlet en Java

Ce tutoriel présente ce qu’est un servlet et comment créer un servlet en Java.

Qu’est-ce que Servlet

Servlet est une technologie côté serveur utilisée pour créer des applications Web en Java. Il crée des applications Web dynamiques et fournit une API composée de plusieurs classes et interfaces pour gérer l’application.

Avantages de l’utilisation de Servlet

Avant la servlet, un programme CGI (Common Gateway Interface) était utilisé pour créer des programmes côté serveur qui présentaient plusieurs problèmes de performances. Servlet a l’avantage sur CGI et offre les avantages suivants :

  • Performances plus élevées grâce au concept de multithreading
  • Aucune dépendance à la plate-forme
  • Portable
  • Sécurisé et sûr grâce au byte code Java.

Comment créer une servlet en Java

Il existe plusieurs manières de créer une application de servlet, par exemple en utilisant l’une des classes ou interfaces suivantes :

  1. Implémenter l’interface Servlet
  2. Hériter de la classe GenericServlet
  3. Hériter de la classe HttpServlet

Il s’agit de certaines classes et interfaces utilisées pour créer une application de servlet. Ils contiennent des méthodes telles que doPost() et doGet() pour gérer les requêtes HTTP.

Une application de servlet suit une structure de répertoire/projet spécifique et se compose de certaines étapes requises telles que :

  • Créer une servlet
  • Créer un descripteur de déploiement
  • Déployer l’application servlet sur un serveur (apache tomcat).

Comme nous l’avons indiqué précédemment, pour créer une servlet, nous devons étendre la classe HttpServlet et redéfinir ses méthodes. Ici, nous utilisons la méthode doGet() pour gérer les requêtes Get.

Ce qui suit est un code de servlet de base.

Créer une servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
  private String msg;

  public void init() throws ServletException {
    // Do required initialization
    msg = "Hello Servlet";
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // Setting content type for response
    response.setContentType("text/html");

    // printing msg to browser in h1 heading
    PrintWriter out = response.getWriter();
    out.println("<h1>" + msg + "</>");
  }

  public void destroy() {
    // code to execute while destroy servlet.
  }
}

Production :

Ce code de servlet imprimera le message ci-dessous dans le navigateur.

servlet Java

Créer le descripteur de déploiement

Il s’agit d’un fichier XML qui contient des informations sur le servlet, et le conteneur Web obtient toutes les informations de ce fichier. Ce fichier utilise plusieurs balises telles que <web-app>, <servlet>, <servlet-mapping>, etc.

Ils sont tous utilisés pour définir des informations pour le conteneur. Le conteneur utilise un analyseur pour extraire ces informations.

Voir un descripteur de servlet (web.xml) pour notre classe HelloServlet.

<web-app>  
  
<servlet>  
<servlet-name>HelloServlet</servlet-name>  
<servlet-class>HelloServlet</servlet-class>  
</servlet>
  
<servlet-mapping>  
<servlet-name>HelloServlet</servlet-name>  
<url-pattern>/helloservlet</url-pattern>  
</servlet-mapping>
  
</web-app>

Après avoir créé ce fichier XML, compilez le fichier de servlet et déployez le projet complet sur un serveur Web tel qu’Apache Tomcat. Il s’agit d’une application Web, elle nécessite donc un serveur pour fonctionner.

Après avoir déployé le projet, démarrez le serveur et accédez au servlet en saisissant l’URL de mappage du navigateur helloservlet.

Paquets importants pour Servlet

L’API Servlet contient deux packages principaux qui contiennent toutes les classes et interfaces.

  • javax.servlet
  • javax.servlet.http

Classes de servlets

Voici quelques classes de servlets fréquemment utilisées :

  • GenericServlet
  • ServletInputStream
  • ServletOutputStream
  • ServletRequestWrapper
  • ServletResponseWrapper
  • ServletRequestEvent
  • ServletContextEvent
  • HttpServlet
  • Cookie
  • HttpServletRequestWrapper
  • HttpServletResponseWrapper
  • HttpSessionEvent

Interfaces de servlets

Voici quelques interfaces de servlet fréquemment utilisées :

  • Servlet
  • ServletRequest
  • ServletResponse
  • RequestDispatcher
  • ServletConfig
  • ServletContext
  • Filter
  • FilterConfig
  • FilterChain
  • ServletRequestListener
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • HttpSessionListener