Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre à l'essai
    Homme Profil pro biz bass
    Étudiant
    Inscrit en
    septembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Nom : Homme biz bass
    Âge : 24
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2010
    Messages : 60
    Points : 21
    Points
    21

    Par défaut Problème de requête dans ma servlet

    Bonjour , donc j'essaye de faire 2 requetes dans ma servlets qui doit afficher un livre soit par titre soit par mots clefs , mais on dirait que 1 toit n'est pas assez pour ces deux requetes ....il n'a que une requetes qui s'execute si j'efface l'autre ?
    quoi faire pour faire en sorte que ces deux requetes soit fonctionelle ?


    voici ma servlet
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    package com.TP1.controleur;
     
    import javax.servlet.RequestDispatcher;
    import java.io.PrintWriter;
    import java.io.IOException;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import javax.sql.DataSource;
    import javax.sql.*;
     
    import com.TP1.jdbc.Connexion;
    import com.TP1.entites.Livre;
    import com.TP1.jdbc.dao.LivresDAO;
     
    public class AfficherLivre extends HttpServlet 
    {
     
        @SuppressWarnings("CallToThreadDumpStack")
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException 
    { response.setContentType("text/html;charset=UTF-8");
              String  n1 = request.getParameter("isbn");   
               String n2 = request.getParameter("motscles");
     
               try 
              {
                 Class.forName("com.mysql.jdbc.Driver");
     
    	     Connexion.setUrl("jdbc:mysql://localhost/livres?user=root");
    	     Connection cnx = Connexion.getInstance();
     
    	     LivresDAO livDao = new LivresDAO(cnx);
                 //Livre livre; 
                 livDao.read(n1);
                //Methode des affichagess           
                List<Livre> listLivres = livDao.findLivre(n1); 
     
                 request.setAttribute("afficherlivres", listLivres);
     
                 RequestDispatcher r = this.getServletContext().getRequestDispatcher("/livre.jsp");
                 r.forward(request, response);             
     
           }
            catch(Exception e)
            {
                e.printStackTrace();
            }
     
              try
              {  
                 Class.forName("com.mysql.jdbc.Driver");
     
    	     Connexion.setUrl("jdbc:mysql://localhost/livres?user=root");
    	     Connection cnx = Connexion.getInstance();
     
    	     LivresDAO livDao = new LivresDAO(cnx);
                 //Livre livre; 
                 livDao.readMots(n2);
                //Methode des affichagess           
                List<Livre> listLivres = livDao.findMotsCles(n2); 
     
                 request.setAttribute("affichermots", listLivres);
     
                 RequestDispatcher r = this.getServletContext().getRequestDispatcher("/livre.jsp");
                 r.forward(request, response);             
     
           }
            catch(Exception e)
            {
                e.printStackTrace();
            }
     
                }
     
     
     
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException 
        {
            processRequest(request, response);
        }
     
     
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }
     
     
        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
    }

  2. #2
    Membre Expert Avatar de fxrobin
    Homme Profil pro
    Formateur JAVA / XML
    Inscrit en
    novembre 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur JAVA / XML
    Secteur : Service public

    Informations forums :
    Inscription : novembre 2007
    Messages : 866
    Points : 1 188
    Points
    1 188

    Par défaut

    c'est parce que tu fais 2 forward.
    Tu ne peux faire qu'un seul forward.

    Solution :
    1 - Donc tu déclenches tes 2 requêtes.
    2 - Tes 2 requêtes pose un attribut dans la request ...
    3 - ensuite tu dois faire LE forward.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  3. #3
    Membre confirmé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    mars 2012
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : mars 2012
    Messages : 366
    Points : 229
    Points
    229

    Par défaut

    Tu dois faire une structure conditionnelle selon l'attribut du request
    càd si recherche par titre tu exécutes la recherche par livre sinon tu exécuteras l'autre, et non pas les deux requêtes séparés avec chacun un forward
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •