probleme d'authentification jsp/servlet mysql
Bonjour tout le monde,
je suis en train de developper une toute petite application tournant autour de jsp/servlet.
mon probleme est generé lors de mon authentification.
j'ai un formulaire login.jsp où je rempli mes données. le probleme se trouve dans la servlet mais j'arrive pas à le detecter.
voila mon code 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
| import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Serv extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
/**Process the HTTP Get request*/
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/biblio";
Connection connection=null;
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String nom = req.getParameter("nom");
String passe = req.getParameter("passe");
String profession = req.getParameter("profession");
try {
// Load the database driver
Class.forName("org.gjt.mm.mysql.Driver");
// Pour se connecter à la database
connection = DriverManager.getConnection(connectionURL, "root", "rajae");
Statement commande = connection.createStatement();
ResultSet RS = commande.executeQuery("SELECT nom,passe,profession FROM client");
while(RS.next())
{
if (nom.equals(RS.getString("nom")) && passe.equals(RS.getString("passe")) && "client".equals(profession))
{
RequestDispatcher dispat = req.getRequestDispatcher("/client.jsp");
dispat.forward(req,res);
}
if (nom.equals(RS.getString("nom")) && passe.equals(RS.getString("passe")) && "responsable".equals(profession))
{
RequestDispatcher dispat = req.getRequestDispatcher("/responsable.jsp");
dispat.forward(req,res);
}
else
{
RequestDispatcher dispat = req.getRequestDispatcher("/erreur_login.jsp");
dispat.forward(req,res);
}
}
RS.close();
commande.close();
}
catch(ClassNotFoundException e){
out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
out.println(ignored);
}
}
}
} |
quand j'execute mon code il me méne directement vers page erreur erreur_login.jsp
dans mon formulaire login.jsp on saisi le nom le motpasse et la profession qui est soi client soit responsable et selon la profession il mene vers deux pages diffirentes.sionon vers une page erreur.
mais dans tous les cas il mene vers page erreur et je sais pas ou est le prob
j'espere que c'est clair. et merci beaucoup
probleme d'authentification jsp/servlet mysql
Bonjour,
fais surtout attention aux blanc, utilises TRIM().
et aussi ecris profession.equals("responsable")) au lieu de "responsable".equals(profession) bien sur ajouter la méthode TRIM()
Code:
if (nom.equals(RS.getString("nom")) && passe.equals(RS.getString("passe")) && profession.equals("responsable"))
probleme d'authentification jsp/servlet mysql
Fais un System.out.println de ces variables nom, profession et profession ainsi que leurs taille avec l'attribut Length. juste avant le 2em IF puis tu compares...