Correctionsérie 2
Correctionsérie 2
Correctionsérie 2
ET DE GESTION DE TUNIS
---------§§§§§---------
Correction Série 3
---------§§§§§---------
Exercice 0 : Servlet , JSP ,JSTL, MYSQL et MVC
Dans cet exercice , on souhaite de réaliser une application web JEE qui permet d’afficher les
Etudiants en saisissant le nom ou une partie du nom de l’étudiant. On souhaite de respecter le
MVC
La vue « EtudiantsVue.jsp » qu’on souhaite réaliser est la suivante
this.nom = nom;
this.prenom = prenom;
}
• Une classe Connection qui contient une méthode getConnection qui retourne un objet
Connection unique vers la base de données, quel que soit le nombre de machines
connecté au serveur. On vous demande de créer cette classe.
package metier;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConnectionDB {
private static Connection connection;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
connection
=DriverManager.getConnection("jdbc:mysql://localhos
t:3306/db_gestion","root","");
}catch(Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
return connection;
}
• Une classe EtudiantImpl qui contient une méthode qui permet de retourner une Liste de
Etudiant sachant un mot clé. Cette classe peut implémenter l’interface « IEtudiant ». On
vous demande de développer cette classe et l’interface.
public interface IEtudiant {
public List <Etudiant> Chercher_Etudiant(String
mot);
}
package metier;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Override
public List<Etudiant> Chercher_Etudiant(String
nom) {
e.setPrenom(rs.getString("prenom"));
etud.add(e);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return etud;
}
package metier;
import java.util.List;
}
La couche web est définie par :
• Le modèle qui permet de stocker les données qu’on va saisir (nom) et le résultat à
afficher (List<Etudiant>). Le reste étant les Getters et Setters
On vous demande de développer cette classe.
package web;
import java.util.ArrayList;
import java.util.List;
import metier.Etudiant;
}
• Le contrôleur qui est un servlet qui va se charger de:
o Créer un objet du modèle
o Stocker les données de la requête (nom) dans ce modèle
o Récupérer les résultats de la couche métier
o Stocker ces résultats dans le modèle
o Faire appel à la vue JSP.
On vous demande de développer le servlet
Partie web
package web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.Etudiant;
import metier.EtudiantImpl;
import metier.IEtudiant;
@WebServlet(name= "cs",urlPatterns={"*.php"})
public class ControleurServlet extends HttpServlet
{
}
@Override
protected void doPost(HttpServletRequest
request, HttpServletResponse response) throws
ServletException, IOException {
String
nom_chercher=request.getParameter("nomchercher");
EtudiantModele e_modele = new
EtudiantModele();
e_modele.setMot(nom_chercher);
List <Etudiant>
etuds=etudiantmetier.Chercher_Etudiant(nom_chercher
);
e_modele.setEtudiants(etuds);
request.setAttribute("modele", e_modele);
request.getRequestDispatcher("EtudiantsVue.jsp"
).forward(request, response);
}
Partie Vue
<%@ page language="java" contentType="text/html;
charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="controleur.php" method ="post">
Chercher: <input type="text" name="nomchercher"
value="">
<input type="submit" value="ok">
</form>
<table border="2" width="50%">
<tr>
<th> ID </th> <th> Nom </th> <th> Prénom
</th>
</tr>
<c:forEach items="${modele.etudiants}" var="e">
<tr>
<td>${e.id}</td>
<td>${e.nom}</td>
<td>${e.prenom}</td>
</tr>
</c:forEach>
</table>
</body>
</html>