package fr.ensimag.biblio.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = {"/add_customer"}) public class AddCustomer extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* Récupération des données de formulaire */ request.setCharacterEncoding("UTF-8"); String texte = traiteDonnees(request); /* Envoi de la réponse */ response.setContentType("text/html;charset=UTF-8"); envoieReponse(texte, response); } private void envoieReponse(String texte, HttpServletResponse response) throws IOException { try (PrintWriter out = response.getWriter()) { out.println(""); out.println(""); out.println(""); out.println(""); out.println("Résumé de l’inscription"); out.println(""); out.println(""); out.println("

"); out.println(texte); out.println("

"); out.println("Retour vers l’accueil"); out.println(""); out.println(""); } } private String traiteDonnees(HttpServletRequest request) { /* Récupération des données */ String nom, prenom, sexe, code_ville; nom = request.getParameter("nom"); prenom = request.getParameter("prenom"); sexe = request.getParameter("sexe"); code_ville = request.getParameter("ville"); /* "inscription" peut avoir plusieurs valeurs */ String[] inscription = request.getParameterValues("inscription"); /* Vérification des données */ /* Remarque : si les données ont bien été envoyées via le formulaire * fourni, nom, prenom et code_ville ne peuvent pas être null. * Mais dans l’absolu on ne peut pas en être sûr. */ if (nom == null || prenom == null || sexe == null || code_ville == null || inscription == null) { return "Erreur : tous les champs doivent être remplis.
" + "Retour au formulaire"; } /* Traitement des données */ String lieu, accord, type_inscr; switch (code_ville) { case "GRE": lieu = "à Grenoble"; break; case "SMH": lieu = "à Saint-Martin d’Hères"; break; case "GIE": lieu = "à Gières"; break; default: lieu = "loin"; } if (sexe.equals("masculin")) { accord = ""; } else { accord = "e"; } if (inscription.length > 1) { type_inscr = "à la bibliothèque et à la discothèque"; } else { if (inscription[0].equals("bib")) { type_inscr = "à la bibliothèque"; } else { type_inscr = "à la discothèque"; } } String texte = "Bienvenue " + prenom + " " + nom + ". Vous habitez " + lieu + " et vous vous êtes inscrit" + accord + " " + type_inscr + "."; return texte; } }