0% found this document useful (0 votes)
62 views15 pages

Correction Du TP n2

This document describes the structure of a Java EE project using JPA and JSP. It includes the persistence.xml file for database configuration, the Etudiant entity class, and JPAService and saveetud controller classes for performing CRUD operations on Etudiant entities using JPA.

Uploaded by

Sarah Mensi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views15 pages

Correction Du TP n2

This document describes the structure of a Java EE project using JPA and JSP. It includes the persistence.xml file for database configuration, the Etudiant entity class, and JPAService and saveetud controller classes for performing CRUD operations on Etudiant entities using JPA.

Uploaded by

Sarah Mensi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI

Correction du TP n°2
JSP + SERVLET + JPA (CODE SOURCE )
Structure du projet sous NetBeans

persistence.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
3 <persistence-unit name="tp2jeePU" transaction-type="RESOURCE_LOCAL">
4 <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
5 <class>entites.Etudiant</class>
6 <exclude-unlisted-classes>false</exclude-unlisted-classes>
7 <properties>
8 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jspdata "/>
9 <property name="javax.persistence.jdbc.user" value="root"/>
10 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
11 <property name="javax.persistence.jdbc.password" value=""/>
12 </properties>
13 </persistence-unit>
14 </persistence>

Page 1 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
Entité : Etudiant.java
1 /**
2 *
3 * @author Riadh
4 */
5
6 package entites;
7
8 import java.io.Serializable;
9 import javax.persistence.Basic;
10 import javax.persistence.Column;
11 import javax.persistence.Entity;
12 import javax.persistence.Id;
13 import javax.persistence.NamedQueries;
14 import javax.persistence.NamedQuery;
15 import javax.persistence.Table;
16 import javax.xml.bind.annotation.XmlRootElement;
17
18 @Entity
19 @Table(name = "etudiant")
20 @XmlRootElement
21
22 public class Etudiant implements Serializable {
23
24 private static final long serialVersionUID = 1L;
25 @Id
26 @Basic(optional = false)
27 @Column(name = "ncin")
28 private Integer ncin;
29 @Basic(optional = false)
30 @Column(name = "nsic")
31 private int nsic;
32 @Basic(optional = false)
33 @Column(name = "nom")
34 private String nom;
35 @Basic(optional = false)
36 @Column(name = "prenom")
37 private String prenom;
38
39 public Etudiant() {
40 }
41
42 public Etudiant(Integer ncin) {
43 this.ncin = ncin;
44 }
45
46 public Etudiant(Integer ncin, int nsic, String nom, String prenom) {
47 this.ncin = ncin;
48 this.nsic = nsic;
49 this.nom = nom;
50 this.prenom = prenom;
51 }
52
53 public Integer getNcin() {
54 return ncin;
55 }
56
57 public void setNcin(Integer ncin) {
58 this.ncin = ncin;
59 }
60

Page 2 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
61 public int getNsic() {
62 return nsic;
63 }
64
65 public void setNsic(int nsic) {
66 this.nsic = nsic;
67 }
68
69 public String getNom() {
70 return nom;
71 }
72
73 public void setNom(String nom) {
74 this.nom = nom;
75 }
76
77 public String getPrenom() {
78 return prenom;
79 }
80
81 public void setPrenom(String prenom) {
82 this.prenom = prenom;
83 }
84
85 @Override
86 public int hashCode() {
87 int hash = 0;
88 hash += (ncin != null ? ncin.hashCode() : 0);
89 return hash;
90 }
91
92 @Override
93 public boolean equals(Object object) {
94 // TODO: Warning - this method won't work in the case the id fields are not set
95 if (!(object instanceof Etudiant)) {
96 return false;
97 }
98 Etudiant other = (Etudiant) object;
99 if ((this.ncin == null && other.ncin != null) || (this.ncin != null && !this.ncin.equals(other.ncin))) {
100 return false;
101 }
102 return true;
103 }
104
105 @Override
106 public String toString() {
107 return "entites.Etudiant[ ncin=" + ncin + " ]";
108 }
109
110 }

Page 3 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
Contrôleurs
JPAService.java

1 /**
2 *
3 * @author Riadh
4 */
5 package controllers;
6
7 import entites.Etudiant;
8 import java.util.ArrayList;
9 import java.util.Iterator;
10 import java.util.List;
11 import javax.persistence.EntityManager;
12 import javax.persistence.EntityManagerFactory;
13 import javax.persistence.EntityTransaction;
14 import javax.persistence.Persistence;
15 import javax.persistence.Query;
16
17 public class JPAService {
18 private EntityManagerFactory emf;
19 private EntityManager em;
20
21
22 public boolean Connexion(String persistenceUnitName){
23 try{
24 emf = Persistence.createEntityManagerFactory(persistenceUnitName);
25 em = emf.createEntityManager();
26 return true;
27 }catch(Exception ex){
28 System.err.println(ex.getMessage());
29 return false;
30 }
31 }
32
33 public void Deconnexion(){
34 try{
35 //si la connexion est ouverte
36 if(emf.isOpen())
37 emf.close();
38 if(em.isOpen())
39 em.close();
40 }catch(Exception ex){
41 System.err.println(ex.getMessage());
42 }
43 }
44
45 private boolean isEtudiantExistant(Integer ncin){
46 Etudiant e = em.find(Etudiant.class, ncin);
47 if (e != null)
48 return true;
49 else
50 return false;
51 }
52

Page 4 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
53 public Etudiant getEtudiant(Integer ncin){
54 Etudiant e = em.find(Etudiant.class, ncin);
55 if (e != null)
56 return e;
57 else
58 return null;
59 }
60 public String AjouterEtudiant(Integer ncin,Integer nsic,
61 String nom, String prenom){
62 try{
63 //si l'étudiant est inexistant
64 if(!isEtudiantExistant(ncin)){
65 EntityTransaction transac = em.getTransaction();
66 transac.begin();
67 Etudiant e = new Etudiant(ncin,nsic,nom,prenom);
68 em.persist(e);
69 transac.commit();
70 return "Ajout avec succès!";
71 }else
72 return "Etudiant est déjà existant!";
73 }catch(Exception ex){
74 return "Echec d'ajout, une erreur est survenue!";
75 }
76 }
77
78 public List<Etudiant> ListerEtudiants(){
79 List<Etudiant> etudiants = new ArrayList<Etudiant>();
80 try{
81 String R ="select e from Etudiant e";
82 Query query = em.createQuery(R);
83 List lst = query.getResultList();
84 Etudiant pf=null;
85 Iterator i = lst.iterator();
86 while(i.hasNext()){
87 pf = (Etudiant)i.next();
88 etudiants.add(pf);
89 }
90 return etudiants;
91 }catch(Exception ex){
92 System.err.println(ex.getMessage());
93 return etudiants;
94 }
95 }
96
97 public String SupprimerEtudiant(Integer ncin) {
98 try{
99 //si l'étudiant est inexistant
100 if(isEtudiantExistant(ncin)){
101 EntityTransaction transac = em.getTransaction();
102 transac.begin();
103 Etudiant e = em.find(Etudiant.class, ncin);
104 em.remove(e);
105 transac.commit();
106 return "Suppression avec succès!";
107 }else

Page 5 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
108 return "Etudiant est déjà inexistant!";
109 }catch(Exception ex){
110 return "Echec de suppression, une erreur est survenue!";
111 }
112 }
113
114 public String ModifierEtudiant(Integer ncin,Integer nsic,
115 String nom, String prenom) {
116 try{
117 //si l'étudiant est inexistant
118 if(isEtudiantExistant(ncin)){
119 EntityTransaction transac = em.getTransaction();
120 transac.begin();
121 Etudiant e = em.find(Etudiant.class, ncin);
122 e.setNsic(nsic);
123 e.setNom(nom);
124 e.setPrenom(prenom);
125 em.merge(e);
126 em.flush();
127 transac.commit();
128 return "Modification avec succès!";
129 }else
130 return "Etudiant est déjà inexistant!";
131 }catch(Exception ex){
132 return "Echec de modification, une erreur est survenue!";
133 }
134 }
135
136 }

Page 6 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
Contrôleurs
saveetud.java : Servlet
1 /**
2 *
3 * @author Riadh
4 */
5 package controllers;
6
7 import java.io.IOException;
8 import javax.servlet.RequestDispatcher;
9 import javax.servlet.ServletException;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 public class saveetud extends HttpServlet {
15
16 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
17 throws ServletException, IOException {
18 try{
19 //récupération des champs du formulaire
20 Integer ncin = Integer.parseInt(request.getParameter("ncin"));
21 Integer nisc = Integer.parseInt(request.getParameter("nisc"));
22 String nom = request.getParameter("nom");
23 String prenom = request.getParameter("prenom");
24 //Enrgistrement de l'étudiant
25 JPAService service = new JPAService();
26 service.Connexion("tp2jeePU");
27 String msg = service.AjouterEtudiant(ncin, nisc, nom, prenom);
28 service.Deconnexion();
29 request.setAttribute("msg", msg);
30 RequestDispatcher rd = request.getRequestDispatcher("ajoutetud.jsp");
31 rd.forward(request, response);
32 }catch(Exception ex){
33
34 }
35 }
36
37 @Override
38 protected void doGet(HttpServletRequest request, HttpServletResponse response)
39 throws ServletException, IOException {
40 processRequest(request, response);
41 }
42
43 @Override
44 protected void doPost(HttpServletRequest request, HttpServletResponse response)
45 throws ServletException, IOException {
46 processRequest(request, response);
47 }
48
49 @Override
50 public String getServletInfo() {
51 return "Short description";
52 }// </editor-fold>
53 }

Page 7 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
Contrôleurs
suppretud.java : Servlet
1 /**
2 *
3 * @author Riadh
4 */
5
6 package controllers;
7 import java.io.IOException;
8 import javax.servlet.RequestDispatcher;
9 import javax.servlet.ServletException;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 public class suppretud extends HttpServlet {
15
16 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
17 throws ServletException, IOException {
18 try{
19 //récupération de la ncin de l'étudiant à supprimer
20 Integer ncin = Integer.parseInt(request.getParameter("ncin"));
21 //Enrgistrement de l'étudiant
22 JPAService service = new JPAService();
23 service.Connexion("tp2jeePU");
24 //Validation de la suppression
25 String msg = service.SupprimerEtudiant(ncin);
26 service.Deconnexion();
27 request.setAttribute("msg", msg);
28 RequestDispatcher rd = request.getRequestDispatcher("listeetud.jsp");
29 rd.forward(request, response);
30 }catch(Exception ex){
31
32 }
33 }
34
35
36 @Override
37 protected void doGet(HttpServletRequest request, HttpServletResponse response)
38 throws ServletException, IOException {
39 processRequest(request, response);
40 }
41
42
43 @Override
44 protected void doPost(HttpServletRequest request, HttpServletResponse response)
45 throws ServletException, IOException {
46 processRequest(request, response);
47 }
48
49 @Override
50 public String getServletInfo() {
51 return "Short description";
52 }// </editor-fold>
53 }

Page 8 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
listeetud.jsp : View
1 <%--
2 Document : listeetud.jsp
3 Created on : 22 déc. 2022, 11:29:39
4 Author : Riadh
5 --%>
6
7 <%@page import="java.util.List"%>
8 <%@page import="entites.Etudiant"%>
9 <%@page import="controllers.JPAService"%>
10 <%@page contentType="text/html" pageEncoding="UTF-8"%>
11 <!DOCTYPE html>
12 <html>
13 <head>
14 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
15 <title>Liste des étudiants</title>
16 </head>
17 <body>
18 <center>
19 <h3>Liste des étudiants</h3>
20 <a href="ajoutetud.jsp">Ajout d'un nouveau étudiant</a>
21 <br><hr>
22 <%
23 try{
24 JPAService service = new JPAService();
25 service.Connexion("tp2jeePU");
26 List<Etudiant> etudiants = service.ListerEtudiants();
27 service.Deconnexion();
28 //vérification s'il y'en a des étudiants
29 if(etudiants.size()==0){
30 %>
31
32 <%
33 }else{
34 %>
35
36 <table border="1">
37 <tr>
38 <th>N°C.I.N.</th>
39 <th>N°Insc.</th>
40 <th>Nom</th>
41 <th>Prénom</th>
42 <th>Modif/Suppr</th>
43 </tr>
44 <%
45 for(Etudiant e : etudiants){
46 Integer ncin = e.getNcin();
47 String LienModif = "modifetud.jsp?ncin="+ncin;
48 String LienSuppr = "suppretud?ncin="+ncin;
49 %>
50 <tr>
51 <td><%= ncin %></td>
52 <td><%= e.getNsic() %></td>
53 <td><%= e.getNom() %></td>
54 <td><%= e.getPrenom() %></td>

Page 9 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
55 <td>
56 <a href="<%= LienModif %>">Modifier</a>/
57 <a href="<%= LienSuppr %>"
58 Onclick="return confirm(
59 'Etes-vous sûre de vouloir supprimer?'
60 );">
61 Supprimer</a>
62 </td>
63 </tr>
64 <%
65 }
66 %>
67 </table>
68 <%
69 }//fin else
70
71 String msg = (String) request.getAttribute("msg");
72 if(msg!=null){
73 %>
74 <script>
75 alert("<%= msg %>");
76 </script>
77 <%
78 }//fin if
79
80 }catch(Exception ex){
81 %>
82 <h4><font color="red"><%= ex.getMessage() %></font></h4>
83 <%
84 }//fin catch
85 %>
86 </center>
87 </body>
88 </html>

Contrôleurs
modifetud.java : Servlet

1 /**
2 *
3 * @author Riadh
4 */
5 package controllers;
6
7 import entites.Etudiant;
8 import java.io.IOException;
9 import javax.servlet.RequestDispatcher;
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15
16 public class modifetud extends HttpServlet {
17 protected void processRequest(HttpServletRequest request, HttpServletResponse response)

Page 10 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
18 throws ServletException, IOException {
19 //récupération de la NCIN
20 Integer ncin = Integer.parseInt(request.getParameter("ncin"));
21 //Récupération des infos sur l'étudiant
22 JPAService service = new JPAService();
23 service.Connexion("tp2jeePU");
24 Etudiant e = service.getEtudiant(ncin);
25 service.Deconnexion();
26 request.setAttribute("msg",
27 "Modification de l'étudiant de N°C.I.N :" + e.getNcin());
28 request.setAttribute("ncin", e.getNcin());
29 request.setAttribute("nsci", e.getNsic());
30 request.setAttribute("nom", e.getNom());
31 request.setAttribute("prenom", e.getPrenom());
32 RequestDispatcher rd = request.getRequestDispatcher("editetud.jsp");
33 rd.forward(request, response);
34 }
35
36 @Override
37 protected void doGet(HttpServletRequest request, HttpServletResponse response)
38 throws ServletException, IOException {
39 processRequest(request, response);
40 }
41
42
43 @Override
44 protected void doPost(HttpServletRequest request, HttpServletResponse response)
45 throws ServletException, IOException {
46 processRequest(request, response);
47 }
48
49 @Override
50 public String getServletInfo() {
51 return "Short description";
52 }// </editor-fold>
53
54 }
55

modifetud.jsp : View

1 <%--
2 Document : editetud.jsp
3 Created on : 23 déc. 2022, 21:22:04
4 Author : Riadh
5 --%>
6
7 <%@page contentType="text/html" pageEncoding="UTF-8"%>
8 <!DOCTYPE html>
9 <%
10 //récupération des paramètres
11 Integer ncin = (Integer)request.getAttribute("ncin");
12 Integer nsci = (Integer) request.getAttribute("nsci");
13 String nom = (String)request.getAttribute("nom");
14 String prenom = (String)request.getAttribute("prenom");

Page 11 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
15 %>
16 <html>
17 <head>
18 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
19 <title>Modifier un étudiant</title>
20 </head>
21 <body>
22 <div align="center">
23 <br>
24 <hr>
25 <%
26 String msg = (String) request.getAttribute("msg");
27 if(msg!=null){
28 %>
29 <h3><%= msg %></h3>
30 <%
31 }
32 %>
33 <hr>
34 <form method="post" action="svmodifetud">
35 <table width="35%">
36 <tr>
37 <td width="40%" align="rigth">N° C.I.N :</td>
38 <td width="60%"><input type="text" value="<%=ncin%>"
39 size="10" disabled>
40 <!-- se champs sera envoyé -->
41 <input type="text" name="ncin" value="<%=ncin%>" hidden>
42 </td>
43 </tr>
44 <tr>
45 <td width="40%" align="rigth">N°inscription :</td>
46 <td width="60%"><input type="text" name="nisc"
47 value="<%=nsci%>" size="10" maxlength="7" required></td>
48 </tr>
49 <tr>
50 <td width="40%" align="rigth">Nom :</td>
51 <td width="60%"><input type="text" name="nom"
52 value="<%=nom%>" size="30" maxlength="50" required></td>
53 </tr>
54 <tr>
55 <td width="40%" align="rigth">Prénom :</td>
56 <td width="60%"><input type="text" name="prenom"
57 value="<%=prenom%>" size="30" maxlength="50" required></td>
58 </tr>
59 </table>
60 <br>
61 <input type="submit" value="Valider">&nbsp;&nbsp;
62 <input type="reset" value="Annuler">
63 </form>
64 <br>
65 <A href="listeetud.jsp">Retour à la liste des étudiants</A>
66 </div>
67 </body>
68 </html>

Page 12 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
Contrôleurs
svmodifetud.java : Servlet

1 /**
2 *
3 * @author Riadh
4 */
5 package controllers;
6
7 import java.io.IOException;
8 import javax.servlet.RequestDispatcher;
9 import javax.servlet.ServletException;
10 import javax.servlet.http.HttpServlet;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 public class svmodifetud extends HttpServlet {
15
16 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
17 throws ServletException, IOException {
18 try{
19 //récupération des champs du formulaire
20 Integer ncin = Integer.parseInt(request.getParameter("ncin"));
21 Integer nisc = Integer.parseInt(request.getParameter("nisc"));
22 String nom = request.getParameter("nom");
23 String prenom = request.getParameter("prenom");
24 //Modification de l'étudiant
25 JPAService service = new JPAService();
26 service.Connexion("tp2jeePU");
27 String msg = service.ModifierEtudiant(ncin, nisc, nom, prenom);
28 service.Deconnexion();
29 request.setAttribute("msg", msg);
30 RequestDispatcher rd = request.getRequestDispatcher("listeetud.jsp");
31 rd.forward(request, response);
32 }catch(Exception ex){
33
34 }
35 }
36
37 @Override
38 protected void doGet(HttpServletRequest request, HttpServletResponse response)
39 throws ServletException, IOException {
40 processRequest(request, response);
41 }
42
43

44 @Override
45 protected void doPost(HttpServletRequest request, HttpServletResponse response)
46 throws ServletException, IOException {
47 processRequest(request, response);
48 }
49
50

Page 13 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
51 @Override
52 public String getServletInfo() {
53 return "Short description";
54 }// </editor-fold>
55
56 }

ajoutetud.jsp : View

1 <%--
2 Document : ajoutetud.jsp
3 Created on : 23 déc. 2022, 21:22:04
4 Author : Riadh
5 --%>
6
7 <%@page contentType="text/html" pageEncoding="UTF-8"%>
8 <!DOCTYPE html>
9 <html>
10 <head>
11 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
12 <title>JSP Page</title>
13 </head>
14 <body>
15 <div align="center">
16 <br>
17 <hr>
18 <h3>Ajout d'un nouvel étudiant</h3>
19 <%
20 String msg = (String) request.getAttribute("msg");
21 if(msg!=null){
22 %>
23 <h4><font color="red"><%= msg %></font></h4>
24 <%
25 }
26 %>
27 <hr>
28 <form method="post" action="saveetud">
29 <table width="35%">
30 <tr>
31 <td width="40%" align="rigth">N° C.I.N :</td>
32 <td width="60%"><input type="number" name="ncin"
33 value="" size="10" maxlength="8" required></td>
34 </tr>
35 <tr>
36 <td width="40%" align="rigth">N°inscription :</td>
37 <td width="60%"><input type="number" name="nisc"
38 value="" size="10" maxlength="7" required></td>
39 </tr>
40 <tr>
41 <td width="40%" align="rigth">Nom :</td>
42 <td width="60%"><input type="text" name="nom"
43 value="" size="30" maxlength="50" required></td>
44 </tr>
45 <tr>
46 <td width="40%" align="rigth">Prénom :</td>

Page 14 - 15
Matière : Développement JEE Enseignant : Dr Riadh BOUSLIMI
47 <td width="60%"><input type="text" name="prenom"
48 value="" size="30" maxlength="50" required></td>
49 </tr>
50 </table>
51 <br>
52 <input type="submit" value="Valider">&nbsp;&nbsp;
53 <input type="reset" value="Annuler">
54 </form>
55 <br>
56 <A href="listeetud.jsp">Retour à la liste des étudiants</A>
57 </div>
58 </body>
59 </html>

Page 15 - 15

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy