Beruflich Dokumente
Kultur Dokumente
GI
Ateliers JEE
Application de Chat
Nous souhaitons développer une application basique de chat. Pour cette application, une
servlet « Chat » permettra d’afficher une conversation entre plusieurs utilisateurs en reprenant
l’ensemble des messages envoyés durant l’utilisation de l’application. Chaque utilisateur
poste un message et voit l’ensemble de la conversation mise à jour.
Piste de développement :
1
Rajouter une option de rafraîchissement au niveau de la servlet « Chat ». L’objectif est de
permettre à chaque utilisateur de rafraichir la conversation sans envoyer de nouveaux
messages.
Piste de développement :
Nous souhaitons maintenant identifier l’origine des différents messages. Pour cela, chaque
message correspondra forcément à un utilisateur qui définira un pseudo avant de démarrer la
session de chat.
Ecrire une servlet « Identification » dont l’objectif est de mettre en œuvre cette phase
préliminaire.
Piste de développement :
2
Démarre une session pour chaque utilisateur à sa première requête sur
la servlet
HttpSession s=req.getSession(true) ;
Réalise la création d’une valeur de session en associant à cette valeur le
pseudo envoyé par la méthode doGet
String pseudo = req.getParameter("Pseudo");
s.setAttribute("LePseudo" , pseudo);
Introduit un premier formulaire avec un bouton de confirmation de
pseudo qui renvoie vers la servlet « Chat »
Introduit un deuxième formulaire avec un bouton de correction qui
renvoie sur la méthode doGet pour choisir un autre pseudo.
Au niveau de la servlet « Chat »,
o On peut récupérer le pseudo en appelant l’objet session avec la méthode
getAttribute
s.getAttribute("LePseudo") ;
o Réaliser les modifications nécessaires pour tracer l’origine des messages au
niveau d’une même conversation.
Nous souhaitons maintenant authentifier les utilisateurs avec un login et un mot de passe.
Pour cela, nous allons définir les servlets qui suivent avec le comportement décrit ci-dessous :
Une servlet « Connexion » permettant à un utilisateur soit de s’inscrire s’il n’est pas
encore inscrit ou de s’authentifier s’il s’est déjà connecté auparavant. Selon le choix
effectué par l’utilisateur, elle renvoie sur la servlet « Authentification » ou sur la
servlet « Inscription »
Une servlet « Inscription » permettant à un nouveau membre de s’inscrire en saisissant
un login et un mot de passe. Après la saisie, un message de bienvenue est affiché à
l’utilisateur en l’invitant à appuyer sur un bouton pour démarrer le chat. Elle renvoie
vers la servlet « Chat »
Une servlet « Authentification » qui permet de saisir un login et un mot de passe.
Après avoir appuyé sur un bouton envoyer, l’utilisateur est renvoyé vers la servlet
« Chat » si l’authentification réussit. Sinon, un message d’erreur est affiché et
l’utilisateur est invité à saisir une autre fois le login et le mot de passe. Il a aussi la
possibilité de revenir vers la servlet « Connexion ».
Une servlet « Chat » qui présente le même fonctionnement que dans la partie 3. Elle
présente aussi un bouton permettant de se déconnecter. Un rafraichissement
automatique est aussi implanté permettant de recharger la conversation toutes les 15
secondes.
Piste de développement :
3
La servlet Connexion :
o Définira aussi une valeur de session « ConnexionOK » qui sera un booléen
exprimant si un utilisateur est authentifié ou pas. Cette valeur sera positionnée
initialement à « false ».
o Pour la méthode GET, elle créera deux formulaires
Le premier formulaire comprendra un bouton « s’inscrire » et renverra
vers la servlet « Inscription »
Le deuxième formulaire comprendra un bouton « s’authentifier » et
renverra vers la servlet « Authentification »
La servlet « Inscription »
o Avec une méthode GET comprenant un formulaire qui offre
Un champ de saisie du login
Un deuxième champ pour saisir le mot de passe
Un bouton confirmer
L’action du formulaire est sur la méthode POST de la servlet
o Et une méthode POST qui
Récupère le login et le mot de passe soumis par la méthode GET
Met l’attribut « LePseudo » à la chaîne de caractère saisie dans le login
Crée un attribut « mdp » à la chaîne de caractères saisie dans le mot de
passe
Affiche un message de bienvenue
Met l’attribut « ConnexionOK » à true
Affiche un formulaire avec un bouton « Démarrer le Chat » qui renvoie
vers la servlet « Chat »
La servlet « Authentification »
o Avec une méthode GET comprenant un formulaire qui offre
Un champ de saisie du login
Un deuxième champ pour saisir le mot de passe
Un bouton confirmer
L’action du formulaire est sur la méthode POST de la servlet
o Et une méthode POST qui
Récupère le login et le mot de passe soumis par la méthode GET
Compare ces deux chaines de caractères avec les attributs de session
« LePseudo » et « mdp »
Si cela correspond
o L’attribut « ConnexionOK » est mise à true
o un formulaire est introduit comprenant un message de
bienvenue et un bouton « Démarrer le Chat » qui
renvoie vers la servlet « Chat »
Sinon
4
o Un deuxième formulaire est introduit comprenant un
message d’erreur, un premier bouton « Réessayer » qui
renvoie vers le GET,
o Un troisième formulaire est aussi introduit avec un
bouton « S’inscrire » qui renvoie vers la servlet
« Inscription »
La servlet « Chat » qui garde le même code avec les modifications suivantes
o Dans un premier lieu, on récupère l’attribut « ConnexionOK ».
Si cet attribut est égale à false, un message d’erreur est affiché et un
formulaire est introduit comprenant un bouton permettant de revenir
vers la servlet « Connexion »
Si cette valeur est à true
On garde le même fonctionnement avec un formulaire
supplémentaire comprenant un bouton « Quitter » qui renvoie
vers la servlet « Connexion » et met par effet de bord l’attribut
« ConnexionOK » à false.
Dans la page html, générée, on peut utiliser la balise <META http-
EQUIV="Refresh" CONTENT="15"> pour rafraichir automatiquement
toutes les 15 secondes.
Dans cette partie nous allons aborder l’utilisation de l’IDE Netbeans. Dans un premier lieu
une démonstration sera réalisée pour montrer son utilisation dans un contexte de
développement d’une application JEE. Typiquement cette démonstration portera sur la
définition des composants Web, Métier, et gestion des données vues en cours.
Pour la suite, nous souhaitons implanter la persistance au niveau de notre application chat.
5
1- La servlet « Connexion » renverra toujours le choix Inscription/Authentification
2- La servlet « Inscription » permettra
a. d’inscrire un nouvel utilisateur avec un login et mot de passe.
b. Elle veillera à ce que le login ne soit pas utilisé par un autre utilisateur déjà
inscrit. Dans ce cas, elle affichera un message d’erreur demandant à
l’utilisateur de choisir un autre login ou de s’authentifier s’il est déjà inscrit.
3- La servlet « Authentification » permettra
a. De saisir un login et un mot de passe, elle vérifiera si l’utilisateur est
correctement authentifié avant de le laisser accéder à la servlet « Chat ». dans
le cas d’échec d’authentification, un message d’erreur est affiché demandant à
l’utilisateur de de ressaisir ces identifiant ou de s’inscrire
4- La servlet Chat affichera les dix derniers messages de la conversation ou la totalité si
la conversation en contient moins. Elle permettra aussi de trier les messages envoyés
par utilisateur. Pour le reste, elle conserve son comportement précédent.