Vous êtes sur la page 1sur 10

Technologies de développement J2EE SERVLET

Gestion d’annuaire de
personne

Création d’une application web dynamique qui permet de gérer les coordonnées de personnes.
Dans WebContent nous avons créé index.html qui contient les instructions suivantes

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- les liens sur les servlets -->
<a href="\Ajouter_personne"> Ajouter</a>
<a href="\Supprimer_personne"> Supprimer</a>
<a href="\Afficher_personne"> Afficher</a>
</body>
</html>

Nous avons créé d’abord la classe personne dans laquelle nous avons déclaré les
attributs, le constructeur, les getters et les fonctions (par choix personnelle)

package personne;
import java.util.Vector;
import java.util.regex.*;

public class Personne {

public String nom;


public String numero;
public String adresseEmail ;
public String adresse;

public static Vector<Personne> v=new Vector <Personne>();

public Personne(String nom, String numero , String adresseEmail, String adresse) {


super();
this.nom = nom;
this.numero = numero;
this.adresse = adresseEmail;
this.adresseEmail = adresse;
}

public String getNom() {


return nom;
}

public String getNumero() {


return numero;
}

public String getAdresse() {


return adresse;
}

public String getAdresseEmail() {


return adresseEmail;

1
}

public static boolean isEmailAdress(String adresseEmail)


{
String regex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z]{2,4}$";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(adresseEmail.toUpperCase());
return m.matches();
}

public static boolean isnumero(String numero)


{
String regex = "^\\+216+ [0-9]{8}$";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(numero.toUpperCase());
return m.matches();
}
public static boolean existe (String nom)
{
for(int i =0 ; i<Personne.v.size();i++)
{
if(Personne.v.elementAt(i).getNom().equals(nom))
return false;
}
return true;
}

Par la suite nous avons créé trois servlets qui sont responsables a ajouter, supprimer
et afficher une personne.

La servlet Ajouter_personne permet :

• d’ajouter une personne dans l’annuaire.

• De traiter l’exception qu’une personne existe déjà en cas de l’insertion d’une


personne qui porte un nom existant dans l’annuaire.

• De vérifier le numéro de téléphone qui doit être une valeur numérique qui commence
par +216.

• et de vérifier la structure de l’adresse Email introduite.

package personne;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

2
@WebServlet("/Ajouter_personne")
public class Ajouter_personne extends HttpServlet {
private static final long serialVersionUID = 1L;

public Ajouter_personne() {
super();

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws


ServletException, IOException {

PrintWriter out=response.getWriter();
response.setContentType("text/html");
out.println(" <form method= \"POST\" action=\"Ajouter_personne\"> "
+"<label> nom: </label> <br> "
+"<input type='texte' name='Nom'/> </br>"
+"<label> numero: </label> <br> "
+"<input type='texte' name='numero'/> </br>"
+"<label> adresse mail : </label> <br> "
+"<input type='texte' name='adresse_mail'/> </br>"
+"<label> adresse : </label> </br> "
+"<input type='texte' name='adresse'/> </br>"
+"<input type='Submit' name='btn' value='Ajouter'/> </br>"
+ "</form>");
out.println("<style>");

out.println("label {");
out.println("color:blue;");
out.println("}");

out.println("input {");
out.println("background-color:pink;");
out.println("}");

out.println("</style>");
out.flush();
out.close();
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String nom=request.getParameter("Nom");
String numero=request.getParameter("numero");
String mail=request.getParameter("adresse_mail");
String adr=request.getParameter("adresse");

response.setContentType("text/html");
PrintWriter out=response.getWriter();

out.println("<html>");
out.println("<head>");

3
out.println("<meta charset=\"utf-8\">"); // escape the quote marks
out.println("<title>Glassfish HTML Testing</title>");

out.println("<style>"); // start style


out.println("h2 {"); // note leading brace
out.println("background-color:lightblue;");
out.println("}");
out.println("h3 {"); // note leading brace
out.println("background-color:red;");
out.println("}");
out.println("h4 {"); // note leading brace
out.println("background-color:yellow;");
out.println("}");
out.println("h5 { background-color:lightgreen;}");
out.println("</style>");

out.println("</head>");

if(!Personne.existe(nom)==false && nom.length()!=0 )


{ Personne p=new Personne(nom,numero,mail,adr);
Personne.v.add(p);
out.print("<h2> votre nom est :</h2> "+nom
+"<h2> et votre adresse est : </h2>" + adr );
}
else
out.print("<h3> verifier le nom svp !</h3>");

if( !Personne.isEmailAdress(mail))
out.print("<h4> verifier le mail svp !!!!</h4>");
else
out.print(" <h2> et votre adresse mail est : </h2>" + mail );

if( !Personne.isnumero(numero))
out.print("<h5> verifier le numero !!!!</h5>");
else
out.print(" <h2> et votre numero est : </h2> "+numero);

out.println("</html>");
out.flush();
out.close();
}

Les captures d’écrans :

4
Figure 1 remplissage du formulaire

Figure 2 les données insérées sont correctes

Figure 3 insertion des données erronées

5
Figure 4 messages d'erreurs

La deuxième servlet qui permet de supprimer une personne selon son nom.

Figure 5 message de suppression

package personne;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Supprimer_personne")
public class Supprimer_personne extends HttpServlet {
private static final long serialVersionUID = 1L;

public Supprimer_personne() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();

6
response.setContentType("text/html");
out.println(" <form method= \"POST\" action=\"Supprimer_personne\"> "
+"<label> nom: </label> <br> "
+"<input type='texte' name='Nom'/> </br>"
+"<input type='Submit' name='btn' value='supprimer'/> </br>"
+ "</form>");
out.println("<style>");
out.println("label {color:blue;}");
out.println("input {background-color:pink;}");
out.println("</style>");

out.flush();
out.close();
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String n= request.getParameter("Nom");
if(Personne.v.size()!=0)
{
for(int i =0 ; i<Personne.v.size();i++)
{
if(Personne.v.elementAt(i).getNom().equals(n)&& Personne.existe(n)==false)
{
Personne.v.removeElementAt(i);
out.println("<style>h1 {color:blue;}</style>");
out.println("<h1> la personne "+n+" est bien supprimée </h1> ");
}
}
}
else out.println("vecteur vide ");
out.flush();
out.close();
}
}

7
La troisième servlet qui permet de chercher une personne.

package personne;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Afficher_personne")
public class Afficher_personne extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public Afficher_personne() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
response.setContentType("text/html");
out.println(" <form method= \"POST\" action=\"Afficher_personne\"> "
+"<label> nom: </label> <br> "
+"<input type='texte' name='Nom'/>
</br>"
+"<input type='Submit' name='btn'
value='Afficher'/> </br>"
+ "</form>");
out.println("<style>");
out.println("label {color:blue;}");
out.println("input {background-color:pink;}");
out.println("</style>");

out.flush();
out.close();
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();

String n= request.getParameter("Nom");
if(Personne.v.size()!=0)

8
{
for(int i =0 ; i<Personne.v.size();i++)
{
if(Personne.v.elementAt(i).getNom().equals(n))
{
out.println("<head> <style>"+ "div { border: 1px solid black; padding: 25px 50px
75px 100px; background-color: lightblue;}"+ "</style> </head>");
out.println("<body>");
out.println("<div>");
out.println("le nom est : "+Personne.v.elementAt(i).getNom() +" et votre numero
est : "+Personne.v.elementAt(i).getNumero()
+" et votre adresse mail est : " + Personne.v.elementAt(i).getAdresseEmail()
+"et votre adresse est : " + Personne.v.elementAt(i).getAdresse() + "" );
out.print("</div>");
out.println("</body>");
}

}
}
else out.println(" rien n'est trouvé ");
out.flush();
out.close();

}
}

Figure 6 affichage d'une personne

Vous aimerez peut-être aussi