IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Redirection ne marche pas ni avec sendRedirect ni avec RequestDispatcher


Sujet :

Développement Web en Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Redirection ne marche pas ni avec sendRedirect ni avec RequestDispatcher
    Bonjour,
    J'ai un problème concernant ma servlet qui insère les données à la base de données. J'ai un formulaire html avec la méthode post qui envoie les données vers la servlet qui a son tour insère les données et renvoie vers un autre diffèrent formulaire, j'ai essayé d'utiliser la fonction sendRedirect et RequestDispatcher mais ça n'a pas marché, quand j'ai essayé d'afficher un message d'erreur dans le catch ça me saute directement la bas. quand j'enlève les redirections et je mets juste un message que les données sont insérées ca marche très bien mais des que j'ajoute la redirection tout bug j'ai les bibliothéque nécessaire étant donné j'ai déjà utiliser les requêtes select et delete et ça a marché sans problème.
    Que faire ?

    Voici ma servlet qui permet d'insérer les données a la base de données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
     
    public class AjouterFacture extends HttpServlet {
     
        public void doPost(HttpServletRequest requete, HttpServletResponse reponse)
                throws ServletException, IOException {
                reponse.setContentType("text/html;charest=UTF-8");
                String numfac = requete.getParameter("numfac");
                String datefac = requete.getParameter("datefac");
                String choix = requete.getParameter("choix");
                int id = Integer.parseInt(requete.getParameter("id"));
     
                String sqlQuery = "INSERT INTO `facture`(`Num-facture`, `Date-facture`, `Mode-paiement`, `Id_client`) VALUES ('" + numfac + "', '" + datefac + "', '" + choix + "', '" + id + "')";
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/facturation", "root", "");
                Statement stmt = con.createStatement();
                int r = stmt.executeUpdate(sqlQuery);
     
                if(r > 0){
                RequestDispatcher rd = requete.getRequestDispatcher("FormulaireAjouterLigneFacture.jsp");
                rd.forward(requete, reponse);
                }
            else{
                RequestDispatcher rd = requete.getRequestDispatcher("FormulaireAjouterFacture.jsp");
                rd.include(requete, reponse);
                PrintWriter out = reponse.getWriter();
                out.print("Insertion failed.");
            }
                } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    et voici mon formulaire jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <body>
      <div class="container">
        <form method="POST" action="AjouterFacture">
          <div class="form-group">
            <label for="numfac">Numéro de facture :</label>
            <input type="text" id="nom" name="numfac" required>
          </div>
          <div class="form-group">
            <label for="datefac">Date facture :</label>
            <input type="date" id="telephone" name="datefac" required>
          </div>
          <div class="form-group">
            <label for="choix">Mode Paiement :</label>
            <select name="choix">
                <option value="carte">Carte bancaire</option>
                <option value="cheque">Cheque bancaire</option>
                <option value="liquide">Liquide</option>
            </select>
          </div>
          <div class="form-group">
            <label for="id">Id client :</label>
            <input type="number" id="email" name="id" required>
          </div>
          <button class="btn-submit" type="submit">OK</button>
        </form>
      </div>
    </body>
    j'utiise phpmyadmin xampp, netbeans 8.2 et glassfish comme serveur.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 457
    Points : 889
    Points
    889
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Pour commencer, il faut toujours séparer les rôle.

    Insérer en BDD = Traitement.

    Servlet = Controlleur.

    Le controlleur dépends du traitement en BDD, on y injecte la dépendance.

    Pour le fond du problème la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.sendRedirect("./application/index.html");
    Fonctionne, si index.html est dans le dossiser WEB-INF/application.

    Cordialement.

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    A noter que le driver que tu utilises est deprécié, de nos jours c'est 'com.mysql.cj.jdbc.Driver'
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Les fichiers .jsp sont déjà dans le WEB-INF j’ai essayé avec sendRedirect ça marche toujours pas

Discussions similaires

  1. [ASP.NET C#] Redirect qui marche pas
    Par vin100H dans le forum ASP.NET
    Réponses: 11
    Dernier message: 10/08/2007, 20h54
  2. Ma redirection ne marche pas si la page existe !
    Par pdtor dans le forum Apache
    Réponses: 1
    Dernier message: 07/08/2007, 21h05
  3. [RegEx] [bbcode] marche pas bien avec associations
    Par Woufeigh dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2007, 20h32
  4. redirection qui marche pas
    Par michka999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 13/07/2006, 16h45
  5. Redirection 404 marche pas en local
    Par le mage tophinus dans le forum Apache
    Réponses: 8
    Dernier message: 10/06/2005, 08h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo