Partie I : Théorique (9 points) - Toubkal-it

publicité
OFPPT
Office de la Formation Professionnelle
et de la Promotion du Travail
Direction Régionale Tensift Atlantique
Établissement : ISTA NTIC SYBA
Examen de fin de module : Java Avancé
2012/2013
Filière: Concepteur réalisateur Java/J2EE
Groupe(s) : A
Niveau : Formation qualifiante
Durée : 2 heures
Barème:
/20
Partie I : Théorique (9 points)
Exercice 1 : (3 pts)
1. C’est quoi RMI ? (1 pt)
2. Quelles sont les étapes pour le déploiement d'un objet serveur avec RMI ? (2 pts)
Exercice 2 : QCM (6 pts)
Côchez la bonne réponse :
1. Quelles affirmations sont vraies à propos de JDBC? (2 réponses) (1 pt)
a. JDBC est un API pour se connecter à des sources de données relationnelles, objets ou
b. XML.
c. JDBC vient de Java DataBase Connectivity.
d. JDBC est un API qui permet d’accéder à des bases de données relationnelles, des
feuilles de tableurs et des fichiers en format texte.
e. JDBC est un API pour contourner la discordance objet-relationnel entre les programmes
OO et les bases de données relationnelles.
Page 1 / 4
2. Quels packages contiennent les classes JDBC? (1 pt)
a. java.jdbc et javax.jdbc
b. java.jdbc et java.jdbc.sql
c. java.sql et javax.sql
d. java.rdb et javax.rdb
3. Quel type de Statement peut exécuter une requête paramétrable? (0,5 pt)
a. PreparedStatement
b. ParameterizedStatement
c. ParameterizedStatement et CallableStatement
d. Toutes les sortes de Statement (i.e. sous interfaces de Statement)
4. Quelles affirmations à propos des transactions JDBC sont-elles vraies? (2 réponses correctes)
(1 pt)
a. Une transaction est un ensemble d’instructions exécutées avec succès dans une base
de données
b. Une transaction est terminée si commit() ou rollback() sont appelés sur l’objet
Connection
c. Une transaction est terminée si commit() ou rollback() sont appelés sur l’objet
Transaction
d. Une transaction est terminée si close() est appelée sur un objet Connection.
5. Comment est-il possible de démarrer une transaction dans une base de données? (1 pt)
a. En demandant un objet Transaction à la Connection, et en appelant la méthode begin()
b. En demandant un objet Transaction à la Connection, et en mettant la propriété
autoCommit de l’objet Transaction sur faux
c. En appelant la méthode beginTransaction() sur l’objet Connection
d. En mettant la propriété autoCommit de la connection sur la position faux et en
exécutant une instruction dans la base de données
6. Comment peut-on voir les données qui sont dans un ResultSet? (0,5 pt)
a. En appelant la méthode get(..., String type) sur le ResultSet, où type sera le type de la
base de données
b. En appelant la méthode get(..., Type type) sur le ResultSet, où Type est un objet qui
représente un type de la base de données
c. En appelant la méthode getValue (...), et en convertissant le résultat vers le type Java
souhaité
Page 2 / 4
d. En appelant les méthodes spéciales “getter” sur le ResultSet: getString(...),
getBoolean(...), getClob(...),...
7. Quelle affirmation en rapport avec les composants GUI est fausse? (0,5 pt)
a. Swing existe depuis la version 1.2 de JDK.
b. AWT veut dire Abstract Window Toolkit
c. On peut placer des composants AWT dans des containers Swing.
d. Les classes AWT sont obsolètes (deprecated).
8. Comment peut-on sérialiser un objet? (0,5 pt)
a. On doit implémenter l’interface Serializable dans la classe de l’objet.
b. On doit faire appel à la méthode serializeObject() (qui est héritée de la classe Object) pour
l’objet. Non, cette méthode n’existe pas.
c. On doit appeler la méthode statique serialize(Object obj) de la classe Serializer avec
comme argument l’objet que l’on veut sérialiser. Non, cette classe n’existe pas.
d. On ne doit absolument rien faire car tous les objets peuvent être par défaut sérialisés.
Page 3 / 4
Partie I : Pratique (11 points)
A l’aide des sockets construire un serveur qui reçoit en entrée une chaine de caractères (String) et en
retourne une copie où l'ordre de ses caractères a été inversé.
On construira toutes les classes et interfaces ainsi qu'un client demandeur de ce service.
Chaine = salut
Inverse (salut) = tulas
Client
Serveur
1. Étapes d’établissement d’une communication côté client :
1.1 Créer un socket avec l’appel système socket(). (1pt)
1.2 Connecter le socket à l’adresse du serveur : appel système : connect(). (2pts)
1.3 Envoyer et recevoir des données. (2pts)
2. Étapes d’établissement d’une communication côté serveur:
2.1 Créer un socket avec l’appel système socket().(1pt)
2.2 Rattacher le socket à une adresse par l’appel système bind(). (1pt)
Pour un serveur socket sur internet, cette adresse est le numéro de port du destinataire.
2.3 Se mettre en écoute avec l’appel système listen().(1pt)
2.4 Accepter une connexion par l’appel système accept().(1,5 pt)
Cet appel bloque jusqu’a ’à la connexion d’un client.
2.5 Envoyer et recevoir des données. (1,5 pts)
Formateur
Directeur Pédagogique
Directeur de l'EFP
Mohamed LACHGAR
Page 4 / 4
Visa de La DRTA
Téléchargement