Etant donnée la hiérarchie de classes et d`interfaces

publicité
Master Pro Compétence Complémentaire en Informatique
Programmation et Langages - Applications Internet
Examen : jeudi 5 septembre 2013
Durée 2h
Documents autorisés
Les exercices sont indépendants
Exercice 1 (HTML et CSS) :
L'affichage dans un navigateur de la page HTML définie dans le fichier testCSS.html (voir le code en annexe 1) donne
le résultat présenté par la Figure 1. On souhaite lui appliquer les styles CSS décrits par la feuille de styles définie dans le
fichier styles.css (Figure 2).
Figure 2: La feuille de styles styles.css
Figure 1 : la page testCSS.html sans styles CSS appliqués.
Question 1 : Indiquez les modifications à appliquer au fichier testCSS.html pour prendre en compte cette feuille de
styles. Outre le code HTML à ajouter, vous indiquerez à quel endroit ce code doit être inséré.
remarque : le fichier styles.css est dans le même répertoire que le fichier testCSS.html.
Question 2 : Quel est le résultat obtenu par l'application de cette feuille de styles ? Vous répondrez à cette question sur la
feuille de réponse prévue à cet effet en indiquant pour chaque élément la couleur du texte et éventuellement la couleur
d'arrière plan.
Exercice 2 (Javascript vs. PHP)
Javascript et PHP sont deux langages de programmation couramment utilisés dans le monde du développement WEB.
Question : Quel est l'usage respectif de ces deux langages et qu'est-ce qui les distingue ? Répondez à ces questions de
manière concise (deux ou trois phrases maximum).
Page 1/4
Exercice 3 : (Application Web Java)
Il s'agit de mettre en place, un site web pour un club de football (le FCCB). Ce site doit permettre de suivre la vie du club:
présentation des différents membres du club, composition des différentes équipes, résultats en compétition… Pour
réaliser cette application il a été décidé de définir une base de données relationnelle (Oracle ou MySQL) et développer le
code côté serveur en utilisant les technologies Java (Servlets et JSP).
Les membres du club sont de deux types différents :
 les joueurs qui sont inscrits dans une équipe,
 les dirigeants qui ne jouent pas mais ont un rôle actif dans la vie du club : entraineurs, administratifs, arbitres…
Pour stocker en base de données les informations relatives aux membres du club deux tables ont été définies (Figure 3).
Figure 3 : les tables pour les membres du club.
Les informations concernant les dirigeants sont dans la table DIRIGEANTS. La liste ci-dessous précise le nom, le type
SQL et le rôle de chaque champ :
 ID (integer) : l'identifiant du membre (son numéro de licence),
 NOM (varchar): son nom de famille,
 PRENOM (varchar) : son prénom,
 AGE (date) : sa date de naissance,
 SEXE (char) : son sexe (M : masculin, F : féminin),
 ROLE (varchar) : son rôle dans le club.
Les informations concernant les joueurs sont dans la table JOUEURS. Les cinq premiers champs ID, NOM, PRENOM,
DATE_NAISS et SEXE sont identiques à ceux de la table DIRIGEANTS. Les autres champs sont :


POSTE (varchar) : le poste (position) occupé par le joueur,
EQUIPE (varchar) : l'identifiant de l'équipe dans laquelle le joueur joue (cet identifiant est une clé étrangère
vers la table EQUIPES que nous ne détaillons pas ici).
Représentation en Java des membres du club (classes java, héritage).
Pour représenter les membres du club sous forme d'objets Java il a été choisi de définir 3 classes : Membre, Dirigeant
et Joueur.
Page 2/4
Question 1 : donner un diagramme de classes UML qui représente ces différentes classes. Pour chaque classe vous
préciserez ses attributs, son (ou ses) constructeur(s), les différentes méthodes qu'elle définit.
rappels sur la notation UML :
- les noms de classes et de méthodes abstraites sont écrits en italique (sur votre copie vous les précéderez par une *),
- la visibilité de chaque membre (attribut ou méthode) d'une classe est définie comme suit :
+ membre publique (public),
- membre privé (private),
# membre protégé (protected).
Question 2 : Ecrire le code java des classes Membre et Dirigeant. Inutile d'écrire le code des différents accesseurs
(méthodes get…), par contre vous donnerez le code des déclarations d'attributs, des constructeurs et des méthodes public
String toString() qui permettent d'obtenir une description textuelle de l'objet.
Persistance des données (JDBC, collection)
Le code pour les classes DAO chargées de faire les échanges entre le code Java et la base de données a commencé à être
écrit en utilisant l’API JDBC (voir annexe XXX). Une super-classe AbstractDatabaseDAO a été définie, toutes les
classes de DAO en héritent. Concernant les joueurs, une classe JoueurDAO a été définie, mais son code n’a pas été
terminé.
Question 3 : Complétez le code de la méthode joueursEquipe de la classe JoueurDAO. (Une partie de la
documentation de l'interface List vous est donnée en annexe 3) .
L'application web (Servlets/JSP)
La Figure 4 ci-dessous donne une carte du site web du club de football.
Figure 4 : La carte du site web du club de football.
Ce site est constitué d'une page d'accueil qui présente le club, d'une page consacrée à la présentation des terrains utilisés
par le club et leur plan d'accès, et d'une page (lesequipe.jsp) qui présente l'ensemble des équipes. Cette page affiche la
liste des équipes du club et pour chacune d'elles :
 le nom de son entraineur,
 un lien vers une page (equipe.jsp) présentant les joueurs (ou joueuses) de l'équipe,
 un lien vers une page pour consulter le classement de l'équipe dans le championnat où elle est engagée,
Page 3/4


un lien vers une page pour consulter les résultat de la dernière journée de championnat jouée,
la photographie de l'entraineur et la photographie de l'équipe.
Sur la page consacrée à une équipe apparaissent le nom et prénom et le poste (gardien, arrière central, attaquant…) de
chaque joueur.
L'application qui gère le site est programmée en Java en adoptant une architecture MVC (Modèle, Vue, Contrôleur). Dans
ce qui suit nous nous focaliserons sur l'affichage de la liste des joueurs d'une équipe. Le lien composition dans la page
lesequipes invoque une servlet (contrôleur) EquipeServlet (l'annexe 4 vous donne le code du squelette de cette
classe) qui effectue les traitement suivants :
 récupération de l'identifiant de l'équipe concernée,
 création d'un objet JoueurDAO et récupération de la liste des joueurs de l'équipe concernée (modèle),
 redirection vers la page (vue) les equipe.jsp (en lui transmettant la liste des joueurs pour affichage).
Question 4 : Dans le page HTML produite par lesequipes.jsp (voir Figure 4), l'accès à la page affichant le détail de
la composition d'une équipe s'effectue au travers d'un lien <a href="…..">Composition</a>. Quelle serait la valeur
de l'attribut href de la balise a pour accéder à la composition de l'équipe dont l'identifiant est U18 ?
Question 5 : Complétez le code la classe EquipeServlet (lignes 34, 37, 49 et 41). Un extrait de la documentation de
l'API servlet vous est donné en annexe 5.
Question 6 : Les lignes 38 à 45 sont encadrées par un bloc try suivi d'un bloc catch. Que se passerait-il si ces blocs
étaient absents du code ?
La page equipe.jsp affiche le détail d'une équipe, le squelette de son code vous est donné ci-dessous (Figure 5).
Figure 5 : squelette du code de la page JSP equipe.jsp.
Question 7 : Donner le code (à insérer ligne 25) permettant d'effectuer l'affichage de la liste des joueurs de l'équipe sous
la forme d'une liste à puces comme indiqué dans l'encadré de la figure 5. Chaque ligne de cette liste contient le nom, le
prénom et le poste du joueur.
Page 4/4
Téléchargement