Redirection bloqué sur backend java ee.

mariaP - Modifié le 24 mai 2023 à 20:22
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 24 mai 2023 à 20:21

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. 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:

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();
        }
    }
}


j'utiise phpmyadmin xampp, netbeans 8.2 et glassfish comme serveur.

A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
24 mai 2023 à 20:21

Bonjour,

"quand j'ai essayé d'afficher un message d'erreur dans le catch ça me saute directement la bas"

C'est quoi l'erreur affichée par ton e.printStackTrace() ?


0