Bonjour,
je commence de développer un site web sous Eclipse avec java ee. Donc pour gérer les utilisateurs , j'ai créer un classe java nommée utilisateur. Un servelet pour gérer les sessions et les cookies des utilisateurs et model associée.
Donc j'aimerai bien savoir lorsque un nouveau utilisateur va s'inscrire , donc il est dirigé vers page register.jsp que j'ai nommée ,s'il est exsiste déja donc il s'identifier donc page login.jsp , , ma question est ce que je dois faire deux severlet différent une qui géré l'ajout des utilisateurs dans la base et une servlet pour gérer les sessions et cookies ou je peux le regrouper dans la même . Sinon pour model associée j'ai pris un exemple simple ou je mets le nom et mot de passe pour le remember
mais j'arrive pas comment faire d'une façon général.
ServeletUtilisateur pour les sessions et cookies :
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
 
 
package Controleur;
 
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
 
import entities.*;
import model.*;
 
 
/**
 * Servlet implementation class UtilisateurServelet
 */
@WebServlet("/UtilisateurServelet")
public class UtilisateurServelet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UtilisateurServelet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
 
		   String login = request.getParameter("login");
		   String nom = request.getParameter("nom");
		   String prenom = request.getParameter("prenom");
		   String password = request.getParameter("password");
		   String email = request.getParameter("email");
		   String etat = request.getParameter("etat");
 
 
 
		String action = request.getParameter("action");
		HttpSession session = request.getSession();
	   if (action == null ) { 
		   Utilisateur utilisateur = checkCookie(request);
		   if (utilisateur == null )
			   request.getRequestDispatcher("login.jsp").forward(request, response);
		   else {
			   UtilisateurModel utilModel = new UtilisateurModel();
		       if(utilModel.login(0, utilisateur.getLogin(),utilisateur.getNom(), utilisateur.getPrenom(),utilisateur.getPassword(), utilisateur.getEmail(), utilisateur.getEtat())){
		    	 session.setAttribute(nom, utilisateur.getNom());
				 request.getRequestDispatcher("index.jsp").forward(request, response);
		       } else {
		    	   session.setAttribute("error", "utilisateur non valide");
				   request.getRequestDispatcher("index.jsp").forward(request, response);
		       }
 
		   }
 
		}else {
			if(action.equalsIgnoreCase("logout") ) {
				// supprimer la session
				session.removeAttribute("nom");
				// supprimer cookie
				Cookie[] cookies = request.getCookies();
				for (Cookie ck : cookies) {
					if (ck.getName().equalsIgnoreCase("nom")) {
						 ck.setMaxAge(0);
					     response.addCookie(ck);
			          }
					if (ck.getName().equalsIgnoreCase("password")) {
						 ck.setMaxAge(0);
					     response.addCookie(ck);
		               }
	             }
				request.getRequestDispatcher("login.jsp").forward(request, response);
           }
		}
	}
 
	private Utilisateur checkCookie(HttpServletRequest request) {
		Cookie[] cookies = request.getCookies();
		Utilisateur utilisateur = null;
		if (cookies == null ) {
			return null;		
		}
		else {
			String nom = "", prenom ="", password = "" ;
			for (Cookie ck : cookies) {
			if (ck.getName().equalsIgnoreCase("nom"))
					 nom = ck.getValue();
			if (ck.getName().equalsIgnoreCase("password"))
				     password = ck.getValue();		
		}
			if(!nom.isEmpty() && !password.isEmpty()) 
				utilisateur = new Utilisateur(0, nom, prenom, password, password, password);    			
	  }
		 return utilisateur;
 
   }
 
 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
	  String action = request.getParameter("action");
	  HttpSession session = request.getSession();
	  UtilisateurModel utilModel = new UtilisateurModel();
	  if (action == null ) { 
		   //long id = request.getParameter("id").trim();
		   String nom = request.getParameter("nom").trim();
		   String password = request.getParameter("password").trim();
		   String login = request.getParameter("login").trim();
		   String prenom = request.getParameter("prenom").trim();
		   String email = request.getParameter("email").trim();
		   String etat = request.getParameter("etat").trim();
		   boolean remember = request.getParameter("remember")!= null;
		   if (utilModel.login((long)1, login, nom, prenom, password, email, Integer.parseInt(etat)))  {
			   session.setAttribute("nom", nom);
			   if (remember) {
				   Cookie cknom = new Cookie("nom", nom);
				   cknom.setMaxAge(3600);
				   response.addCookie(cknom);
				   Cookie ckpassword = new Cookie("password", password);
				   ckpassword.setMaxAge(3600);
				   response.addCookie(ckpassword);
			   }
			   request.getRequestDispatcher("index.jsp").forward(request, response);
 
 
		}else {
			session.setAttribute("error", "utilisateur non valide");
			request.getRequestDispatcher("index.jsp").forward(request, response);
       		  }
	  }else {
 
	}
 
}
}

page login.jsp:

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
 
<div class="row">
		<div class="span4">
			<div class="well">
			<h5>CREATE YOUR ACCOUNT</h5><br/>
			Veuillez creer votre compte.<br/><br/><br/>
			<!-- travaille sur session / formulaire utilise la servelet utilisateur   -->
			<form method="post" action="UtilisateurServelet">
			${error }
			  <div class="control-group">
				<div class="controls">
				  <input class="span3"  type="text" placeholder="nom">
				</div>
				<div class="controls">
				  <input class="span3"  type="text" placeholder="password">
				</div>
				<div class="controls">
				 <td> <input class="span3"  type="checkbox" placeholder="remember">remember</td>
				</div>
			 </div>
 
			  <div class="controls">
			  <button type="submit" class="btn block">Create Your Account</button>
			  </div>
			</form>
		</div>
		</div>
Puis model:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
package model;
 
public class UtilisateurModel {
	public boolean login(long id,String login, String nom, String prenom, String password, String email, int etat) {
		return nom.equalsIgnoreCase(" ") && password.equalsIgnoreCase("123");
 
 
	}
 
}
Servlet qui gere les utilisateur avec la base de donnée pas sur de fonctionnement

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
76
77
 
package Controleur;
 
import java.io.IOException;
import java.sql.DriverManager;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
 
 
 
/**
 * Servlet implementation class RegisterServelet
 */
@WebServlet("/RegisterServelet")
public class RegisterServelet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
 
    public RegisterServelet() {
        super();
 
    }
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			response.getWriter().append("Served at: ").append(request.getContextPath());
	}
 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
		   String nom = request.getParameter("nom");
		   String password = request.getParameter("password");
		   String login = request.getParameter("login");
		   String prenom = request.getParameter("prenom");
		   String email = request.getParameter("email");
		   String etat = request.getParameter("etat");
 
		   try {
 
				Class.forName("com.mysql.jdbc.Driver");
				Connection cnx = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/jeegeti","root","");
			    PreparedStatement pr =  (PreparedStatement) cnx.prepareStatement(
						"insert into utilisateur (id,username,first_name,last_name,password,email,role,photo) values (default,?,?,?,?,?,?,?)"
						);
 
				   pr.setString(1,nom);
				   pr.setString(2,password );
				   pr.setString(3, login);
				   pr.setString(4,prenom );
				   pr.setString(5,email );
				   pr.setString(6,etat );
 
 
				   pr.executeUpdate();
				   pr.close();
 
				   response.sendRedirect("register.jsp");   
 
 
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
 
 
 
 
	}
 
 
}
Merci pour vos aides