Efm J2EE Licence Iwm

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

EFM : JAVA/J2EE durée : 1h30 barème : ..

/20

Q1 : Questions de cours (12pts)


Entourez-la ou les bonnes réponses (seulement la lettre). (1point/ question)

1. Que se passe-t-il lorsque cette servlet est déployée et qu’un


utilisateur appuie plusieurs fois sur le bouton d’actualisation de son

public class Test extends HttpServlet {

private Integer nbr = new Random().nextInt();

public void doGet(HttpServletRequest request, HttpServletResponse response) throws


ServletException, IOException {

response.getWriter().println(nbr);

}
navigateur ?

A. La même valeur est toujours affichée


B. La valeur affichée s’incrémente à chaque rafraîchissement

2. Quelle est la portée de l’objet d’une réponse ?

A. Session

B. Page

C. Request

D. Response

3. Quel est le fichier de configuration de Hibernate ?

A. Hibernate.xml

B. Hibernate-cfg.xml

C. Hibernate.cfg.xml

D. Hibernate-config.xml

4. Quelles sont les interfaces principales du framework Hibernate ?

A. Interface de EntityManager, Interface EntityManagerFactory, Interface de


configuration, Interface de EntityTransaction, Interface de requête et de critères

B. Interface de Session, Interface SessionFactory, Interface de configuration, Interface


de transaction, Interface de requête et de critères

C. Interface de session, Interface SessionFactory, Interface d’expression, Interface de


Descriptor, Interface de requête et de critères

1
5. Laquelle des directives suivantes n'est pas une directive JSP ?
A. <%@ page %>

B. <%@ include %>

C. <%@ taglib %>

D. <%@ script %>

6. Comment passer des informations d’une page JSP à une page JSP inclus ?

A. Utilisation de la balise <jsp: param>


B. Utilisation de la balise <jsp: useBean>
C. Utilisation de la balise <jsp: page>
D. Utilisation de la balise <jsp: import>

7. Qu’affiche le code suivant ?

<c:forEach step="2" begin="3" end="8" varStatus="status">


<c:if test="${status.first}">[</c:if>
${status.index},
<c:if test="${status.last}">]</c:if>
</c:forEach>

A. 3,5,7,8,

B. [3,5,7,]

C. [3,5,7,8,]

D. [3,5,7]

E. 2,3,4,5,6,7,8

8. Quelle(s) sont(est) les EL valables qui permettent de retourner la


property « nom » du bean Etudiant ayant pour scope la session :

A. ${Etudiant.nom}

B. ${Etudiant.getNom()}

C. ${sessionScope.Etudiant["nom"]}

D. ${session["Etudiant"].nom}

9. Parmi les balises suivantes quelles sont celles que l’on peut utiliser
dans une JSP pour afficher la valeur d’une expression Java sur la
sortie ?

A. <@ >

B. <% > ( <% out.println(…) %>)

C. <%= >

D. <%! >

E. <%$ >

Note : Il manque les % sur la balise fermante.


10. Soit le code de la JSP test.jsp suivant :

1 <html>

2
2 <head><title>A Comment Test</title></head>
3 <body>
4 <h2>A Test of Comments</h2>
5 <!-- This is Html Hidden Comment -->
6 <%-- This is JSP Hidden Comment --%>
7 </body>
8 </html>

A l’exécution de test.jsp, devinez quel sera la sortie correspondante ?

A. La ligne 5 sera insérée dans la réponse mais pas la ligne 6.

B. Les lignes 5 et 6 seront insérées dans la réponse.

C. Les lignes 5 et 6 ne seront pas insérées dans la réponse.

D. La ligne 6 sera insérée dans la réponse mais pas la ligne 5.

11. Quelles sont les approches correctes pour renvoyer une


réponse asynchrone à partir d'une ressource JAX-RS ?

@GET

public String async(AsyncResponse res) {...}

@GET

public CompletionStage<String> async() {...}

@GET

public void async(@Suspended AsyncResponse res) {...}

@GET

@Suspended

public AsyncResponse async(@Context HttpServletResponse res) {...}

12. Quelles sont les url-pattern invalides dans le web.xml parmi les
propositions ci-dessous :
...
<servlet-mapping>
<servlet-name>controlServlet</servlet-name>
A. <url-pattern>*.html</url-pattern>

B. <url-pattern>http://localhost:8080/maSer</urlpattern>

C. <url-pattern>MaServlet</url-pattern>

D. <url-pattern>Admin/MaServlet</url-pattern>

C. <url-pattern>/Admin/MaServlet</url-pattern>

Partie 2 : Application MVC (8 points)


On considère l’application MVC : Cette application permet à l’administrateur de gérer
la liste des clients. Voici les fichiers sources pour le cas de création d’un client :

Création du Formulaire creerClient.jsp

3
<!DOCTYPE html>

<html>
<head>

<meta charset="utf-8" />

<title>Création d'un client</title>

<link type="text/css" rel="stylesheet" href="inc/style.css"/>

</head>
<body>
<div>
<form method="post" action="creationClient">

<fieldset>
<legend>Informations client</legend> <label for="nomClient">Nom
<span class="requis">*</span></label>

<input type="text" id="nomClient" name="nomClient" value="" size="20" maxlength="20" />

<br />

<label for="prenomClient">Prenom </label>

<input type="text" id="prenomClient" name="prenomClient"

value="" size="20" maxlength="20" />

<br />

<label for="adresseClient">Adresse de livraison

<span class="requis">*</span></label>

<input type="text" id="adresseClient" name="adresseClient" value="" size="20" maxlength="20" />

<br />

<label for="telephoneClient">Numéro de téléphone<span class="requis">*</span></label>

<input type="text" id="telephoneClient" name="telephoneClient"

value="" size="20" maxlength="20" />

<br />

<label for="emailClient">Adresse email</label>

<input type="email" id="emailClient" name="emailClient" value="" size="20" maxlength="60" />

<br />

</fieldset>

<input type="submit" value="Valider" />

4
<input type="reset" value="Remettre à zéro" /> <br/>

</form>
</div>
</body>
</html>

Création du Bean

package com.tp.in3;

public class Client {

/* Propriétés du bean */

private String nom;

private String prenom;

private String adresse;

private String telephone;

private String email;

public void setNom( String nom ) {this.nom = nom;}

public String getNom() {return nom;}

public void setPrenom( String prenom ) {this.prenom = prenom;}


public String getPrenom() {return prenom;}

public void setAdresse( String adresse ) {this.adresse =adresse;}

public String getAdresse() {return adresse;}

public String getTelephone() {return telephone;}

public void setTelephone( String telephone ) {this.telephone =

telephone;}

public void setEmail( String email ) { this.email = email;}


public String getEmail() {return email;}

Création de la Servlet Client.java 2pts

package com.tp.in3;

import java.io.IOException;

import javax.servlet.ServletException;

5
import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.gestion.Client;

public class Client extends HttpServlet {

public void doPost( HttpServletRequest request,

HttpServletResponse response ) throws ServletException, IOException {


/** Récupération des données saisies, envoyées en tant que
paramètres de * la requête Post générée à la validation du formulaire */

//zone (1)

……………………………………….. //variable de récupération du champs nom


………………………………………..//variable de récupération du champs prénom
………………………………………..//variable de récupération du champs adresse
………………………………………..//variable de récupération du champs téléphone
………………………………………..//variable de récupération du champs email
String message ;
/* Initialisation du message à afficher : si un des champs
obligatoires du formulaire n'est pas renseigné, alors on affiche un message d'erreur, sinon on
affiche un message de succès */
if ( nom.trim().isEmpty() || adresse.trim().isEmpty() || telephone.trim().isEmpty() ) { message =
"Erreur – Vous n'avez pas rempli tous les champs obligatoires. <br>

<a href=\"creerClient.jsp\">Cliquez ici </a> pour accéder au formulaire de création d'un client.";
} else {
message = "Client créé avec succès !";
}
/* Création du bean Client et initialisation avec les données
récupérées */
Client client = new Client();
client.setNom( nom );
client.setPrenom( prenom );
client.setAdresse( adresse );
client.setTelephone( telephone );
client.setEmail( email );
/* Ajout du bean et du message à l'objet requête */
request.setAttribute( "client", client );

request.setAttribute( "message", message );

/* Transmission à la page JSP en charge de la confirmation des données du client . */

//Zone (2)

6
………………………. // redirection avec transmission vers la page confirmClient.jsp

5. Création de la Jsp confirmClient.jsp 2pts

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>Affichage d'un client</title>

<link type="text/css" rel="stylesheet" href="inc/style.css"/>


</head>
<body>
<%-- Affichage de la chaine "message" transmise par la servlet

--%>
<p class="info">${ message }</p> <%-- Puis affichage des données enregistrées dans le
bean "client" transmis par la servlet --%>

<p>Nom : ${ client.nom }</p>

<p>Prenom : ${ client.prenom }</p>

<p>Adresse : ${ client.adresse }</p>

<p>Numéro de téléphone : ${ client.telephone }</p>

<p>Email : ${ client.email }</p>

</body>
</html>

1- Complétez la zone (1) et la zone (2) de classe Servlet Client


exprimés dans le fichier Servlet Client.java source donné ci-
dessous. (3 points)

2- Stocker le bean Client de la session et le récupérer dans la page confirmClient.jsp en


utilisant la balise <Jsp :useBean /> (3 points)

3- Complétez le descripteur de déploiement suivant en fonction des


liens et autres nommages exprimés dans les fichiers sources donnés
ci-dessus. (2 points)

web.xml :
1. Contenue du Fichier web.xml : 2pts

<?xml version="1.0" encoding="UTF-8"?>

7
<web-app>
<servlet>
<servlet-name>… </servlet-name>

<servlet-class>…</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>… </servlet-name>
<url-pattern>…</url-pattern>
</servlet-mapping>
</web-app>

You might also like