Bonsoir à tous, je viens de créer une Servlet Login et une page JSP Login afin de permettre l'authentification des utilisateurs qui se sont enregistrés dans ma base de donnée. Le problème de ma Servlet c'est qu'elle ne permet l’authentification que de la dérniére personne s'étant inscrite ... et je ne comprend pas du tout pourquoi !
Et dans un deuxième temps j'aimerai changer la connexion de ma Servlet pour passer par mon fichier persistence.xml
Voici mes codes ! avez vous une idée de l'origine du probléme ?
Ma servlet Login :
Ma page JSP login :
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
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
72
73
74
75 package com.supmessaging.servlet; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet(urlPatterns = "/Logintest") public class Login extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; private ServletConfig config; public void init(ServletConfig config) throws ServletException{ // this.config=config; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ PrintWriter out = response.getWriter(); // "configuration" de la connexion à la base de donnée String connectionURL = "jdbc:mysql://localhost:3306/supmessaging"; Connection connection=null; ResultSet rs; //variable locale pour le username et le password String usrnm=new String(""); String pswd=new String(""); response.setContentType("text/html"); try { Class.forName("com.mysql.jdbc.Driver"); //Connexion à la base de données connection = DriverManager.getConnection(connectionURL, "root", ""); // on récupére username et password dans la BDD String sql = "SELECT username, password FROM users" ; Statement s = connection.createStatement(); s.executeQuery (sql); rs = s.getResultSet(); while (rs.next ()){ usrnm=rs.getString("username"); pswd=rs.getString("password"); } rs.close (); s.close (); }catch(Exception e){ System.out.println("Exception is ;"+e); } //on compare les usernames et password entrer avec ceux de la ba BDD if(usrnm.equals(request.getParameter("username")) && pswd.equals(request.getParameter("password"))){ request.getSession().setAttribute("username", usrnm); out.println("login ok"); } else{ out.println("login nok"); } } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { RequestDispatcher rd = req.getRequestDispatcher("/login.jsp"); rd.forward(req, resp); } }
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 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="java.util.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>SupMessaging by MLabs</title> <link rel="stylesheet" href="./style.css" /> </head> <body> <%@ include file="header.jsp" %> <!-- Main --> <div id="main" class="main"> <form action="<%= request.getContextPath() %>/Logintest" method="post"> <h2>identifiez vous</h2> <p> Nom d'utilisateur :<br> <input type="text" pattern=".{4,30}" name="username" placeholder="4 caractères minimum." size=30 required> <br> Mot de passe :<br> <input type="password" pattern=".{8,40}" name="password" placeholder="8 caractères minimum." size=30 required> <br> <input type="submit" value="Soumettre"> </p> </form> </div> <%@ include file="footer.jsp" %> </body> </html>
Ma page persistence.xml :
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 <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="PU" transaction-type="RESOURCE_LOCAL"> <properties> <property name="hibernate.archive.autodetection" value="class" /> <property name="hibernate.format_sql" value="true" /> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/supmessaging" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
Partager