diff --git a/Application/Clavardage/src/com/edu4java/servlets/FirstServlet.java b/Application/Clavardage/src/com/edu4java/servlets/FirstServlet.java
new file mode 100644
index 0000000..9a90b1f
--- /dev/null
+++ b/Application/Clavardage/src/com/edu4java/servlets/FirstServlet.java
@@ -0,0 +1,50 @@
+package com.edu4java.servlets;
+
+
+
+import java.io.IOException;
+
+
+import java.io.PrintWriter;
+
+import java.util.Date;
+
+import javax.servlet.ServletException;
+
+import javax.servlet.http.HttpServlet;
+
+import javax.servlet.http.HttpServletRequest;
+
+import javax.servlet.http.HttpServletResponse;
+
+
+
+
+public class FirstServlet extends HttpServlet{
+
+
+
+ @Override
+
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+
+ throws ServletException, IOException {
+
+
+
+ PrintWriter out = resp.getWriter();
+
+ out.println("");
+
+ out.println("
");
+
+ out.println("hoy es " + new Date());
+
+ out.println("");
+
+ out.println("");
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/Application/Clavardage/src/com/sdzee/beans/Utilisateur.java b/Application/Clavardage/src/com/sdzee/beans/Utilisateur.java
new file mode 100644
index 0000000..df182e9
--- /dev/null
+++ b/Application/Clavardage/src/com/sdzee/beans/Utilisateur.java
@@ -0,0 +1,29 @@
+package com.sdzee.beans;
+
+public class Utilisateur {
+
+ private String email;
+ private String motDePasse;
+ private String nom;
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+ public String getEmail() {
+ return email;
+ }
+
+ public void setMotDePasse(String motDePasse) {
+ this.motDePasse = motDePasse;
+ }
+ public String getMotDePasse() {
+ return motDePasse;
+ }
+
+ public void setNom(String nom) {
+ this.nom = nom;
+ }
+ public String getNom() {
+ return nom;
+ }
+}
\ No newline at end of file
diff --git a/Application/Clavardage/src/com/sdzee/forms/InscriptionForm.java b/Application/Clavardage/src/com/sdzee/forms/InscriptionForm.java
new file mode 100644
index 0000000..2b2554a
--- /dev/null
+++ b/Application/Clavardage/src/com/sdzee/forms/InscriptionForm.java
@@ -0,0 +1,117 @@
+package com.sdzee.forms;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.sdzee.beans.Utilisateur;
+
+public final class InscriptionForm {
+ private static final String CHAMP_EMAIL = "email";
+ private static final String CHAMP_PASS = "motdepasse";
+ private static final String CHAMP_CONF = "confirmation";
+ private static final String CHAMP_NOM = "nom";
+
+
+ private String resultat;
+ private Map erreurs = new HashMap();
+
+ public String getResultat() {
+ return resultat;
+ }
+
+ public Map getErreurs() {
+ return erreurs;
+ }
+
+
+
+ public Utilisateur inscrireUtilisateur( HttpServletRequest request ) {
+ String email = getValeurChamp( request, CHAMP_EMAIL );
+ String motDePasse = getValeurChamp( request, CHAMP_PASS );
+ String confirmation = getValeurChamp( request, CHAMP_CONF );
+ String nom = getValeurChamp( request, CHAMP_NOM );
+
+ Utilisateur utilisateur = new Utilisateur();
+
+ try {
+ validationEmail( email );
+ } catch ( Exception e ) {
+ setErreur( CHAMP_EMAIL, e.getMessage() );
+ }
+ utilisateur.setEmail( email );
+
+ try {
+ validationMotsDePasse( motDePasse, confirmation );
+ } catch ( Exception e ) {
+ setErreur( CHAMP_PASS, e.getMessage() );
+ setErreur( CHAMP_CONF, null );
+ }
+ utilisateur.setMotDePasse( motDePasse );
+
+ try {
+ validationNom( nom );
+ } catch ( Exception e ) {
+ setErreur( CHAMP_NOM, e.getMessage() );
+ }
+ utilisateur.setNom( nom );
+
+ if ( erreurs.isEmpty() ) {
+ resultat = "Succès de l'inscription.";
+ } else {
+ resultat = "Échec de l'inscription.";
+ }
+
+ return utilisateur;
+ }
+
+
+ private void validationEmail( String email ) throws Exception {
+ if ( email != null ) {
+ if ( !email.matches( "([^.@]+)(\\.[^.@]+)*@([^.@]+\\.)+([^.@]+)" ) ) {
+ throw new Exception( "Merci de saisir une adresse mail valide." );
+ }
+ } else {
+ throw new Exception( "Merci de saisir une adresse mail." );
+ }
+ }
+
+ private void validationMotsDePasse( String motDePasse, String confirmation ) throws Exception {
+ if ( motDePasse != null && confirmation != null ) {
+ if ( !motDePasse.equals( confirmation ) ) {
+ throw new Exception( "Les mots de passe entrés sont différents, merci de les saisir à nouveau." );
+ } else if ( motDePasse.length() < 3 ) {
+ throw new Exception( "Les mots de passe doivent contenir au moins 3 caractères." );
+ }
+ } else {
+ throw new Exception( "Merci de saisir et confirmer votre mot de passe." );
+ }
+ }
+
+ private void validationNom( String nom ) throws Exception {
+ if ( nom != null && nom.length() < 3 ) {
+ throw new Exception( "Le nom d'utilisateur doit contenir au moins 3 caractères." );
+ }
+ }
+
+ /*
+ * Ajoute un message correspondant au champ spécifié à la map des erreurs.
+ */
+ private void setErreur( String champ, String message ) {
+ erreurs.put( champ, message );
+ }
+
+ /*
+ * Méthode utilitaire qui retourne null si un champ est vide, et son contenu
+ * sinon.
+ */
+ private static String getValeurChamp( HttpServletRequest request, String nomChamp ) {
+ String valeur = request.getParameter( nomChamp );
+ if ( valeur == null || valeur.trim().length() == 0 ) {
+ return null;
+ } else {
+ return valeur.trim();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Application/Clavardage/src/com/sdzee/servlets/Inscription.java b/Application/Clavardage/src/com/sdzee/servlets/Inscription.java
new file mode 100644
index 0000000..69ebfe1
--- /dev/null
+++ b/Application/Clavardage/src/com/sdzee/servlets/Inscription.java
@@ -0,0 +1,36 @@
+package com.sdzee.servlets;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sdzee.beans.Utilisateur;
+import com.sdzee.forms.InscriptionForm;
+
+public class Inscription extends HttpServlet {
+ public static final String ATT_USER = "utilisateur";
+ public static final String ATT_FORM = "form";
+ public static final String VUE = "/WEB-INF/inscription.jsp";
+
+ public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
+ /* Affichage de la page d'inscription */
+ this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
+ }
+
+ public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
+ /* Préparation de l'objet formulaire */
+ InscriptionForm form = new InscriptionForm();
+
+ /* Appel au traitement et à la validation de la requête, et récupération du bean en résultant */
+ Utilisateur utilisateur = form.inscrireUtilisateur( request );
+
+ /* Stockage du formulaire et du bean dans l'objet request */
+ request.setAttribute( ATT_FORM, form );
+ request.setAttribute( ATT_USER, utilisateur );
+
+ this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
+ }
+}
\ No newline at end of file