Académique Documents
Professionnel Documents
Culture Documents
Mastère GLDRA
Par Chiheb Chaieb
chaieb.chiheb@gmail.com
1- Qu’est ce qu’une Servlet ? (1/6)
29/09/2016 2
2- Servlet
• Avantage Servlet:
– inhérents à Java :
• JSDK ou JDK gratuit et portable
• facile à développer,
2. Servlets Java
• meilleures performances,
• client léger,
• Inconvénient Servlet :
– Pas d’interface graphique utilisateur : interface graphique
utilisateur limitée à HTML.
29/09/2016 3
3- Servlet - Caractéristiques
29/09/2016 4
3- Servlet - Apports
29/09/2016 5
4- Architecture Servlet (1/2)
2. Servlets Java
Threads
Les Servlets peuvent
être toutes gérées par
des threads séparés
29/09/2016 dans la JVM 6
4- Le Fonctionnement d'une Servlet (cas d'utilisation de http) 2/2
29/09/2016 7
3- Mais à quoi ça sert ?
29/09/2016 8
5- L’API Servlet (1/5)
29/09/2016 9
5- L’API Servlet (2/5)
• Le package javax.servlet :
– Contient les classes pour un support des Servlets génériques et
indépendant du protocole.
2. Servlets Java
• Le package javax.servlet.http :
– Contient des extensions des classes du package javax.servlet.
• Ces extensions consistent à ajouter des fonctionnalités spécifiques au protocole
HTTP.
29/09/2016 10
5- L’API Servlet (3/5)
javax.servlet.Servlet
Servlet interface
Généralisation
javax.servlet.GenericServlet
Spécification
javax.servlet.HttpServlet
29/09/2016 12
5- L’API Servlet (4/5)
29/09/2016 14
6- Modèle de programmations (1/3)
29/09/2016 15
6- Modèle de programmations (2/3)
Requête GET
doGet( )
Service(…, …)
Réponse
Serveur
Notre objectif
29/09/2016 17
7- Modèles d’implémentation d’une
Servlet Http (1/3)
Hello.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
2. Servlets Java
Web.xml
<web-app>
<servlet>
<servlet-name>Hello</servlet-name>
La déclaration d’une
2. Servlets Java
<servlet-class>Hello</servlet-class>
<init-param> Servlet dans une
< param-name> …….. </param-name> application Web se
< param-value> …….. </param-value> fait dans le
</init-param>
descripteur de
</servlet> déploiement
<servlet-mapping>
«web.xml». V2.5 et -
<servlet-name>Hello</servlet-name>
<url-pattern>/servlet/Hello</url-pattern>
</servlet-mapping>
</web-app>
29/09/2016 21
8- Déclaration d’une Servlet au sein
d’une application Web (2/3)
29/09/2016 22
9- HttpServlet : requête et réponse (1/6)
{…
…}
public void doPost (HttpServletRequest req, HttpServletResponse rep ) throws ..
{…
….}
Objet Request :
HttpServletRequest hérite de ServletRequest
Cet objet encapsule la requête HTTP et fournit des méthodes pour
accéder aux informations du client de l'environnement du serveur
29/09/2016 23
9- HttpServlet : requête et réponse (2/6)
29/09/2016 25
9- HttpServlet : request (3/6)
29/09/2016 26
9- HttpServlet : response (4/6)
et code de retour
un flot de sortie pour envoyer des données (par exemple HTML)
au client
Exemples de méthodes
void setStatus(int) : définit le code de retour de la réponse
void setContentType(String) : définit le type de contenu MIME
ServletOutputStream getOutputStream() : flot pour envoyer des
données binaires au client
void sendRedirect(String) : redirige le navigateur vers l'URL
void setHeader ("Refresh", "n") : Indique au client de recharger la même
Servlet après avoir affiché son contenu courant pendant n seconde.
29/09/2016 27
9- HttpServlet : response (5/6)
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<html> <head><title>Ma servlet response
</title></head> <body>");
out.println("Premier Message");
out.println(" GLDRA voilà comment écrire un message");
out.println("Second Message");
}
}
29/09/2016 28
9- HttpServlet : response (6/6)
29/09/2016 29
9- HttpServlet Response : Application (6/6)
29/09/2016 30
10- Servlets et formulaires : du côté
HTML
<HEAD>
<TITLE> Test de la servlet Hello </TITLE> Le formulaire
</HEAD> appelle la servlet
avec la requête post
<BODY>
<FORM action = " Hello " method ="post">
<P>
Prenom : <INPUT type ="text" name="prenom">
<BR>
</FORM>
</BODY>
</HTML>
29/09/2016 32
10- Servlets et formulaires : du côté
HTML
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML><BODY>");
out.println("<H1>Bonjour" +prenom+" "+ nom+"."+ "</H1>" );
out.println("</HTML><BODY> ");
}
29/09/2016 } 33
10- Servlets et formulaires : du côté
HTML
Exercice 1 :
Développer la servlet qui exécutée par le formulaire précédent et qui affiche :
Nom : Ben Zaied
Prénom : Ali
2. Servlets Java
29/09/2016 36
QuiZ
• Quels sont les éléments logiciels constitutifs nécessaires
à la réalisation et l'exécution d'une application web/JEE
serveur HTTP, serveur d'applications, conteneur JSP,
conteneur servlet, plate forme J2EE
• Quelle est la différence entre les GET et POST?
Les paramètres transmis par la commande GET sont
visibles dans le navigateur et ont une taille limitée à 240 C
• Par quelle méthode de servlet est traitée une
commande GET du protocole HTTP ? Donner
sa signature
doGet(HttpServletRequest,HttpServletResponse)
29/09/2016 37
QuiZ
• De quel type est l'objet fourni par une servlet qui porte la
réponse au client ?
HttpServletResponse
• De quel type est le flot de sortie sur lequel est écrit le
code de la page HTML retournée au client ?
PrintWriter
• A quoi sert le fichier web.xml ? Quelles informations y
trouve-t-on ?
Permet de déployer l'application sur une plate forme
d'exécution. On peut spécifier les servlets par un nom et
une URL, définir un contexte pour l'application, définir
des pages d'erreur, des caractéristiques de session, ...
29/09/2016 38
QuiZ
• 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 des paramètres (année et mot) ayant
respectivement les valeurs "2009" et "world" ?
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>servlets.Hello</servlet-class>
<init-param>
<param-name>annee</param-name>
<param-value>2009</param-value> </init-param>
<init-param>
<param-name>mot</param-name>
<param-value>world</param-value> </init-param> </servlet>
29/09/2016 39
Fin Partie I
29/09/2016 40