Routeur.java
Conditions d’achèvement
package com.example.util;
// Import des classes nécessaires pour gérer les requêtes et réponses HTTP
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Import de l'interface IGenericCRUD pour les opérations CRUD
import com.example.dao.IGenericCRUD;
import java.io.IOException;
// Déclaration de la classe Routeur
public class Routeur {
// Méthode pour router les requêtes HTTP en fonction de leur type et paramètres
public void routeRequest(HttpServletRequest request, HttpServletResponse response, IGenericCRUD dao) throws IOException {
// Récupération de la méthode HTTP de la requête (GET, POST, PUT, DELETE)
String method = request.getMethod();
// Récupération de paramètres spécifiques (id et name) de la requête, s'ils existent
String idParam = request.getParameter("id");
String nameParam = request.getParameter("name");
// Bloc try-catch pour gérer les exceptions potentielles
try {
// Condition pour traiter les requêtes GET avec le paramètre 'name'
if ("GET".equals(method) && nameParam != null) {
dao.handleFindByName(request, response);
}
// Condition pour traiter les requêtes GET avec le paramètre 'id'
else if ("GET".equals(method) && idParam != null) {
dao.handleFindById(request, response);
}
// Sinon, utiliser un switch pour traiter selon la méthode HTTP
else {
switch (method) {
case "GET":
dao.handleGet(request, response);
break;
case "POST":
dao.handlePost(request, response);
break;
case "PUT":
dao.handlePut(request, response);
break;
case "DELETE":
dao.handleDelete(request, response);
break;
// Cas par défaut pour les méthodes non supportées
default:
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "Méthode non supportée");
break;
}
}
// Bloc catch pour attraper et gérer les exceptions
} catch (Exception e) {
// Impression de la trace de la pile d'erreur pour le débogage
e.printStackTrace();
// Envoi d'une erreur 500 (erreur serveur interne) en réponse
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Erreur interne du serveur");
}
}
}
- Le
Routeurest une classe utilitaire qui sert à diriger les requêtes HTTP vers les méthodes appropriées en fonction de leur type (GET, POST, PUT, DELETE) et des paramètres qu'elles contiennent. - La méthode
routeRequestexamine la méthode HTTP de la requête et les paramètres 'id' et 'name', s'ils sont présents, pour décider de l'action à prendre. - En cas de requête GET avec un paramètre spécifique, la méthode correspondante pour traiter cette requête est appelée.
- Pour d'autres types de requêtes, le switch case est utilisé pour appeler la méthode CRUD appropriée de l'interface
IGenericCRUD. - Les erreurs et exceptions sont gérées de manière à fournir une réponse appropriée au client, améliorant ainsi la robustesse de l'application.
Ce code est un exemple typique de la façon dont les requêtes HTTP peuvent être gérées de manière flexible dans une application web Java, permettant une séparation claire entre la logique de routage et la logique métier.
Modifié le: mardi 21 novembre 2023, 09:30