IFT1176 – Automne 2004 FINAL
Michel Reid Date: 8 décembre 2004
Durée: 2:45 heures (de 18h30 à 21h15)
Identification :
Nom : _________________________________
code permanent : __________________
Directives:
- Toute documentation permise.
- Calculatrice non programmable permise.
- Répondre sur le questionnaire.
Soyez BREF et PRÉCIS dans vos réponses.
Question 1 Servlet (35 points)
1.1) (23 pts) Voici une page Web qui va appeler une Servlet :
a) Écrivez le code de cette page web sachant que les 3 champs sont initialisés à « 0 » et que les informations seront soumises à une Servlet nommée Commande associée au contexte oRonald.
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
b) Écrivez le code de la Servlet Commande qui va afficher la commande reçue, le prix pour chacun des articles, le sous-total, les taxes (tps : 7% et tvq 7.5%), le total ainsi que des messages pertinents (voir l’exemple).
Les prix des articles sont : hamburger : 2.61 $, frite : 1.31 $, boisson gazeuse : 1.65$.
Voici l’affichage à générer pour une commande de 2 hamburgers et une frite :
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
1.2) (8 pts) Soit l’URL suivant : http://www.mydomain.com:8080/test/servlet/ATester a) Que représente l’information 8080 dans l’URL ?
__________________________________________________________________
__________________________________________________________________
b) Quel est le nom de la classe contenant le code de la Servlet invoquée ? _______________________________
c) Quel est le nom du contexte qui contient cette Servlet ? ___________________
d) Ce lien étant valide, est-ce que ça implique des instructions particulières (autres que le minimum) dans le fichier web.xml ? _______________________
Si oui, lesquelles ?____________________________________________
1.3) (4 pts) Soit la classe maServlet qui dérive HttpServlet.
a) Doit-on redéfinir la méthode service pour spécifier le traitement qui sera effectuer toutes les fois que la Servlet maServlet sera invoquée?
__________________
Pourquoi ?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
b) Est-il possible que la page Web générée par une Servlet exécute du code JavaScript ? _______
Pourquoi ?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
Question 2 SQL et JDBC (40 points) Soit la table cours comme suit:
titre sigle etudiants idProf
Aspects avancés de Java IFT1176 65 32 Programmation Java et
applications IFT1170 60 32
Principes d'économie ECN1000 70 36 Astronomie générale PHY1971 50 28
Algèbre linéaire MAT1600 70 27
où titre est du texte, max. 40 caractères.
sigle est du texte, 7 caractères (clé primaire).
etudiants est numérique (entier, nombre d’inscriptions pour le cours) idProf est numérique (entier, clé étrangère associée à la table prof).
Soit la table prof comme suit:
nom id
Michel Reid 32
Alex Martin 36
Manon Tremblay 28
Martine Parent 27
où nom est du texte, max. 30 caractères ( nom de l’enseignant(e) ).
id est numérique (entier, clé primaire, numéro du prof. ).
a) (4 pts) Quel sera le résultat de la requête suivante :
SELECT titre from cours where etudiants > 60 ORDER BY sigle DESC
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
b) (5 pts) Écrivez la requête SQL pour faire afficher, le titre du cours et le nom de l’enseignant de chaque cours donné par un prof dont le nom (prenom) commence par
‘M’. L’affichage doit se faire en ordre croissant du titre.
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
c) Écrivez un programme java pour :
(14 pts) Créer, sans les remplir, les tables cours et prof dans la base de donnée Oracle a04 sur le serveur veles, port 1176. Le login et mot de passe seront fournis sur la ligne de commande ( paramètres de la méthode main(String[] args) ).
(3 pts) Ajouter un nouvel enregistrement dans la table prof. Nom : Annie Lebrun, id : 55.
(3 pts) Ajouter un nouvel enregistrement dans la table cours. Sigle : POL1234, titre : Analyse de gauche, 35 étudiants et l’enseignante est Annie Lebrun.
(11 pts) Faire afficher, à l’écran, le nom de l’enseignant, le titre et le sigle des cours ayant 70 étudiants ou plus. L’affichage se fera en ordre croissant des titres de cours. Présumez, qu’à ce stade-ci, les tables ont été remplies.
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
Question 3 Threads (25 points)
3.1) (15 pts) Soit le programme incomplet suivant:
class ExamThread implements Runnable { public ExamThread(){ }
public void run() { // supposez la méthode bien écrite } }
public class testExam {
public static void main (String args[]) { ExamThread test1 = new ExamThread();
ExamThread test2 = new ExamThread();
// instructions à ajouter ici
} }
Si les instructions ajoutées sont les suivantes :
test1.run() ; test2.run() ;
a) Est-ce que, avec ces appels, l’exécution de la méthode run de test1 terminera toujours avant l’exécution de la méthode run de test2 ? ________
Pourquoi ?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
Si les instructions ajoutées sont les suivantes :
Thread t1 = new Thread(test1, "numero 1") ; Thread t2 = new Thread(test2, "le second") ; t2.setPriority(6);
t1.start();
t2.start();
b) Combien de Thread s’exécutent en concurrence? ____________
Lesquels ?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
c) Quel Thread devrait, probablement, se terminer avant les autres ? ______________
Pourquoi ?
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
d) De tous les Thread que ce programme va exécuter, peut-on affirmer qu’il y en a un qui va nécessairement débuter avant les autres ? _________________
Si oui, lequel ? Si non, pourquoi ?
__________________________________________________________________
__________________________________________________________________
e) Que fera afficher l’appel suivant : System.out.println(t2) ;
__________________________________________________________________
__________________________________________________________________
3.2) (10 pts) Soit la classe Q3 qui hérite de Thread. :
class Q3 extends Thread {
public Q3(String nom){super(nom) ;}
public void run() { // supposez la méthode bien écrite } }
public class testQ3 {
public static void main (String args[]) {
// instructions à ajouter ici
} }
a) Écrivez l’instruction nécessaire pour créer un groupe de Thread (ThreadGroup) nommé « ABC ».
__________________________________________________________________
__________________________________________________________________
b) Complétez les instructions nécessaires pour créer un objet Q3 : a, nommé
« mon Thread a » qui appartiendra au groupe de Thread (ThreadGroup) nommé
« ABC ». .
Q3 a = new __________________________________________;
__________________________________________________________________
__________________________________________________________________
Présumez que plusieurs Thread ont ensuite été ajoutés au groupe « ABC » . Écrivez les instructions nécessaires pour changer la priorité de chaque Thread du groupe « ABC » à la priorité 8.
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________