Authentification

This commit is contained in:
2025-10-17 14:43:55 +02:00
parent 96cf8102a0
commit 3dab886f98
17 changed files with 203 additions and 365 deletions

View File

@@ -19,6 +19,11 @@
<version>${jakartaee}</version> <version>${jakartaee}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.5.6</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -0,0 +1,49 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.test.bdd;
import com.test.beans.Client;
import jakarta.ejb.*;
import jakarta.persistence.*;
import java.util.List;
/**
*
* @author steve.maingana
*/
@Stateless
public class ClientJPA {
@PersistenceContext(unitName = "bdclientPU") //en lien avec le fichier persistence.xml : <persistence-unit name="bdclientPU" transaction-type="JTA">
private EntityManager em;
// Mise à jour d'un client
public int update(Client client) {
Client leClient = em.merge(client);
em.flush();
return leClient.getId();
}
// Lecture d'un client
public Client read(int id) {
Client leClient = em.find(Client.class, id);
return leClient;
}
// Lecture de tous les clients
public List<Client> readAll() {
List<Client> lesClients = em.createQuery("SELECT c FROM Client c", Client.class).getResultList();
return lesClients;
}
// Création dun client
public int create(Client unClient) {
em.persist(unClient); // enregistre lobjet en base
// Force la synchro avec la base pour récupérer lID tout de suite
em.flush();
return unClient.getId(); // lID est rempli automatiquement par JPA
}
}

View File

@@ -1,106 +0,0 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.test.bdd;
import com.test.beans.Client;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
/**
*
* @author steve.maingana
*/
public class ClientMysql {
// private Connection laConnexion;
private Statement stmt = null;
private ResultSet result = null;
// public ClientMysql() {
Connection laConnexion = Connexion.getConnect("192.168.100.100", "bdclient", "adminBDClient", "mdpBDClient");
// }
public ArrayList<Client> readAll() {
ArrayList<Client> clients = new ArrayList<Client>();
try {
stmt = laConnexion.createStatement();
result = stmt.executeQuery("SELECT * FROM client");
while (result.next()) {
Client client = new Client(
result.getInt("id"),
result.getString("nom"),
result.getString("prenom"),
result.getString("mail")
);
clients.add(client);
}
result.close();
stmt.close();
} catch (SQLException ex) {
System.out.println("SQLException : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return clients;
}
public int create(Client unClient){
int id=-1;
String sql = "INSERT INTO client (nom, prenom, mail) VALUES (?,?,?);";
try (PreparedStatement prepStmt = laConnexion.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
prepStmt.setString(1, unClient.getNom());//le param. 1 est remplacé par le nom du client
prepStmt.setString(2, unClient.getPrenom());
prepStmt.setString(3, unClient.getMail());
int status = prepStmt.executeUpdate();
// récupération de la clé auto-générée
if (status > 0) {
try (ResultSet result = prepStmt.getGeneratedKeys()) {
if (result.next()) { // <-- utiliser next() et pas first()
id = result.getInt(1);
}
}
}
prepStmt.close();
} catch(SQLException ex){
System.out.println("SQLException:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("code Erreur:"+ex.getErrorCode());
}
return id;
}
public boolean update(int id, String nom, String prenom, String mail) {
String sql = "UPDATE client SET nom=?, prenom=?, mail=? WHERE id=?";
int update = 0;
try {
PreparedStatement preparedStmt = laConnexion.prepareStatement(sql);
preparedStmt.setString(1, nom);
preparedStmt.setString(2, prenom);
preparedStmt.setString(3, mail);
preparedStmt.setInt(4, id);
update = preparedStmt.executeUpdate();
} catch (SQLException ex) {
System.out.println("SQLException:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("code Erreur:"+ex.getErrorCode());
}
return update > 0;
}
}

View File

@@ -1,61 +0,0 @@
package com.test.bdd;
/*
Connexion.java
Classe permettant d'établir une connexion avec une base de données mySQL
*/
import java.sql.Connection;
import java.sql.DriverManager;
public class Connexion {
private static Connection connect; // Variable de connexion
/**
* Constructeur
* @param serveur nom du serveur, localhost si local
* @param bdd nom de la base de données
* @param nomUtil nom utilisateur
* @param mdp mot de passe lié à l'utilisateur
*/
private Connexion(String serveur, String bdd, String nomUtil, String mdp) {
try {
// 1. Chargement du driver
//Class.forName("com.mysql.jdbc.Driver");
Class.forName("org.mariadb.jdbc.Driver");
System.out.println("Driver accessible");
// 2. Initialisation des paramètres de connexion
String host = serveur; // Serveur de bd
String dbname = bdd; // Nom bd
String url = "jdbc:mariadb://" + host + "/" + dbname; // url de connexion
url += "?autoReconnect=true"; // Ajout 26/09/2021
System.out.println("url : "+url);
String user = nomUtil; // nom du user
System.out.println("nomUtil : "+nomUtil);
String passwd = mdp; // mot de passe
System.out.println("mdp : "+mdp);
// 3. Connexion
connect = (Connection) DriverManager.getConnection(url, user, passwd);
System.out.println("Connexion réussie !");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Retourne la connection établie (Création d'une connection si elle n'existe pas)
* @param serveur nom du serveur, localhost si local
* @param bdd nom de la base de données
* @param nomUtil nom utilisateur
* @param mdp mot de passe lié à l'utilisateur
* @return connection établie
*/
public static Connection getConnect(String serveur, String bdd, String nomUtil, String mdp) {
System.out.println("getConnect");
if (connect == null) {
new Connexion(serveur, bdd, nomUtil, mdp);
}
return connect;
}
}

View File

@@ -32,9 +32,10 @@ public class SalarieJPA {
} }
public Salarie readSalarie(String login, String mdp) { public Salarie readSalarie(String login, String mdp) {
TypedQuery<Salarie> query = em.createQuery("SELECT s FROM Salarie s WHERE s.login = ?1 AND s.mdp= ?2 LIMIT 1", Salarie.class); TypedQuery<Salarie> query = em.createQuery("SELECT s FROM Salarie s WHERE s.login = ?1 AND s.mdp= ?2", Salarie.class);
Salarie salarie = query.setParameter(1, login) Salarie salarie = query.setParameter(1, login)
.setParameter(2, mdp) .setParameter(2, mdp)
.setMaxResults(1)
.getSingleResult(); .getSingleResult();
return salarie; return salarie;

View File

@@ -1,84 +0,0 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package com.test.bdd;
import com.test.beans.Salarie;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
/**
*
* @author steve.maingana
*/
public class SalarieMysql {
// private Connection laConnexion;
private Statement stmt = null;
private ResultSet result = null;
// public ClientMysql() {
Connection laConnexion = Connexion.getConnect("192.168.100.100", "bdclient", "adminBDClient", "mdpBDClient");
// }
public ArrayList<Salarie> readAll() {
ArrayList<Salarie> salaries = new ArrayList<Salarie>();
try {
stmt = laConnexion.createStatement();
result = stmt.executeQuery("SELECT * FROM salarie");
while (result.next()) {
Salarie salarie = new Salarie(
result.getInt("id"),
result.getString("login"),
result.getString("mdp"),
result.getInt("admin")
);
salaries.add(salarie);
}
result.close();
stmt.close();
} catch (SQLException ex) {
System.out.println("SQLException : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return salaries;
}
public Salarie lireSalarie(String login, String mdp) {
Salarie salarie = null;
try {
PreparedStatement preparedStmt = laConnexion.prepareStatement("SELECT * FROM salarie WHERE login = ? AND mdp = ?");
preparedStmt.setString(1, login);
preparedStmt.setString(2, mdp);
result = preparedStmt.executeQuery();
if (result.next()) {
salarie = new Salarie(
result.getInt("id"),
result.getString("login"),
result.getString("mdp"),
result.getInt("admin")
);
}
} catch (SQLException ex) {
System.out.println("SQLException : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return salarie;
}
}

View File

@@ -3,61 +3,54 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.test.beans; package com.test.beans;
import jakarta.persistence.*;
/** /**
* *
* @author steve.maingana * @author steve.maingana
*/ */
@Entity
@Table(name = "client")
public class Client { public class Client {
// Annotations pour gérer id auto-incrémenté
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id; private int id;
private String nom; private String nom;
private String prenom; private String prenom;
private String mail; private String mail;
public Client(String nom, String prenom, String mail) { public Client() {} // obligatoire pour JPA (constructeur vide)
this.nom = nom;
this.prenom = prenom;
this.mail = mail;
}
public Client(int id, String nom, String prenom, String mail) { public Client(int id, String nom, String prenom, String mail) {
this.id = id; this.id=id;
this.nom = nom; this.nom = nom;
this.prenom = prenom; this.prenom = prenom;
this.mail = mail; this.mail = mail;
} }
public int getId() { public Client(String nom, String prenom, String mail) {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom; this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom; this.prenom = prenom;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail; this.mail = mail;
} }
// Getters, setters, toString() identiques
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getNom() { return nom; }
public void setNom(String nom) { this.nom = nom; }
public String getPrenom() { return prenom; }
public void setPrenom(String prenom) { this.prenom = prenom; }
public String getMail() { return mail; }
public void setMail(String mail) { this.mail = mail; }
@Override
public String toString() {
return "Client{" + "id=" + id + ", nom=" + nom + ", prenom=" + prenom + ", mail=" + mail + '}';
}
} }

View File

@@ -3,53 +3,52 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.test.beans; package com.test.beans;
import jakarta.persistence.*;
/** /**
* *
* @author steve.maingana * @author steve.maingana
*/ */
@Entity
@Table(name = "salarie")
public class Salarie { public class Salarie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id; private int id;
private String login; private String login;
private String mdp; private String mdp;
private boolean admin; private int admin;
public Salarie() {} // obligatoire pour JPA (constructeur vide)
public Salarie(int id, String login, String mdp, int admin) { public Salarie(int id, String login, String mdp, int admin) {
this.id = id; this.id = id;
this.login = login; this.login = login;
this.mdp = mdp; this.mdp = mdp;
this.admin = admin > 0;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getMdp() {
return mdp;
}
public void setMdp(String mdp) {
this.mdp = mdp;
}
public boolean isAdmin() {
return admin;
}
public void setAdmin(boolean admin) {
this.admin = admin; this.admin = admin;
} }
public Salarie(String login, String mdp, int admin) {
this.login = login;
this.mdp = mdp;
this.admin = admin;
}
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public String getMdp() { return mdp; }
public void setMdp(String mdp) { this.mdp = mdp; }
public int getAdmin() { return admin; };
public void setAdmin(int admin) { this.admin = admin; };
@Override
public String toString() {
return "Salarie{" + "id=" + id + ", login=" + login + ", mdp=" + mdp + ", admin=" + admin + '}';
}
} }

View File

@@ -4,20 +4,21 @@
*/ */
package com.test.forms; package com.test.forms;
import com.test.bdd.SalarieMysql; import com.test.bdd.SalarieJPA;
import com.test.beans.Salarie; import com.test.beans.Salarie;
import com.test.beans.User; import jakarta.ejb.*;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* *
* @author steve.maingana * @author steve.maingana
*/ */
@Stateless
public class AuthentifForm { public class AuthentifForm {
@EJB
private SalarieJPA dao;
public String resultat; public String resultat;
public AuthentifForm() {};
public String getResultat() { public String getResultat() {
return this.resultat; return this.resultat;
} }
@@ -27,10 +28,9 @@ public class AuthentifForm {
} }
public boolean existeUser(HttpServletRequest request) { public boolean existeUser(HttpServletRequest request) {
SalarieMysql salarieDB = new SalarieMysql();
String pseudo = (String) request.getParameter("pseudo"); String pseudo = (String) request.getParameter("pseudo");
String mdp = (String) request.getParameter("mdp"); String mdp = (String) request.getParameter("mdp");
Salarie user = salarieDB.lireSalarie(pseudo, mdp); Salarie user = dao.readSalarie(pseudo, mdp);
boolean existe = user != null; boolean existe = user != null;
@@ -42,11 +42,10 @@ public class AuthentifForm {
} }
public boolean controlerAdmin(HttpServletRequest request) { public boolean controlerAdmin(HttpServletRequest request) {
SalarieMysql salarieDB = new SalarieMysql();
String pseudo = (String) request.getParameter("pseudo"); String pseudo = (String) request.getParameter("pseudo");
String mdp = (String) request.getParameter("mdp"); String mdp = (String) request.getParameter("mdp");
Salarie user = salarieDB.lireSalarie(pseudo, mdp); Salarie user = dao.readSalarie(pseudo, mdp);
boolean estAdmin = user.isAdmin(); boolean estAdmin = user.getAdmin() > 0;
if (estAdmin) { if (estAdmin) {
this.setResultat("Vous êtes administrateur"); this.setResultat("Vous êtes administrateur");

View File

@@ -4,17 +4,21 @@
*/ */
package com.test.forms; package com.test.forms;
import com.test.bdd.ClientMysql; import com.test.bdd.ClientJPA;
import com.test.beans.Client;
import jakarta.ejb.EJB;
import jakarta.ejb.Stateless;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* *
* @author steve.maingana * @author steve.maingana
*/ */
@Stateless
public class ModifClientForm { public class ModifClientForm {
@EJB
private ClientJPA dao;
public String resultat; public String resultat;
public ModifClientForm() {};
public String getResultat() { public String getResultat() {
return resultat; return resultat;
@@ -25,13 +29,28 @@ public class ModifClientForm {
} }
public boolean modifierClient(HttpServletRequest request) { public boolean modifierClient(HttpServletRequest request) {
ClientMysql clientDB = new ClientMysql(); boolean modification = false;
String id = request.getParameter("clientId"); String id = request.getParameter("clientId");
String nom = request.getParameter("clientNom"); String nom = request.getParameter("clientNom");
String prenom = request.getParameter("clientPrenom"); String prenom = request.getParameter("clientPrenom");
String mail = request.getParameter("clientMail"); String mail = request.getParameter("clientMail");
Client client = dao.read(Integer.parseInt(id));
boolean modification = clientDB.update(Integer.parseInt(id), nom, prenom, mail); if (client != null) {
if (nom != null && !nom.isEmpty()) {
client.setNom(nom);
}
if (prenom != null && !prenom.isEmpty()) {
client.setPrenom(prenom);
}
if (mail != null && !mail.isEmpty()) {
client.setMail(mail);
}
modification = dao.update(client) == Integer.parseInt(id);
}
if (modification) { if (modification) {
this.setResultat("Le client N°"+id+" a été modifié avec succès"); this.setResultat("Le client N°"+id+" a été modifié avec succès");

View File

@@ -4,31 +4,42 @@
*/ */
package com.test.forms; package com.test.forms;
import com.test.bdd.ClientMysql; import com.test.bdd.ClientJPA;
import com.test.beans.Client; import com.test.beans.Client;
import jakarta.ejb.*;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
/** /**
* *
* @author steve.maingana * @author steve.maingana
*/ */
@Stateless
public class NouveauClientForm { public class NouveauClientForm {
public String resultat; @EJB
private ClientJPA dao;
public NouveauClientForm() {}; public String resultat;
public String getResultat() { public String getResultat() {
return resultat; return resultat;
} }
public void setResultat(String resultat) { public void setResultat(String resultat) {
this.resultat = resultat; this.resultat = resultat;
} }
public int verifierClient(HttpServletRequest request) { public int verifierClient(HttpServletRequest request) {
Client client = new Client(request.getParameter("nom_client"), request.getParameter("prenom_client"), request.getParameter("mail_client")); int id=-1;
ClientMysql clientDB = new ClientMysql();
int nouveauClient = clientDB.create(client); String leNom = request.getParameter("nom");
return nouveauClient; String lePrenom =request.getParameter("prenom");
if ((lePrenom.matches("[A-Za-zÀ-ÖØ-öø-ÿ' -]{1,100}"))&& (leNom.matches("[A-Za-zÀ-ÖØ-öø-ÿ' -]{1,100}"))){
Client cliSaisi = new Client(request.getParameter("nom"),request.getParameter("prenom"),request.getParameter("mail") );
id = dao.create(cliSaisi);
System.out.println("Client créé avec id : " + id);
}
return id;
}; };
} }

View File

@@ -5,6 +5,7 @@
package com.test.servlets; package com.test.servlets;
import com.test.forms.AuthentifForm; import com.test.forms.AuthentifForm;
import jakarta.ejb.EJB;
import jakarta.servlet.RequestDispatcher; import jakarta.servlet.RequestDispatcher;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
@@ -23,9 +24,8 @@ import jakarta.servlet.http.HttpSession;
@WebServlet(name = "AuthentifServlet", urlPatterns = {"/authentification"}) @WebServlet(name = "AuthentifServlet", urlPatterns = {"/authentification"})
public class AuthentifServlet extends HttpServlet { public class AuthentifServlet extends HttpServlet {
// String monPseudo = "Lovelace"; @EJB
String monPseudo = "steve"; private AuthentifForm auhtentifForm;
String monMdp = "Ada";
/** /**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
@@ -82,18 +82,17 @@ public class AuthentifServlet extends HttpServlet {
HttpSession maSession = request.getSession(); HttpSession maSession = request.getSession();
String pseudo = (String) request.getParameter("pseudo"); String pseudo = (String) request.getParameter("pseudo");
String mdp = (String) request.getParameter("mdp"); String mdp = (String) request.getParameter("mdp");
AuthentifForm authentification = new AuthentifForm();
maSession.setAttribute("isAuthentified", false); maSession.setAttribute("isAuthentified", false);
if (!pseudo.isBlank() && !mdp.isBlank()) { if (!pseudo.isBlank() && !mdp.isBlank()) {
if (authentification.existeUser(request)) { if (auhtentifForm.existeUser(request)) {
boolean isAdmin = authentification.controlerAdmin(request); boolean isAdmin = auhtentifForm.controlerAdmin(request);
maSession.setAttribute("isAdmin", isAdmin); maSession.setAttribute("isAdmin", isAdmin);
maSession.setAttribute("isAuthentified", true); maSession.setAttribute("isAuthentified", true);
} }
} }
request.setAttribute("authentification", authentification); request.setAttribute("authentification", auhtentifForm);
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/accueilVue.jsp"); RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/accueilVue.jsp");
dispatcher.forward(request, response); dispatcher.forward(request, response);
} }

View File

@@ -4,8 +4,9 @@
*/ */
package com.test.servlets; package com.test.servlets;
import com.test.bdd.ClientMysql; import com.test.bdd.ClientJPA;
import com.test.beans.Client; import com.test.beans.Client;
import jakarta.ejb.EJB;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
@@ -15,6 +16,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession; import jakarta.servlet.http.HttpSession;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
/** /**
* *
@@ -24,6 +26,8 @@ import java.util.ArrayList;
@WebServlet(name = "ListeServlet", urlPatterns = {"/ListeClients"}) @WebServlet(name = "ListeServlet", urlPatterns = {"/ListeClients"})
public class ListeServlet extends HttpServlet { public class ListeServlet extends HttpServlet {
@EJB
private ClientJPA dao;
/** /**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
@@ -69,11 +73,9 @@ public class ListeServlet extends HttpServlet {
response.sendRedirect("/Test2Jakarta/Accueil"); response.sendRedirect("/Test2Jakarta/Accueil");
return; return;
} }
ClientMysql clientDB = new ClientMysql();
ArrayList<Client> clients = clientDB.readAll();
List<Client> clients = dao.readAll();
request.setAttribute("clients", clients); request.setAttribute("clients", clients);
getServletContext().getRequestDispatcher("/WEB-INF/listeClientsVue.jsp").forward(request, response); getServletContext().getRequestDispatcher("/WEB-INF/listeClientsVue.jsp").forward(request, response);
} }

View File

@@ -5,6 +5,7 @@
package com.test.servlets; package com.test.servlets;
import com.test.forms.ModifClientForm; import com.test.forms.ModifClientForm;
import jakarta.ejb.EJB;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
@@ -20,6 +21,8 @@ import jakarta.servlet.http.HttpSession;
*/ */
@WebServlet(name = "ModifClientServlet", urlPatterns = {"modifierClient"}) @WebServlet(name = "ModifClientServlet", urlPatterns = {"modifierClient"})
public class ModifClientServlet extends HttpServlet { public class ModifClientServlet extends HttpServlet {
@EJB
private ModifClientForm modifClient;
/** /**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
@@ -81,10 +84,9 @@ public class ModifClientServlet extends HttpServlet {
return; return;
} }
ModifClientForm modification = new ModifClientForm(); modifClient.modifierClient(request);
boolean modifClient = modification.modifierClient(request);
request.setAttribute("modification", modifClient); request.setAttribute("modification", modifClient);
request.setAttribute("modification_message", modification.getResultat()); request.setAttribute("modification_message", modifClient.getResultat());
response.sendRedirect("/Test2Jakarta/ListeClients"); response.sendRedirect("/Test2Jakarta/ListeClients");
} }

View File

@@ -5,6 +5,7 @@
package com.test.servlets; package com.test.servlets;
import com.test.forms.NouveauClientForm; import com.test.forms.NouveauClientForm;
import jakarta.ejb.EJB;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
@@ -23,6 +24,8 @@ import java.util.ArrayList;
@WebServlet(name = "NouveauServlet", urlPatterns = {"/NouveauClient"}) @WebServlet(name = "NouveauServlet", urlPatterns = {"/NouveauClient"})
public class NouveauServlet extends HttpServlet { public class NouveauServlet extends HttpServlet {
@EJB
private NouveauClientForm leControle;
/** /**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
@@ -85,9 +88,7 @@ public class NouveauServlet extends HttpServlet {
@Override @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { throws ServletException, IOException {
int idClient = leControle.verifierClient(request);
NouveauClientForm nouveauClient = new NouveauClientForm();
int idClient = nouveauClient.verifierClient(request);
request.setAttribute("new_client", idClient > -1); request.setAttribute("new_client", idClient > -1);
if (idClient > -1) { if (idClient > -1) {

View File

@@ -1,7 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<persistence version="3.0" xmlns="https://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"> <persistence version="3.0" xmlns="https://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">
<!-- Define Persistence Unit --> <!-- Define Persistence Unit -->
<persistence-unit name="my_persistence_unit"> <!-- Define Persistence Unit -->
<persistence-unit name="bdclientPU" transaction-type="JTA">
</persistence-unit> <jta-data-source>jdbc/bdclient</jta-data-source>
<properties>
<property name="jakarta.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mariadb://192.168.100.100/bdclient"/>
<property name="jakarta.persistence.jdbc.user" value="adminBDClient"/>
<property name="jakarta.persistence.jdbc.password" value="mdpBDClient"/>
<!-- Optionnel : génération du schéma -->
<property name="jakarta.persistence.schema-generation.database.action" value="none"/>
</properties>
</persistence-unit>
</persistence> </persistence>

View File

@@ -16,11 +16,11 @@
<fieldset> <fieldset>
<legend>Client :</legend> <legend>Client :</legend>
<label>Nom :</label> <label>Nom :</label>
<input type="text" name="nom_client"> <input type="text" name="nom">
<label>Prénom :</label> <label>Prénom :</label>
<input type="text" name="prenom_client"> <input type="text" name="prenom">
<label>Adresse mail :</label> <label>Adresse mail :</label>
<input type="email" name="mail_client"> <input type="email" name="mail">
<input type="submit" value="Compléter"> <input type="submit" value="Compléter">
</fieldset> </fieldset>
</form> </form>