Correction Du TP n2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 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