diff --git a/pom.xml b/pom.xml index 60cfac0..7bb40df 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,17 @@ ${jakartaee} provided + + jakarta.platform + jakarta.jakartaee-web-api + 10.0.0 + provided + + + org.mariadb.jdbc + mariadb-java-client + 3.3.2 + diff --git a/src/main/java/com/test/bdd/ClientJpa.java b/src/main/java/com/test/bdd/ClientJpa.java new file mode 100644 index 0000000..d88016c --- /dev/null +++ b/src/main/java/com/test/bdd/ClientJpa.java @@ -0,0 +1,37 @@ +/* + * 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.Stateless; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @author emile.malcuit + */ +@Stateless //type EJB, logique métier, à injecter dans les autres classes avec @EJB +public class ClientJpa { + + @PersistenceContext(unitName = "bdclientPU") //en lien avec le fichier persistence.xml : + private EntityManager em; + + // Lecture de tous les clients + public List readAll() { + List lesClients = em.createQuery("SELECT c FROM Client c", Client.class).getResultList(); + return lesClients; + } + + // Création d’un client + public int create(Client unClient) { + em.persist(unClient); // enregistre l’objet en base + // Force la synchro avec la base pour récupérer l’ID tout de suite + em.flush(); + return unClient.getId(); // l’ID est rempli automatiquement par JPA + } +} \ No newline at end of file diff --git a/src/main/java/com/test/bdd/ClientMysql.java b/src/main/java/com/test/bdd/ClientMysql.java index fa2e3a4..9b69dfa 100644 --- a/src/main/java/com/test/bdd/ClientMysql.java +++ b/src/main/java/com/test/bdd/ClientMysql.java @@ -9,7 +9,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; -import com.test.beans.Client; +import com.test.beans.ClientOld; import java.sql.PreparedStatement; /** @@ -17,8 +17,7 @@ import java.sql.PreparedStatement; * @author emile.malcuit */ public class ClientMysql { - private Connection laConnexion = connexionSQL.getConnect("192.168.100.100", "bdclient", "adminClient", "admin"); - + private Connection laConnexion = connexionSQL.getConnect("192.168.100.100", "bdclient", "adminClient", "mdpBDclient"); public ClientMysql() { } @@ -27,7 +26,7 @@ public class ClientMysql { } - public void createClient(Client newCli) { + public void createClient(ClientOld newCli) { String commande = "INSERT INTO client(nom, prenom, mail) VALUES (?, ?, ?)"; try (PreparedStatement pstmt = laConnexion.prepareStatement(commande)) { @@ -47,14 +46,14 @@ public class ClientMysql { - public ArrayList readAll(){ - ArrayList lesClients=new ArrayList<>(); + public ArrayList readAll(){ + ArrayList lesClients=new ArrayList<>(); try { Statement stmt=laConnexion.createStatement(); ResultSet resultQ=null; resultQ=stmt.executeQuery("SELECT * FROM client;"); while (resultQ.next()){ - Client resultat=new Client(resultQ.getInt("id"),resultQ.getString("nom"),resultQ.getString("prenom"),resultQ.getString("mail")); + ClientOld resultat=new ClientOld(resultQ.getInt("id"),resultQ.getString("nom"),resultQ.getString("prenom"),resultQ.getString("mail")); lesClients.add(resultat); } resultQ.close(); @@ -70,9 +69,9 @@ public class ClientMysql { } - public Client read(int id){ + public ClientOld read(int id){ String commande = "SELECT * FROM client WHERE id = ?"; - Client recherche = new Client(); + ClientOld recherche = new ClientOld(); try(PreparedStatement pstmt = laConnexion.prepareStatement(commande)){ pstmt.setString(1, Integer.toString(id)); diff --git a/src/main/java/com/test/bdd/SalarieJpa.java b/src/main/java/com/test/bdd/SalarieJpa.java new file mode 100644 index 0000000..947e278 --- /dev/null +++ b/src/main/java/com/test/bdd/SalarieJpa.java @@ -0,0 +1,32 @@ +/* + * 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 jakarta.ejb.Stateless; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import java.util.List; + +/** + * + * @author emile.malcuit + */ +@Stateless +public class SalarieJpa { + @PersistenceContext(unitName = "bdclientPU") //en lien avec le fichier persistence.xml : + private EntityManager em; + + // Lecture de tous les clients + public List readAll() { + List lesSalaries = em.createQuery("SELECT c FROM Salarie c", Salarie.class).getResultList(); + return lesSalaries; + } + + public Salarie find(Salarie unSalarie){ + return em.find(Salarie.class, unSalarie); + } + +} diff --git a/src/main/java/com/test/bdd/SalarieMySQL.java b/src/main/java/com/test/bdd/SalarieMySQL.java index cdcbb43..f535387 100644 --- a/src/main/java/com/test/bdd/SalarieMySQL.java +++ b/src/main/java/com/test/bdd/SalarieMySQL.java @@ -4,7 +4,7 @@ */ package com.test.bdd; -import com.test.beans.Salarie; +import com.test.beans.SalarieOld; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -15,14 +15,14 @@ import java.sql.SQLException; * @author emile.malcuit */ public class SalarieMySQL { - private Connection laConnexion = connexionSQL.getConnect("192.168.100.100", "bdclient", "adminClient", "admin"); + private Connection laConnexion = connexionSQL.getConnect("192.168.100.100", "bdclient", "adminClient", "mdpBDclient"); public SalarieMySQL() { } - public Salarie read(String nom, String mdp){ + public SalarieOld read(String nom, String mdp){ String commande = "SELECT * FROM salarie WHERE nom = ? and mdp = ?"; - Salarie recherche = new Salarie(); + SalarieOld recherche = new SalarieOld(); try(PreparedStatement pstmt = laConnexion.prepareStatement(commande)){ pstmt.setString(1, nom); diff --git a/src/main/java/com/test/beans/Client.java b/src/main/java/com/test/beans/Client.java index 2d8469d..e959385 100644 --- a/src/main/java/com/test/beans/Client.java +++ b/src/main/java/com/test/beans/Client.java @@ -4,69 +4,73 @@ */ package com.test.beans; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import java.io.Serializable; + /** * * @author emile.malcuit */ +@Entity // indique que c’est une entité gérée par JPA +@Table(name = "client") // nom de la table SQL dans la bd liée + public class Client { + + //Annotations pour gérer id auto-incrémenté + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) // clé primaire auto-incrémentée private int id; + private String nom; private String prenom; private String mail; - - - public Client() { - } - + + public Client() {} // obligatoire pour JPA (constructeur vide) + public Client(int id, String nom, String prenom, String mail) { - this.id = id; + this.id=id; this.nom = nom; this.prenom = prenom; this.mail = mail; } - + + public Client(String nom, String prenom, String mail) { + this.nom = nom; + this.prenom = prenom; + this.mail = mail; + } + + // Getters, setters, toString() identiques + public int getId() + { return id; } - - 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; - } - + 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 + '}'; } - - - - - - -} +} \ No newline at end of file diff --git a/src/main/java/com/test/beans/ClientOld.java b/src/main/java/com/test/beans/ClientOld.java new file mode 100644 index 0000000..1417782 --- /dev/null +++ b/src/main/java/com/test/beans/ClientOld.java @@ -0,0 +1,72 @@ +/* + * 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.beans; + +/** + * + * @author emile.malcuit + */ +public class ClientOld { + private int id; + private String nom; + private String prenom; + private String mail; + + + public ClientOld() { + } + + public ClientOld(int id, String nom, String prenom, String mail) { + this.id = id; + this.nom = nom; + this.prenom = prenom; + this.mail = mail; + } + + + + 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 + '}'; + } + + + + + + +} diff --git a/src/main/java/com/test/beans/Salarie.java b/src/main/java/com/test/beans/Salarie.java index 079f436..48fb9fa 100644 --- a/src/main/java/com/test/beans/Salarie.java +++ b/src/main/java/com/test/beans/Salarie.java @@ -4,22 +4,43 @@ */ package com.test.beans; -import java.util.Objects; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import java.io.Serializable; /** * * @author emile.malcuit */ -public class Salarie { +@Entity // indique que c’est une entité gérée par JPA +@Table(name = "salarie") // nom de la table SQL dans la bd liée +public class Salarie implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) // clé primaire auto-incrémentée private int id; + private String nom; private String mdp; private boolean isAdmin; + public Salarie(){} - - public Salarie() { - } + public Salarie(int id, String nom, String mdp, boolean isAdmin) { + this.id=id; + this.nom = nom; + this.mdp = mdp; + this.isAdmin = isAdmin; + } + + public Salarie(String nom, String mdp, boolean isAdmin) { + this.nom = nom; + this.mdp = mdp; + this.isAdmin = isAdmin; + } public int getId() { return id; @@ -53,7 +74,12 @@ public class Salarie { this.isAdmin = isAdmin; } - + @Override + public int hashCode() { + int hash = 7; + hash = 67 * hash + this.id; + return hash; + } @Override public boolean equals(Object obj) { @@ -67,13 +93,14 @@ public class Salarie { return false; } final Salarie other = (Salarie) obj; - if (!Objects.equals(this.nom, other.nom)) { - return false; - } - return Objects.equals(this.mdp, other.mdp); + return this.id == other.id; + } + + + + @Override + public String toString() { + return "com.test.beans.Salarie[ id=" + id + " ]"; } - - - } diff --git a/src/main/java/com/test/beans/SalarieOld.java b/src/main/java/com/test/beans/SalarieOld.java new file mode 100644 index 0000000..aa66e2e --- /dev/null +++ b/src/main/java/com/test/beans/SalarieOld.java @@ -0,0 +1,79 @@ +/* + * 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.beans; + +import java.util.Objects; + +/** + * + * @author emile.malcuit + */ +public class SalarieOld { + private int id; + private String nom; + private String mdp; + private boolean isAdmin; + + + + public SalarieOld() { + } + + 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 getMdp() { + return mdp; + } + + public void setMdp(String mdp) { + this.mdp = mdp; + } + + public boolean isIsAdmin() { + return isAdmin; + } + + public void setIsAdmin(boolean isAdmin) { + this.isAdmin = isAdmin; + } + + + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final SalarieOld other = (SalarieOld) obj; + if (!Objects.equals(this.nom, other.nom)) { + return false; + } + return Objects.equals(this.mdp, other.mdp); + } + + + + +} diff --git a/src/main/java/com/test/forms/AuthentifForm.java b/src/main/java/com/test/forms/AuthentifForm.java index 6cd6587..4a60f86 100644 --- a/src/main/java/com/test/forms/AuthentifForm.java +++ b/src/main/java/com/test/forms/AuthentifForm.java @@ -4,7 +4,8 @@ */ package com.test.forms; -import com.test.beans.Salarie; +import com.test.beans.SalarieOld; +import jakarta.ejb.EJB; import jakarta.servlet.http.HttpServletRequest; /** @@ -12,6 +13,9 @@ import jakarta.servlet.http.HttpServletRequest; * @author emile.malcuit */ public class AuthentifForm { + @EJB + + private String resultat = "Vous n'êtes pas administrateur"; public String getResultat() { @@ -23,11 +27,11 @@ public class AuthentifForm { } - public boolean controlerAdmin(Salarie unSalarie){ //HttpServletRequest request - //Salarie admin = new Salarie("Lovelace", "Ada"); + public boolean controlerAdmin(SalarieOld unSalarie){ //HttpServletRequest request + //Salarie admin = new SalarieOld("Lovelace", "Ada"); //String login = request.getParameter("user_name"); //String mdp = request.getParameter("user_password"); - //Salarie userSaisi = new Salarie(login, mdp); + //Salarie userSaisi = new SalarieOld(login, mdp); boolean retour = false; if(unSalarie.isIsAdmin()){ retour = true; diff --git a/src/main/java/com/test/forms/ListeForm.java b/src/main/java/com/test/forms/ListeForm.java new file mode 100644 index 0000000..0b71d41 --- /dev/null +++ b/src/main/java/com/test/forms/ListeForm.java @@ -0,0 +1,37 @@ +/* + * 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.forms; + +import com.test.bdd.ClientJpa; +import com.test.beans.Client; +import jakarta.ejb.EJB; +import jakarta.ejb.Stateless; +import java.util.List; + +/** + * + * @author emile.malcuit + */ +@Stateless //type EJB +public class ListeForm { + @EJB //pour utiliser la classe ClientJPA définie en @Stateless + private ClientJpa dao; + + private String resultat; + + public String getResultat() { + return resultat; + } + + public void setResultat(String resultat) { + this.resultat = resultat; + } + + public List readClient(){ + List lesClients = dao.readAll(); + System.out.println("Les clients récuprés"); + return lesClients; + } +} diff --git a/src/main/java/com/test/forms/NouveauClientForm.java b/src/main/java/com/test/forms/NouveauClientForm.java new file mode 100644 index 0000000..2c88798 --- /dev/null +++ b/src/main/java/com/test/forms/NouveauClientForm.java @@ -0,0 +1,45 @@ +/* + * 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.forms; + +import com.test.bdd.ClientJpa; +import com.test.beans.Client; +import jakarta.ejb.EJB; +import jakarta.ejb.Stateless; +import jakarta.servlet.http.HttpServletRequest; + +/** + * + * @author emile.malcuit + */ +@Stateless //type EJB +public class NouveauClientForm { + @EJB //pour utiliser la classe ClientJPA définie en @Stateless + private ClientJpa dao; + + private String resultat; + + public String getResultat() { + return resultat; + } + + public void setResultat(String resultat) { + this.resultat = resultat; + } + + public int verifierClient(HttpServletRequest request){ + int id=-1; + + String leNom = request.getParameter("nom"); + 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("email") ); + id = dao.create(cliSaisi); + System.out.println("Client créé avec id : " + id); + } + return id; + } +} \ No newline at end of file diff --git a/src/main/java/com/test/servlets/AcceuilServlet.java b/src/main/java/com/test/servlets/AcceuilServlet.java index 7d1bcdb..77a69dc 100644 --- a/src/main/java/com/test/servlets/AcceuilServlet.java +++ b/src/main/java/com/test/servlets/AcceuilServlet.java @@ -82,6 +82,7 @@ public class AcceuilServlet extends HttpServlet { String mdp = request.getParameter("user_password"); String test; if (login != null && !login.isBlank()) { + System.out.println("Hello world 1"); test = verifConnexion(login , mdp); request.setAttribute("login", login); request.setAttribute("connect",test); diff --git a/src/main/java/com/test/servlets/AuthentifServlet.java b/src/main/java/com/test/servlets/AuthentifServlet.java index 005cda4..9399c32 100644 --- a/src/main/java/com/test/servlets/AuthentifServlet.java +++ b/src/main/java/com/test/servlets/AuthentifServlet.java @@ -5,7 +5,7 @@ package com.test.servlets; import com.test.bdd.SalarieMySQL; -import com.test.beans.Salarie; +import com.test.beans.SalarieOld; import com.test.forms.AuthentifForm; import java.io.IOException; import java.io.PrintWriter; @@ -14,6 +14,7 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; /** * @@ -79,12 +80,18 @@ public class AuthentifServlet extends HttpServlet { //Recupération de l'éssaie de connexion String nom = request.getParameter("user_name"); String mdp = request.getParameter("user_password"); - Salarie unSalarie = new SalarieMySQL().read(nom, mdp); + SalarieOld unSalarie = new SalarieMySQL().read(nom, mdp); //Vérification des droits AuthentifForm authent = new AuthentifForm(); boolean isAdmin = authent.controlerAdmin(unSalarie); String status = authent.getResultat(); + HttpSession session = request.getSession(true); + if(isAdmin){ + session.setAttribute("isAuthorised", "yes"); + }else{ + session.setAttribute("isAuthorised", "no"); + } request.setAttribute("isAdmin", isAdmin); request.setAttribute("status", status); request.setAttribute("pseudo", unSalarie.getNom()); diff --git a/src/main/java/com/test/servlets/ListeServlet.java b/src/main/java/com/test/servlets/ListeServlet.java index b5213d5..c7286b2 100644 --- a/src/main/java/com/test/servlets/ListeServlet.java +++ b/src/main/java/com/test/servlets/ListeServlet.java @@ -4,8 +4,12 @@ */ package com.test.servlets; +import com.test.bdd.ClientJpa; import com.test.bdd.ClientMysql; import com.test.beans.Client; +import com.test.beans.ClientOld; +import com.test.forms.ListeForm; +import jakarta.ejb.EJB; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; @@ -13,7 +17,9 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.util.ArrayList; +import java.util.List; /** * @@ -21,7 +27,8 @@ import java.util.ArrayList; */ @WebServlet(name="ListeServlet", urlPatterns={"/ListeClients"}) public class ListeServlet extends HttpServlet { - + @EJB + private ListeForm leControle; // injecté par Jakarta EE grâce à @EJB, géré par le contrôleur /** * Processes requests for both HTTP GET and POST * methods. @@ -61,11 +68,18 @@ public class ListeServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //processRequest(request, response); - ClientMysql UnClient = new ClientMysql(); - ArrayList lesClients = UnClient.readAll(); - - request.setAttribute("lesClients", lesClients); - getServletContext().getRequestDispatcher("/WEB-INF/ListeClientsJSP.jsp").forward(request, response); + HttpSession session = request.getSession(true); + if(session.getAttribute("isAuthorised").equals("yes")){ + //ClientMysql UnClient = new ClientMysql(); + //ArrayList lesClients = UnClient.readAll(); + + List lesClients= leControle.readClient(); + request.setAttribute("lesClients", lesClients); + getServletContext().getRequestDispatcher("/WEB-INF/ListeClientsJSP.jsp").forward(request, response); + }else{ + getServletContext().getRequestDispatcher("/WEB-INF/AcceuilJSP.jsp").forward(request, response); + } + } /** diff --git a/src/main/java/com/test/servlets/ModifServlet.java b/src/main/java/com/test/servlets/ModifServlet.java new file mode 100644 index 0000000..399263b --- /dev/null +++ b/src/main/java/com/test/servlets/ModifServlet.java @@ -0,0 +1,95 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this template + */ +package com.test.servlets; + +import com.test.bdd.ClientMysql; +import com.test.beans.ClientOld; +import java.io.IOException; +import java.io.PrintWriter; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +/** + * + * @author emile.malcuit + */ +@WebServlet(name="ModifServlet", urlPatterns={"/Modification"}) +public class ModifServlet extends HttpServlet { + + /** + * Processes requests for both HTTP GET and POST + * methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + try (PrintWriter out = response.getWriter()) { + /* TODO output your page here. You may use following sample code. */ + out.println(""); + out.println(""); + out.println(""); + out.println("Servlet ModifServlet"); + out.println(""); + out.println(""); + out.println("

Servlet ModifServlet at " + request.getContextPath() + "

"); + out.println(""); + out.println(""); + } + } + + // + /** + * Handles the HTTP GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + int id = (int) request.getAttribute("id"); + ClientMysql cliSQL = new ClientMysql(); + ClientOld leClient = cliSQL.read(id); + + request.setAttribute("leClient", leClient); + //getServletContext().getRequestDispatcher("/WEB-INF/modifierClientJSP.jsp").forward(request, response); + + } + + /** + * Handles the HTTP POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// + +} diff --git a/src/main/java/com/test/servlets/NouveauServlet.java b/src/main/java/com/test/servlets/NouveauServlet.java index 0c08c55..6547cbd 100644 --- a/src/main/java/com/test/servlets/NouveauServlet.java +++ b/src/main/java/com/test/servlets/NouveauServlet.java @@ -5,7 +5,9 @@ package com.test.servlets; import com.test.bdd.ClientMysql; -import com.test.beans.Client; +import com.test.beans.ClientOld; +import com.test.forms.NouveauClientForm; +import jakarta.ejb.EJB; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; @@ -13,6 +15,7 @@ import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; /** * @@ -20,6 +23,8 @@ import jakarta.servlet.http.HttpServletResponse; */ @WebServlet(name="NouveauServlet", urlPatterns={"/NouveauClient"}) public class NouveauServlet extends HttpServlet { + @EJB + private NouveauClientForm leControle; // injecté par Jakarta EE grâce à @EJB, géré par le contrôleur /** * Processes requests for both HTTP GET and POST @@ -60,7 +65,12 @@ public class NouveauServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //processRequest(request, response); - getServletContext().getRequestDispatcher("/WEB-INF/NouveauClientJSP.jsp").forward(request, response); + HttpSession session = request.getSession(true); + if(session.getAttribute("isAuthorised").equals("yes")){ + getServletContext().getRequestDispatcher("/WEB-INF/NouveauClientJSP.jsp").forward(request, response); + }else{ + getServletContext().getRequestDispatcher("/WEB-INF/AcceuilJSP.jsp").forward(request, response); + } } @@ -77,7 +87,8 @@ public class NouveauServlet extends HttpServlet { throws ServletException, IOException { //Recuperation des informations inserer dans le formulaire nouveau client - Client newCli = new Client(); + /** + ClientOld newCli = new ClientOld(); newCli.setNom(request.getParameter("nom")); newCli.setPrenom(request.getParameter("prenom")); newCli.setMail(request.getParameter("email")); @@ -85,6 +96,9 @@ public class NouveauServlet extends HttpServlet { //Insertion du client en db ClientMysql cliSQL = new ClientMysql(); cliSQL.createClient(newCli); + */ + leControle.verifierClient(request); + System.out.println("test EJB"); response.sendRedirect(request.getContextPath() + "/ListeClients"); diff --git a/src/main/java/com/test/servlets/TestClientSQL.java b/src/main/java/com/test/servlets/TestClientSQL.java index d17452b..20e245c 100644 --- a/src/main/java/com/test/servlets/TestClientSQL.java +++ b/src/main/java/com/test/servlets/TestClientSQL.java @@ -6,7 +6,7 @@ package com.test.servlets; */ import com.test.bdd.ClientMysql; -import com.test.beans.Client; +import com.test.beans.ClientOld; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; @@ -42,8 +42,8 @@ public class TestClientSQL extends HttpServlet { out.println(""); out.println(""); ClientMysql UnClient = new ClientMysql(); - ArrayList lesClients = UnClient.readAll(); - for(Client unClient:lesClients){ + ArrayList lesClients = UnClient.readAll(); + for(ClientOld unClient:lesClients){ out.println(unClient.toString()); } out.println("

Servlet TestClientSQL at " + request.getContextPath() + "

"); diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 7582bf1..4ad8cb2 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -1,7 +1,15 @@ - - + + jdbc/bdclient + + + + + + + + diff --git a/src/main/webapp/WEB-INF/ListeClientsJSP.jsp b/src/main/webapp/WEB-INF/ListeClientsJSP.jsp index 10a86f2..909c0eb 100644 --- a/src/main/webapp/WEB-INF/ListeClientsJSP.jsp +++ b/src/main/webapp/WEB-INF/ListeClientsJSP.jsp @@ -29,6 +29,7 @@ Nom Prénom Mail + Mofication @@ -36,6 +37,7 @@ ${client.nom} ${client.prenom} ${client.mail} + Modification diff --git a/src/main/webapp/WEB-INF/modifierClientJSP.jsp b/src/main/webapp/WEB-INF/modifierClientJSP.jsp new file mode 100644 index 0000000..b7e33e3 --- /dev/null +++ b/src/main/webapp/WEB-INF/modifierClientJSP.jsp @@ -0,0 +1,41 @@ +<%-- + Document : modifierClientJSP.jsp + Created on : 3 oct. 2025, 13:46:53 + Author : emile.malcuit +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> + + + + + Modification d'un client + + + <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + <%@include file="jspf/entete.jspf" %> + <%@include file="jspf/menu.jspf" %> +

Bonjour Les Zouaves

+ + + +

Modification d’un client

+
+ +
+ +
+

+ +
+

+ +
+

+ +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 41d657d..878d932 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,5 +1,8 @@ + + Acceuil + AcceuilServlet com.test.servlets.AcceuilServlet @@ -20,6 +23,10 @@ TestClientSQL com.test.servlets.TestClientSQL + + ModifServlet + com.test.servlets.ModifServlet + AcceuilServlet /Acceuil @@ -40,6 +47,10 @@ TestClientSQL /TestClientSQL + + ModifServlet + /Modification + 30