// Déclaration du package
package com.example.servlet;

// Import des bibliothèques nécessaires
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;

import com.example.dao.AlimentDAO; // Import de la classe AlimentDAO
import com.example.dao.DatabaseConnection; // Import de la classe DatabaseConnection
import com.example.util.Routeur; // Import de la classe Routeur

import java.io.IOException; // Import pour la gestion des exceptions IO

// Annotation pour déclarer que cette classe est un Servlet et spécifier son chemin d'accès
@WebServlet("/aliment/*")
public class AlimentServlet extends HttpServlet {

    // Déclaration des variables membres privées
    private AlimentDAO alimentDao;
    private Routeur routeur;

    // Méthode d'initialisation du servlet
    public void init() {
        // Obtention du contexte du servlet
        ServletContext context = getServletContext();
        // Récupération de la connexion à la base de données du contexte
        DatabaseConnection dbConnection = (DatabaseConnection) context.getAttribute("DB_CONNECTION");
        // Création d'une instance de AlimentDAO avec la connexion à la base de données
        alimentDao = new AlimentDAO(dbConnection);
        // Initialisation de l'instance de Routeur
        routeur = new Routeur();
    }

    // Méthode pour gérer les requêtes HTTP (GET, POST, PUT, DELETE...)
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Utilisation du routeur pour acheminer la requête vers la méthode appropriée dans AlimentDAO
        routeur.routeRequest(request, response, alimentDao);
    }

    // Vous pouvez ajouter des méthodes supplémentaires si nécessaire
}

Explications

  1. Définition de Classe AlimentServlet : Cette classe hérite de HttpServlet et est utilisée pour gérer les requêtes HTTP pour les aliments.

  2. Annotation @WebServlet : Définit l'URL ou le chemin d'accès au servlet. Ici, toutes les requêtes vers "/aliment/*" seront gérées par ce servlet.

  3. Variables Membres :

    • alimentDao est une instance de AlimentDAO utilisée pour interagir avec la base de données concernant les aliments.
    • routeur est une instance de Routeur qui sera utilisée pour diriger les requêtes vers les méthodes appropriées de AlimentDAO.
  4. Méthode init() :

    • Elle est appelée par le conteneur de servlets pour initialiser le servlet.
    • Elle récupère la connexion à la base de données du contexte de l'application et initialise alimentDao et routeur.
  5. Méthode service(HttpServletRequest request, HttpServletResponse response) :

    • Redéfinit la méthode service de la classe HttpServlet.
    • Utilise routeur pour diriger la requête vers la méthode appropriée dans AlimentDAO en fonction du type de requête HTTP (GET, POST, PUT, DELETE, etc.).
  6. Commentaire de fin de classe : Indique que d'autres méthodes peuvent être ajoutées si nécessaire pour étendre les fonctionnalités du servlet.

Ce code est un exemple typique de la façon dont les servlets Java sont utilisés pour gérer les requêtes HTTP dans une application web, en utilisant des DAO pour l'interaction avec la base de données et un routeur pour acheminer les requêtes.

 

Modifié le: mercredi 22 novembre 2023, 05:59