package controleur; import Metier.Principale; import Metier.Livre; import java.io.IOException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class Recherche extends HttpServlet { public static final String VUE = "/Recherche.jsp"; public static final String CHAMP_TITRE = "titre"; public static final String CHAMP_OU_AUTEUR = "ouauteur"; //false = et true=ou public static final String CHAMP_AUTEUR = "auteur"; public static final String CHAMP_OU_CATEGORIE = "oucategorie"; //false = et true=ou public static final String CHAMP_CATEGORIE = "categorie"; public static final String CHAMP_MULTIPLE_LIVRE = "multipleLivre"; public static final String ATT_LAST_RECHERCHE = "lastRecherche"; public static final String ATT_RESULTAT = "resultat"; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* Affichage de la page de connection */ this.getServletContext().getRequestDispatcher(this.VUE).forward( request, response ); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); ArrayList<Livre> listeLivre = new ArrayList(); /* Récupération des champs du formulaire. */ String titre = request.getParameter(this.CHAMP_TITRE); boolean ouAuteur = Boolean.parseBoolean(request.getParameter(this.CHAMP_OU_AUTEUR)); String auteur = request.getParameter(this.CHAMP_AUTEUR); boolean ouCategorie = Boolean.parseBoolean(request.getParameter(this.CHAMP_OU_CATEGORIE)); String categorie = request.getParameter(this.CHAMP_CATEGORIE); boolean multipleLivre = Boolean.parseBoolean(request.getParameter(this.CHAMP_MULTIPLE_LIVRE)); // appel de la methode de recherche en metier qui me retourne une liste de Livre listeLivre = Metier.MetierFactory.getPrincipale().recherche(auteur, ouAuteur, titre, ouCategorie, categorie, multipleLivre); if(listeLivre.size() == 0){ String resultat = "<div class=\"alert alert-warning alert-dismissable\">\n" + " <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>\n" + " Il n'y pas de resultat dans la recherche !\n" + "</div>"; request.setAttribute(this.ATT_RESULTAT, resultat); } // appel de la methode de recherche en metier qui tri la liste Principale controleur = Metier.MetierFactory.getPrincipale(); listeLivre = controleur.tri(listeLivre, 0, 1); /* Stockage du résultat dans l'objet session */ session.setAttribute(this.ATT_LAST_RECHERCHE, listeLivre); session.setAttribute(this.CHAMP_TITRE, titre); session.setAttribute(this.CHAMP_OU_AUTEUR, ouAuteur); session.setAttribute(this.CHAMP_AUTEUR, auteur); session.setAttribute(this.CHAMP_OU_CATEGORIE, ouCategorie); session.setAttribute(this.CHAMP_CATEGORIE, categorie); session.setAttribute(this.CHAMP_MULTIPLE_LIVRE, multipleLivre); session.setAttribute("page", 0); /* Transmission de la paire d'objets request/response à notre JSP */ this.getServletContext().getRequestDispatcher(this.VUE).forward( request, response ); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }