You are on page 1of 18

Java pour le développement

d’applications Web
Dynamiques- J2EE
(Java Entreprise Edition)

SALL Ousmane
Département de Mathématique et d’Informatique
UFR Sciences et Technologies
Université de THIES
J2EE - LGI Semestre 6
Contact : osall751@yahoo.fr
Séance du 17 Mai 2010- 8h-12h
Sommaire
 Les différents types d'applications
 Les applications Web
 Présentation de Tomcat
 Utilisation d’Eclipse
 Servlets & JSP
 Structurer une application Web
 Base de données et serveurs d'applications
 Déployer son application Web
LGI Semestre 6 Java pour le développement WEB dynamique 55
Servlet : création
 Une servlet est une classe dérivée de
javax.servlet.http.HttpServlet. On la trouve
dans l'arborescence WEB-INF/src
 Cette classe définit (surtout) 4 méthodes :
 init(ServletConfig)
 doGet(HttpServletRequest, HttpServletResponse)
 doPost(HttpServletRequest, HttpServletResponse)
 destroy()

LGI Semestre 6 Java pour le développement WEB dynamique 56


Fonctionnement
 Le client envoi une requête http nécessitant une servlet
 Le serveur reçoit la requête.
 Crée un objet qui représente la requête http.
 Crée un objet qui contiendra la réponse .
 Envoie les objets créés à la servlet .
 La servlet créé dynamiquement une réponse sous forme de
page html transmise via un flux dans l'objet contenant la
réponse.
 La création de la réponse utilise bien sûre la requête du client mais
aussi un ensemble de ressources incluses sur le serveur tels de que des
fichiers ou des bases de données.
 Le serveur récupère l'objet réponse et envoie la page html au
client.

LGI Semestre 6 Java pour le développement WEB dynamique 57


Fonctionnement
Requête HTTP

Moteur de servlets

Servlet

JVM Servlet

Servlet
Machine virtuelle Java
Réponse HTTP
Client Web… Serveur
WEB
LGI Semestre 6 Java pour le développement WEB dynamique 58
Requêtes HTTP clients
 Les informations envoyées par le client sont
transmises via un objet implémentant
l’interface httpServletRequest.
 L’objet HttpServletRequest est connectés au
serveur par un objet de la classe InputStream.
 Les informations générées par la servlet sont
transmises via un objet implémentant
l’interface httpServletResponse.
 L’objet HttpServletResponse est connectés au
serveur par un objet de la classe OutputStream
LGI Semestre 6 Java pour le développement WEB dynamique 59
Servlet : méthodes

 init(ServletConfig)
exécutée au chargement de la servlet
 doGet(HttpServletRequest, HttpServletResponse)
exécutée à chaque connexion d'un navigateur
 doPost(HttpServletRequest, HttpServletResponse)
exécutée à chaque validation de formulaire
 destroy()
exécutée lors de l'arrêt du serveur

LGI Semestre 6 Java pour le développement WEB dynamique 60


Servlet : paramètres
 Paramètre HttpServletRequest :
 encapsule la requête HTTP issue du navigateur
 permet d'accéder aux valeurs du formulaire :
String nom = request.getParameter( "nom");

 Paramètre HttpServletResponse :
 encapsule la réponse renvoyée au navigateur
 permet de générer par exemple du HTML :
PrintWriter out = response.getWriter();
out.println("…");
out.close();

LGI Semestre 6 Java pour le développement WEB dynamique 61


Servlet : exemple simple
public class SimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Bonjour !</h1>");
out.println("</html>");
out.println("</body>");
out.close();
}
}

http://localhost:8080/TestTomcat/servlet/SimpleServlet
LGI Semestre 6 Java pour le développement WEB dynamique 62
Le fichier web.xml
 Regroupe les informations de fonctionnement de
l'application WEB.
 Descripteur de déploiement permettant de configurer :
 Les paramètres d'initialisation du contexte.
 Les définitions des servlets et des JSPs.
 La configuration des sessions.
 Les correspondances entre servlets et entre JSPs.
 Les correspondances entre types MIME.
 Les pages par défaut.
 Les pages d'erreur.
 La sécurité de l’application.
 Fichier au format XML.

LGI Semestre 6 Java pour le développement WEB dynamique 63


Le fichier web.xml
Élément racine,
obligatoire <?xml version="1.0" encoding="UTF-8" ?>
<web-app >
Définit une servlet <display-name>SimpleServlet </display-name>
avec son nom et la <servlet>
classe associée à
cette servlet. <servlet-name>SimpleServlet</servlet-name>
<servlet-class>SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
Associe la servlet à </servlet-mapping>
un chemin virtuel.
</web-app>
LGI Semestre 6 Java pour le développement WEB dynamique 64
Servlet : avec un formulaire
 Mentionner la servlet comme action dans le
formulaire HTML :
<form name="Formulaire" method="post"
action="servlet/FormulaireServlet">
Entrez votre nom :
<input type="text" name="nom">
<input type="submit" value="valider">
</form>

http://localhost:8080/TestTomcat/Formulaire.html

LGI Semestre 6 Java pour le développement WEB dynamique 65


Servlet : réponse au formulaire
 La servlet récupère le nom et génère une
page avec :
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String nom = request.getParameter("nom");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>Bonjour " + nom + " !</h1>");
out.println("</html>");
out.println("</body>");
out.close();
}

LGI Semestre 6 Java pour le développement WEB dynamique 66


Servlet : récapitulatif formulaire

1 : le navigateur rassemble les


informations du formulaire, il se
connecte au serveur et lui transmet
ces informations dans une requête
HTTP
Formulaire.html

Servlet/FormulaireServlet
2 : le serveur génère
dynamiquement une page avec le
résultat, l'envoie en réponse HTTP
au navigateur

LGI Semestre 6 Java pour le développement WEB dynamique 67


Servlet : GET ou POST ?
 Attribut method de la balise form
 GET : correspond à l'appel d'une page par le
navigateur (barre d'adresse ou lien)
Transmet les paramètres dans l'URL :
http://localhost:8080/servlet/test?param=value

 POST : plus adapté au transfert de données


depuis un formulaire Method POST
Method GET

 Une servlet peut déterminer ainsi si elle est


appelée comme validation d'un formulaire ou
non
LGI Semestre 6 Java pour le développement WEB dynamique 68
Servlet : formulaire et traitement

public void doGet(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
// Méthode GET : barre d'adresse
response.setContentType("text/html");PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<html>");
out.println("<form name=\"Formulaire\" method=\"post\"
action=\"FormulaireServletDeuxEnUn\">");
out.println("Entrez votre nom :");
out.println("<input type=\"text\" name=\"nom\">");
out.println("<input type=\"submit\" value=\"valider\">");
out.println("</form>");
out.println("</html>");
out.println("</body>");
out.close();
}

LGI Semestre 6 Java pour le développement WEB dynamique 69


Servlet : formulaire et traitement

public void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
// Méthode POST : validation du formulaire
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
String nom = request.getParameter("nom");
out.println("<h1>Bonjour " + nom + " !</h1>");
out.println("</html>");
out.println("</body>");
out.close();
}

LGI Semestre 6 Java pour le développement WEB dynamique 70


Servlet : récap formulaire/traitement

1 : appel de la servlet via la barre


d'adresse : méthode GET

2 : renvoi du formulaire

3 : appel de la servlet via le bouton


de validation : méthode POST

4 : renvoi du résultat

LGI Semestre 6 Java pour le développement WEB dynamique 71

You might also like