Java Enterprise Edition – Examen

publicité
2013-14
JEE S6
Java Enterprise Edition – Examen
Durée : 1h30. Aucun document ou appareil électronique n’est autorisé. Les exercices sont indépendants.
Le barème est indicatif.
Exercice 1 – Threads (5 points)
Question 1. Rappelez les critères d’arrêt de la JVM. Dans une application, quels sont les threads que l’on
doit déclarer daemon ?
Question 2. Listez les méthodes et constructions du langage Java permettant la synchronisation, au sens
large, des threads.
Question 3. Développez la classe MaCollection, contenant une collection de String et dotée des
méthodes boolean add(String), boolean remove(String) et boolean contains(String)
permettent respectivement d’ajouter, retirer et chercher une chaine. Ces méthodes ont implémentées
de façon à (1) pouvoir être appelées par plusieurs threads en même temps, (2) maximiser le degré de
parallélisme des threads, sachant que la recherche est considérée comme longue.
Exercice 1 – Java Remote Method Invocation (4 points)
Question 1. Expliquez l’intérêt d’utiliser RMI dans une application Java composée de processus
s’exécutant sur plusieurs calculateurs. Comparez par rapport à la solution consistant à échanger des
messages par socket.
Question 2. Indiquez le nom et le rôle des processus mis en œuvre dans une architecture RMI. Donnez
l’ordre dans lequel on doit les lancer, et expliquez pourquoi.
Question 3. Dans l’architecture RMI, un objet local et un objet distant interagissent au travers d’une
interface définie à l’avance et connue des deux parties. Expliquez pourquoi alors, lors d’un appel de
méthode distante, l’objet local et/ou l’objet distant peut recevoir un objet dont il ne connait pas la
classe. Expliquez le mécanisme mis œuvre par RMI pour résoudre ce cas de figure.
Question 4. Écrivez en Java l’interface d’un service bancaire accédé à distance par RMI. Cette interface
s’appelle ServiceBancaire et propose les méthodes suivantes :
float consulterSolde(String idCompte)
boolean crediterDebiter(String idCompte, float montant)
Note : on ne demande que la définition de l’interface, pas le code de l’objet distant qui l’implémente.
Exercice 3 – Interface graphique Swing (4 points)
Question 1. Expliquez l’intérêt d’utiliser Swing pour développer une interface graphique, par rapport à
l’ancienne bibliothèque AWT.
J.-M. Busca
1/2
28/05/2014
2013-14
JEE S6
Question 2. Expliquez ce que sont un Container et un Component dans Swing. Quelle relation y a-t-il
entre les deux classes. Citez deux méthodes spécifiques à Container.
Question 3. Développez la classe BoutonConnexion, sous-classe de JButton, représentant un bouton
dont le libellé alterne entre « Connexion » et « Déconnexion » à chaque fois que l’on clique dessus.
Note : le libellé d’un bouton peut être changé par la méthode setText(String).
Exercice 4 – Servlet (5 points)
Question 1. Expliquez ce que sont un conteneur et un composant dans l’architecture JEE. A quelle
catégorie appartient une servlet ? Décrivez le cycle de vie d’une servlet.
Question 2. Expliquez les différents mécanismes permettant de transmettre des informations d’un appel
de servlet à un autre.
Question 3. Développez la servlet SimpleServlet permettant d’afficher un formulaire de saisie avec
deux champs, « Nom » et « Prénom », terminé par un bouton « Envoyer ». Un clic sur le bouton
« Envoyer » active la même servlet.
Question 4. Complétez le code de la question 3 de façon à ce que suite au clic sur « Envoyer », la servlet
renvoie au navigateur la valeur des champs saisis. Expliquez le mécanisme que vous avez choisi pour
distinguer le premier appel de la servlet (affichant le formulaire de saisie) du second appel (affichant la
valeur des champs saisis).
Exercice 5 – Java Server Pages (2 points)
Question 1. Expliquez l’intérêt que présentent les JSP par rapport aux servlets.
Question 2. Écrivez le fichier SimpleJSP.jsp qui affiche le formulaire de la question 3 de l’exercice 4,
suivi de la liste des paramètres véhiculés par la requête HTTP.
J.-M. Busca
2/2
28/05/2014
Téléchargement