EVALUATION EN JAVA EE  TEST  06/ XX  

Exercice 1 (5 pts)

  1. Qu’est -ce qu’un serveur http ? Donnez en deux exemples.   1pts
  2. A travers le protocole HTTP, le navigateur envoie des requêtes au serveur et le serveur lui renvoie des réponses :
  1. Quel est le rôle du serveur HTTP ? 0,5pts
  2. Quel est le rôle du navigateur ? 0,5pts
  1. Quels sont les éléments constitutifs d’un serveur d’application ? 0,5pts
  2. Qu’est- ce qu’un Framework ? Donnez deux exemples. 1pts
  3. Qu’est-ce qu’un EDI ? Donnez la définition de ce sigle. 1pts
  4. Donnez la structure des fichiers d’une application web JEE.0,5pts

Exercice 2 (5 pts)

  1. Quelle la différence entre les commandes GET et POST 1pts
  2. Par quelle méthode de servlet est traitée une commande GET du protocole HTTP ? Donner sa signature. 1pts
  3. De quel type est l’objet fourni par une servlet qui porte la réponse au client ? 1pts
  4. Quelles balises doivent-elles être introduites dans un fichier web.xml pour qu’une servlet (contenue dans le fichier Hello.java du package servlets) soit initialisée avec les paramètres ayant respectivement les valeurs 2009 et Word ? 2pts

Exercice 3 (4pts) 

Ecrire la méthode doGet d’un servlet qui affiche sur une page les informations suivantes :

  • Nom du serveur
  • Valeurs associées aux clés connexion et keep-alive de l’en tête
  • Adresse IP du client

Problème (6 pts)

L’objectif de ce problème est de vérifier votre aptitude à pouvoir créer une application web en utilisant la technologie java EE. La thématique abordée ici est celle du commerce en ligne. Vous allez créer un embryon d’application qui va permettre la création et la visualisation de commandes. A travers notre application, l’utilisateur doit pouvoir créer une commande en saisissant des données depuis un formulaire et visualiser la fiche commande en résultant.

La création d’une commande se fait en remplissant le formulaire suivant :

Java ee formulaire 1

En cas de succès, la page suivante s’affiche à l’utilisateur :

Date : 14/06/2012 10 :37 :16

Montant de paiement : 499.9

Mode de paiement : cheque

Statut de paiement :

Mode de livraison : 48h chrono

Statut de la livraison :

Et en cas d’échec (saisie d’un montant erroné par exemple) :

Java ee formulaire 2

On suppose que le projet web a créé à cet effet est nommé TPIN3, que le formulaire de saisi des informations du client est dans le fichier est dans le fichier creerCommande.jsp et qu'il peut être accessible à tout le monde. La page qui affiche la confirmation de la création d'un client ne doit pas pouvoir être sscessible directement a partir d'une URL. du navigateur, elle doit se nommer confirm Commande.jsp. L'envoie des requêtes du formulaire se fait par la méthode Post.

  1. Créer le formulaire creer Commande.jsp.
  2. Créer le bean représentant les données récupérées depuis le formulaire creer Commande.jsp.
  3. Créer in servlet Commande.java chargée de récupérer les données envoyées par le formulaire, de les enregistrer dans le bean et de les transférer à confirm Commande.jsp.
  4. Créer la JSP confirmCommande.jsp chargée de récupérer les données envoyées depuis la servlet Commande.java.

Correction sujet pandacodeur

ACCÉDER A LA CORRECTION :

CORRECTION EXAMEN JAVA EE :

Exercice1 :

  1. Un serveur http : permet la gestion des requêtes et réponses http suivant l’architecture client- serveur.

Exemple : Nginx, Apache

  1. a- rôle du serveur http : Le serveur Http reçoit la requête, l’interprète et génère alors une page web qu’il  enverra au client par  le biais d’une réponse Http.

b- Rôle du navigateur :

-Il envoie tout d’abord une requête http au serveur pour lui demander la page correspondante.

-Il reçoit la réponse du serveur, via cette réponse il affiche la page web finale à l’utilisateur.

Client serveur

  1. Les éléments consécutifs d’un serveur d’application :

-Le serveur HTTP ;

-Conteneur web ou conteneur de servlet.

  1. Un Framework : est un ensemble de composant qui servent à créer l’architecture et les grandes lignes de notre application.

Exemple : Spring, Hibernate …

  1. Un EDI : est un ensemble d’outils qui permet d’augmenter la productivité des programmeurs qui développent des logiciels.

EDI= Environnement Développement Intègre.

  1. Structure des fichiers d’une application web JEE

Jee app

EXERCICE 2

  1. Différence entre les commandes GET et POST : la différence fondamentale entre les méthodes GET et POST est que selon un critère de bonne pratique la méthode POST doit être utilisée pour réaliser les opérations qui ont un effet sur la ressource, alors que la méthode GET est la méthode utilise par le client pour récupérer une ressource web au serveur via une url.
  2. Elle est traite par la méthode : doGet ( )

Sa signature :

doGet (HttpServletRequest , HttpServletResponse)

  1. Cet objet est de type : HttpServletResponse
  2. Balise :

<Servlet>

     <Servlet-name> Hello </Servlet-name>

     <Servlet-class> Servlets.Hello </Servlet-class>

     <init-param>

      <param-name> Date </param-name>

      <param-value> 2009 </param-value>

     </init-param>

     <init-param>

      <param-name> Mot </param-name>

      <param-value> World </param-value>

     </init-param>

</Servlet>

EXERCICE 3

Ecrivons une méthode doGet d’une servlet qui affiche sur une page les informations suivantes :

-nom du serveur

-valeur associées aux clés connection et Keep-alive de l’entête

-adresse IP du client.

Import javax.Servlet.* ;

Import javax.Servlet.http .* ;

Import javax.io.* ;

Public class InfoServeur extends HttpServlet {

Public void doGet ( HttpServletRequest request, HttpServletResponse response) throws ServletException , IoException {

response.SetcontentType (“text/plain”)

PrintWriter out = response.getwriter ();

Out.println(“Serveur: ” + request.getServerName());

Out.println (“Header connection:” + request.getHeader (“connection”) );

Out.println ( “ Header keep.alive :” + request.getHeader (“keep-alive ” ) );

Out.println (“ adresse IP du client : adresse IP du client : ” + request.getRemoteAddr( ) ) ;}

}

Problème :

FORMULAIRE – CreerCommande.jsp 1pts

 

<!DOCTYPE html>

<html>

     <head>

         <meta charset="utf-8" />

         <title>Création d'une commande</title>

     </head>

     <body>

         <div>

              <form method="post" action="creationCommande">

                   <fieldset>

                        <legend>Informations commande</legend>

                        <label for="dateCommande">Date <span class="requis">*</span></label>

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

                        <br />

                        <label for="montantCommande">Montant <span class="requis">*</span></label>

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

                        <br />

                        <label for="modePaiementCommande">Mode de paiement <span class="requis">*</span></label>

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

                        <br />

                        <label for="statutPaiementCommande">Statut du paiement</label>

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

                        <br />

                        <label for="modeLivraisonCommande">Mode de livraison <span class="requis">*</span></label>

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

                        <br />

                        <label for="statutLivraisonCommande">Statut de la livraison</label>

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

                        <br />

                   </fieldset>

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

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

              </form>

         </div>

     </body>

</html>

Création du Bean depuis le formulaire creerCommande.jsp 1.5pts

package com.tp.in3;

public class Commande {

     private Client client;

     private String date;

     private Double montant;

     private String modePaiement;

     private String statutPaiement;

     private String modeLivraison;

     private String statutLivraison;

    

     /* @return the client */

     public Client getClient() {

         return client;

     }

     /* @param client the client to set */

     public void setClient(Client client) {

         this.client = client;

     }

     /* @return the date */

     public String getDate() {

         return date;

     }

     /* @param date the date to set */

     public void setDate(String date) {

         this.date = date;

     }

     /* @return the montant*/

     public Double getMontant() {

         return montant;

     }

     /**

      * @param montant the montant to set

      */

     public void setMontant(Double montant) {

         this.montant = montant;

     }

     /**

      * @return the modePaiement

      */

     public String getModePaiement() {

         return modePaiement;

     }

     /**

      * @param modePaiement the modePaiement to set

      */

     public void setModePaiement(String modePaiement) {

         this.modePaiement = modePaiement;

     }

     /**

      * @return the statutPaiement

      */

     public String getStatutPaiement() {

         return statutPaiement;

     }

     /**

      * @param statutPaiement the statutPaiement to set

      */

     public void setStatutPaiement(String statutPaiement) {

         this.statutPaiement = statutPaiement;

     }

     /**

      * @return the modeLivraison

      */

     public String getModeLivraison() {

         return modeLivraison;

     }

     /**

      * @param modeLivraison the modeLivraison to set

      */

     public void setModeLivraison(String modeLivraison) {

         this.modeLivraison = modeLivraison;

     }

     /**

      * @return the statutLivraison

      */

     public String getStatutLivraison() {

         return statutLivraison;

     }

     /**

      * @param statutLivraison the statutLivraison to set

      */

     public void setStatutLivraison(String statutLivraison) {

         this.statutLivraison = statutLivraison;

     }

}

Création de La Servlet Commande.java : 2pts

package com.tp.in3;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import com.tp.in3.Client;

import com.tp.in3.Commande;

public class Commande extends HttpServlet {

     public void doPost( HttpServletRequest request,HttpServletResponse response ) throws ServletException,IOException {

         String nom = request.getParameter( "nomClient" );

         String prenom = request.getParameter( "prenomClient" );

         String adresse = request.getParameter( "adresseClient" );

         String telephone = request.getParameter( "telephoneClient");

         String email = request.getParameter( "emailClient" );

         /* Récupération de la date courante */

DateTime dt = new DateTime();
/* Conversion de la date en String selon le format défini */

DateTimeFormatter formatter = DateTimeFormat.forPattern(

"dd/MM/yyyy HH:mm:ss" );

String date = dt.toString( formatter );

         double montant;

         try {

              /* Récupération du montant */

              montant = Double.parseDouble( request.getParameter("montantCommande" ) );

         } catch ( NumberFormatException e ) {

              /* Initialisation à -1 si le montant n'est pas un nombre correct */

              montant = -1;

         }

        

         String modePaiement = request.getParameter("modePaiementCommande" );

         String statutPaiement = request.getParameter("statutPaiementCommande" );

         String modeLivraison = request.getParameter("modeLivraisonCommande" );

         String statutLivraison = request.getParameter("statutLivraisonCommande" );

         String message;

         if ( nom.trim().isEmpty() || adresse.trim().isEmpty() ||telephone.trim().isEmpty() || montant == -1|| modePaiement.isEmpty() ||modeLivraison.isEmpty() ) {

              message = "Erreur - Vous n'avez pas rempli tous les champs obligatoires. <br> <a href=\"creerCommande.jsp\">Cliquez ici</a> pour accéder au formulaire de création d'une commande.";

         } else {

              message = "Commande créée avec succès !";

         }

        

         Client client = new Client();

         client.setNom( nom );

         client.setPrenom( prenom );

         client.setAdresse( adresse );

         client.setTelephone( telephone );

         client.setEmail( email );

         Commande commande = new Commande();

         commande.setClient( client );

         commande.setDate( date.toString() );

         commande.setMontant( montant );

         commande.setModePaiement( modePaiement );

         commande.setStatutPaiement( statutPaiement );

         commande.setModeLivraison( modeLivraison );

         commande.setStatutLivraison( statutLivraison );

        

         /* Ajout du bean et du message à l'objet requête */

         request.setAttribute( "commande", commande );

         request.setAttribute( "message", message );

         /* Transmission à la page JSP en charge de l'affichage des données */

          this.getServletContext().getRequestDispatcher("/confirmCommande.jsp" ).forward( request, response );

     }

}

Création de la Jsp confirmCommandes.jsp 2pts

<!DOCTYPE html>

<html>

     <head>

         <meta charset="utf-8" />

         <title>Affichage d'une commande</title>

     </head>

     <body>

<%-- Affichage de la chaine "message" transmise par la servlet --%>
<p class="info">${ message }</p>

         <p>Date : ${ commande.date }</p>

         <p>Montant : ${ commande.montant }</p>

         <p>Mode de paiement : ${ commande.modePaiement}</p>

         <p>Statut du paiement : ${ commande.statutPaiement }</p>

         <p>Mode de livraison : ${ commande.modeLivraison }</p>

         <p>Statut de la livraison : ${ commande.statutLivraison}</p>

     </body>

</html>

Télécharger L'exercice Sous Forme de PDF

  • Algorithme : Exercices corrigés #03 Exécution Manuelle d'un Algorithme

    Un algorithme est une suite ordonnée d’instructions qui indique la démarche a suivre pour résoudre une série de problèmes équivalents et bien précis. Dans cet exercice corrigé nous allons aborder plusieurs notions clé en algorithmique. Le Lien Direct vers l’énonce de L'exercice :⬇️⬇️⬇️ "

Encore Plus :

Teacher 3


 

...
SUJET 02 | JAVA EE

Que permet de faire le fichier AndroidManifest.xml ? Qu’est-ce que Le SDK  ...

EXAMEN JAVA EE 
...
 SUJET | JAVA EE

L'algorithme du tourniquet, circulaire ou round robin est un algorithme ancien, simple, fiable  ...

EXAMEN JAVA EE 
  • 1 vote. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam