Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2329 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Servlet java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Servlet java

n°1239179
macfred
Posté le 04-11-2005 à 23:48:36  profilanswer
 

Salut à tous !
 
J'ai un soucis lorsques j'essaie de développer un servlet Java. Ce servlet consiste juste à faire une vérification de pseudo et mot de passe dans une base de donnée MySQL.
 
Mon problème est que je n'arrive pas à trouver le moyen d'afficher "désolé votre pseudo n'existe pas" quand le pseudo n'est pas dans la base de donnée. Ce servlet fonctionne par contre parfaitement quand le pseudo est existant dans la base de donnée. En fait, je crois que lorsque la requète n'affiche aucun résultat, je n'arrive pas à réutiliser ce résultat pour activer une conditionnelle.  
 
Le problème vient surement d'une erreur dans mon code alors je vous le colle ici :  
 

Code :
  1. import javax.servlet.*;
  2. import javax.servlet.http.*;
  3. import java.io.*;
  4. import java.util.*;
  5. import java.sql.*;
  6. public class ExerciceA extends HttpServlet {
  7. private static final String CONTENT_TYPE = "text/html";
  8. public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  9. {
  10. response.setContentType("text/html" );
  11. PrintWriter out = response.getWriter();
  12. String sPseudo = request.getParameter("txtPseudo" );
  13. String sPass = request.getParameter("txtPass" );
  14. Connection conn = null;
  15. Statement stmt = null;
  16. ResultSet rs = null;
  17. try
  18. {
  19. // Chargement du pilote
  20. Class.forName("org.gjt.mm.mysql.Driver" );
  21. // connection à la base de données
  22. conn = DriverManager.getConnection("jdbc:mysql://localhost/test" );
  23. // Préparation de la commande
  24. stmt = conn.createStatement();
  25. // Exécution de la commande SQL
  26. rs = stmt.executeQuery("SELECT * FROM utilisateurs WHERE pseudo='" + sPseudo.trim() + "'" );
  27. out.println(rs.getString("pass" ));
  28. }
  29. catch (Exception e)
  30. {
  31. }
  32. // écriture de l'entête du document HTML
  33. out.println("<html>\n" );
  34. out.println("<head>\n" );
  35. out.println("<title>Zone Sécurisée</title>\n" );
  36. out.println("</head>\n" );
  37. try
  38. { while(rs.next()) {
  39.  if(sPass.equals(rs.getString("pass" ))) {
  40.  out.println("<body><h2>Bienvenue au système de gestion des contacts</h2>\n" );
  41.  out.println("<h4>Voici la liste des opérations :</h4><br>" );
  42.  out.println("Consulter la liste des contacts<br>" );
  43.  out.println("Ajouter un contact<br>" );
  44.  out.println("Rechercher un contact<br>" );
  45. }
  46. else {
  47.  out.println("<body><h2>Désolé !</h2>\n" );
  48.  out.println("<h4>Le nom d'utilisateur et/ou le mot de passe sont invalides. Cliquez sur le lien ci dessous pour revenir au sommaire.</h4>\n" );
  49.  out.println("<a href=\"../ExerciceA.htm\">Retour à la page précédente.</a>\n" );
  50. }
  51. }
  52. if (rs.next()) {
  53. out.println("<body><h2>Désolé !</h2>\n" );
  54. out.println("<h4>Le nom d'utilisateur et/ou le mot de passe sont invalides. Cliquez sur le lien ci dessous pour revenir au sommaire.</h4>\n" );
  55. out.println("<a href=\"../ExerciceA.htm\">Retour à la page précédente.</a>\n" );
  56. }
  57. }
  58. catch (Exception e)
  59. {
  60. e.printStackTrace(out);
  61. }
  62. // écriture de la fin du document HTML
  63. out.println("</body>\n" );
  64. out.println("</html>\n" );
  65. try
  66. {
  67. rs.close();
  68. stmt.close();
  69. conn.close();
  70. }
  71. catch (Exception e)
  72. {
  73. out.println("<h1 align='center'>Une erreur est survenue !...</h1>" );
  74. }
  75. }
  76. public void destroy()
  77. {
  78. }
  79. }


 
Je sais que ça aurait été plus simple en PHP, mais c'est un exercice que j'ai à faire ;)  
 
Merci d'avance pour votre aide ! :wahoo:

mood
Publicité
Posté le 04-11-2005 à 23:48:36  profilanswer
 

n°1239221
glod 2
Votre trajet, notre projet.
Posté le 05-11-2005 à 05:36:12  profilanswer
 

Plusieurs erreurs :

Code :
  1. # rs = stmt.executeQuery("SELECT * FROM utilisateurs WHERE pseudo='" + sPseudo.trim() + "'" );
  2. # out.println(rs.getString("pass" ));
  3. # }
  4. # catch (Exception e)
  5. # {
  6. # }

là y a levée d'exception à chaque fois mais vu ton traitement tu risques pas de la voir...tu fais un getString sur ton ResultSet avant l'iteration.
 
Ensuite il ne doit y avoir qu'un et qu'un seul pseudo correspondant dans ta base, donc le rs ne doit contenir qu'un résultat. Donc pas de while(rs.next()) mais plutôt directement un if(rs.next()){on teste le mot de passe}...else {erreur, ce pseudo n'existe pas}.
N'oublies pas qu'à chaque rs.next() tu passes à la "ligne" suivante de ton resultset donc évidemment après un while(rs.next()) c'est fini...


Message édité par glod 2 le 05-11-2005 à 05:36:50
n°1239315
macfred
Posté le 05-11-2005 à 14:51:17  profilanswer
 

Yep Merci ! Je savais bien que c'était un détail qui me faisait tout foiré mais vu que je débute, j'ai du mal à bien repérer tous ces détails  :sol:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Servlet java

 

Sujets relatifs
[BEA/Weblogic/JAVA servlet] problemgetServletConfig().getServletContexJAVA, J2EE Servlet EJB JSP
[Java - Servlet] Methode Init() non executee[Servlet Java] [Php] [Socket] Circulation des données Java <-> Php
[Java][Servlet] Rafraichissement de page générées[Java] Une envie de JSP a la sauce Servlet
[Java] servlet: res.sendRedirect()[Java/Servlet] Balcer une page d'attente avt le début d'un traitement
[Java]Connection à un site via une servletChat en JAVA ( avec serveur en Servlet ?? )
Plus de sujets relatifs à : Servlet java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR