Vous êtes sur la page 1sur 5

UNIVERSITE DE SFAX Année Universitaire : 2019-2020 MATRICULE :………………………

Institut Supérieur d’Informatique EXAMEN


et de multimédia Module : JEE NOM :………………………..
Durée : 60 mn PRENOM : …………………..
Auditoire : T-LATMW

On vous charge de développer une application JEE pour la gestion d’un carnet de contacts. Pour cela, on vous offre les
détails ci-dessous présentés.
 Chaque contact est défini par son code, son nom, son prénom, son numéro de téléphone portable, son numéro de
téléphone fixe et son adresse.
 L’application doit permettre de réaliser les opérations suivantes : ajouter un contact, chercher des contacts par
adresse, chercher les numéros de téléphone (fixe et portable) d’un contact, supprimer un contact, mettre à jour les
informations d’un contact (numéro de portable et/ou numéro fixe et/ou adresse).
 L’application doit être accessible par un client Java et par une Servlet.
 On suppose que les contacts sont stockés dans une base de données.
On vous demande de compléter le code source de l’application visée (là où il y a des points).
Remarque : Le nombre de lignes vides n’indiquent pas le nombre d’instructions à ajouter. Cependant
l’espace est largement suffisant pour contenir la réponse.
Partie I : Ecriture des beans (12 pts)
Question 1 : Compléter le code du bean entité Contact sachant que :
- La table correspondante à ce bean est CONTACTS
- Les colonnes de cette table sont comme suit : ID_Contact, Nom_Contact, Prenom_Contact,
Num_Portable_Contact, Num_Fixe_Contact et Adresse_Contact.
- L'attribut code joue le rôle de la clé primaire qui est générée automatiquement.
package examen.entity; public void setNom(String nom) {this.nom = nom;}
…………………………………………………………………………………………………………………………………… public String getPrenom() {return prenom; }
…………………………………………………………………………………………………………………………………… public void setPrenom(String prenom)
…………………………………………………………………………………………………………………………………… {this.prenom = prenom;}
…………………………………………………………………………………………………………………………………… public String getNumPortable()
public class Contact …………………………………………………………………… {return numPortable; }
{…………………………………………………………………………………………………………………………………… public void setNumPortable(String numPortable)
……………………………………………………………………………………………………………………………………… {this.numPortable = numPortable;}
…………………………………………………………………………………………………………………………………… public String getNumFixe() {return numFixe;}
private Long code; public void setNumFixe(String numFixe)
…………………………………………………………………………………………………………………………………… {this.numFixe = numFixe;}
private String nom; public String getAdresse() {return adresse;}
…………………………………………………………………………………………………………………………………… public void setAdresse(String adresse)
private String prenom; {this.adresse = adresse;}
…………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………
private String numPortable; ………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
private String numFixe; ………………………………………………………………………………………………………………………..…………
…………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
private String adresse; ………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
public String getNom() {return nom;} ……………………………………………………………………………………………………………………………………

1/4
NE RIEN ECRIRE ICI

…………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………

………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………

Question 2 :
1) Pour le côté applicatif de l'application, nous voulons écrire un bean session permettant de simuler les opérations que
nous pouvons effectuer sur le carnet de contacts. Quel type de bean session doit-en utiliser ?
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

2) Supposons qu’on dispose du code l’interface GestionContact (voir code ci-dessous présenté). Compléter le code du
bean session GestionContactBean qui implémente cette interface sachant que :
- La classe du bean se trouve dans le package examen.session.
- Le nom du bean GestionContactBean est CONT.
- La gestion de la persistance au niveau du bean est réalisée moyennant un EntityManager.
- Une erreur de type RuntimeException ("Contact non existant dans le carnet") est générée si on fait la recherche
d’un contact non existant dans la base de données.
- La méthode de mise à jour des informations d’un contact ne modifie que le paramètre ayant une valeur non nulle.
// code de l’interface GestionContact // Suite du code de la classe GestionContactBean
package examen.session; ……………………………………………………………………………………………………………………………
import java.util.List; ……………………………………………………………………………………………………………………………
import javax.ejb.Remote; ……………………………………………………………………………………………………………………………
import examen.entity.Contact; ……………………………………………………………………………………………………………………………
@Remote ……………………………………………………………………………………………………………………………
public interface GestionContact { public class GestionArticleBean
public void ajouterContact(Contact p); …………………………………………………………………………………………………………………….…………
public List<Contact> getAllContacts(); ……………………………………………………………………………………………………………………………
public List<Contact> getContactParAdresse(String a); {@PersistenceContext(unitName="UP_CONT")
public Contact getContact(String nom,String prenom); ……………………………………………………………………………………………………………………………
public void ajouterContact(Contact p) {
public void removeContact(String nom,String prenom);
…………………………………………………………………………………………………………………………………
public void updateContact(String nom,String prenom,
…………………………………………………………………………………………………………………………………
String numPort,String numFix,String adresse);
………………………………………………………………………………………………………………………………
}
// code de la classe GestionContactBean }
public List<Contact> getAllContacts() {
………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
import java.util.List;
…………………………………………………………………………………………………………………………………
import javax.persistence.*;
…………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………}

2/4
public List<Contact> getAllContacts() {
………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
}
……………………………………………………………………………………………………………………………… public void removeContact(String nom, String
} prenom) {
public List<Contact> getContactParAdresse(String a) ………………………………………………………………………………………………………………………………
{………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
}
public Contact getContact(String nom, String ………………………………………………………………………………………………………………………………
prenom) { …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… }

……………………………………………………………………………………………………………………………… public void updateContact(String nom, String


prenom, String numPort, String numFix, String
………………………………………………………………………………………………………………………………… adresse) {
……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… }
}//Fin classe du bean

Partie II : Ecriture d’un client Java (4 pts)


1) Compléter le code de la classe Test jouant le rôle d'un client java et permettant de réaliser les traitements suivants:
- Ajout les contacts présentés dans la figure suivante.
- Recherche des contacts résidents
à Tunis pour afficher leurs
numéros de téléphone
respectifs)
- Modification du numéro de
portable du contact Ali Ben
Salah ; son nouveau numéro est le 92850850.
Remarques : On suppose que le projet EJB est intitulé Examen20192020
import java.util.List; public class Test {
import java.util.Properties; public static void main(String[] args) throws
import javax.naming.Context; InterruptedException {
import javax.naming.InitialContext; try{Properties prop = new Properties();
import javax.naming.NamingException; prop.put(Context.URL_PKG_PREFIXES,
……………………………………………………………………………………………………………………………… "org.jboss.ejb.client.naming");
……………………………………………………………………………………………………………………………………… Context ctx =new InitialContext(prop);
…………………………………………………………………………………………………………………………………….

3/4
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………… }//Fin try
……………………………………………………………………………………………………………………………………… catch(NamingException e){e.printStackTrace();}
……………………………………………………………………………………………………………………………………… }}//Fin classe Test

Partie III : Ecriture d’une servlet (4 pts)


1) Compléter le code de la Servlet (ServletLibrairie) jouant le rôle d'un client web et permettant d’ajouter un
contact moyennant une page HTML dont le code est le suivant :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="controleur" method="post">
<fieldset>
<legend>Informations Contact </legend>
Nom Contact <input type="text" name="nom"><br/>
Prénom Contact <input type="text" name="prenom"><br/>
Numéro Portable <input type="text" name="numPor"><br/>
Numéro Fixe <input type="text" name="numFixe"><br/>
Adresse <input type="text" name="adresse"><br/>
<input type="submit" value="Ajouter" name="action">
</fieldset>
</form> Figure : Aperçu page HTML
</body>
</html>
Remarques :
- Le nom de la servlet est "servletContact" ;L’urlPattern de la servlet est "/controleur"
- Pas de code HTML à écrire, seulement du code Java
package web; ………………………………………………………………………………………………………………………………
import java.io.IOException; Protected void ……………………………………………..………………
import java.io.PrintWriter; (HttpServletRequest request, HttpServletResponse
import java.util.List; response) throws ServletException, IOException {
import javax.ejb.EJB; ……………………………………………………………………………………………………………………………………………
import javax.servlet.* ; ……………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………
@WebServlet(name="………………………………………………………………………….", ………………………………………………………………………………………………………………………………………
urlPatterns={"………………………………………………………………………"}) ……………………………………………………………………………………………………………………………………………
public class ServletArticle extends ……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………….….…… ……………………………………………………………………………………………………………………………………….
@EJB ………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………
}}}

4/4
5/4

Vous aimerez peut-être aussi