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