0% ont trouvé ce document utile (0 vote)
3 vues22 pages

Servlets

Transféré par

Youssef Imad
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues22 pages

Servlets

Transféré par

Youssef Imad
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les servlets Le langage Java

Les Servlets

XVII-1 JMF
Les servlets Le langage Java

servlet = ?
• Une servlet est un programme (plug-in) à
ajouter à un serveur (quel qu'il soit).
• Ce cours a trait à la programmation Java
coté serveur (J2EE )
• Pour l'instant les serveurs acceptant des
servlets sont plutôt des serveurs Web.
• Contre-exemple : serveur de mail qui détruit
les mails contenant des virus.

XVII-2 JMF
Les servlets Le langage Java

Motivation et historique
• Nécessité d'avoir des pages HTML
dynamiques i.e. pages créées lors de la
requête (météo, cours de la bourse, vente
aux enchères, etc.)
• Technologie des scripts CGI.
• Le serveur Web demande à lancer un
programme par le protocole CGI
• Inconvénient : nécessite de créer un process
(sauf technique propriétaire)
XVII-3 JMF
Les servlets Le langage Java

CGI : la technique
• Le serveur Web, lorsqu'une URL de script
CGI est demandée, passe la main au
programme adéquat qui exécute le script.
• Ce programme génère la partie dynamique
en HTML.
• La page HTML est complétée par le serveur
Web et retournée au client Web.

XVII-4 JMF
Les servlets Le langage Java

Servlets
• La technique des CGI en Java
• MAIS
• Sans créer de processus + toute la puissance
de Java (accès aux divers domaines de
l'informatique : BD, multimédia, réseau,
objets distribués, composants, etc.)
• + indépendance de la plate-forme et du
serveur

XVII-5 JMF
Les servlets Le langage Java

Comment ça marche ?
• Le serveur (Web) possède désormais un
interpréteur Java
• => il n'y a pas de processus créé lors de
l'exécution de code Java
• Cf. les clients Web possèdent un
interpréteur Java permettant de lancer des
applets.
• D'où le nom de servlets.

XVII-6 JMF
Les servlets Le langage Java

Moteurs de servlets
• Pour exécuter des servlets, il faut un moteur
de servlets dans le serveur Web.
• Ces moteurs sont des plug-in pour des
serveurs Web existants
• ou bien des serveurs Web aux mêmes
• Plug-in : deux candidats : JRun
([Link]), tomcat
([Link])

XVII-7 JMF
Les servlets Le langage Java

Serveurs Web et servlets


• Il existe des serveurs Web qui traitent les
servlets (et JSP ) :
– IBM WebSphere
– iPlanet Enterprise 4.x (ex Netscape)
• Voir à
[Link]/products/servlet

XVII-8 JMF
Les servlets Le langage Java

Tomcat
• Développé par la communauté qui
implémente les spécifs servlets.
• Téléchargeable (en version d'utilisation
élémentaire) gratuitement à
[Link]
[Link]
• Plug-in de Apache v1.3 ou plus, Microsoft
IIS v4.0 ou plus, …
• Est aussi un mini-serveur Web.
XVII-9 JMF
Les servlets Le langage Java

Programmation des servlets


• Utilise deux paquetages :
– [Link] : paquetage générique
– [Link] : paquetage pour
serveurs Web
• Ces paquetages ne sont pas dans J2SE 1.4
• Sont des paquetages supplémentaires.
• Il sont intégrés dans J2EE voir à
[Link]

XVII-10 JMF
Les servlets Le langage Java

Documentation et tutorial
• Documentation à
[Link]
ee/techdocs/api/[Link]
• Tutorial à :
– [Link]
torial/servlets/[Link]

XVII-11 JMF
Les servlets Le langage Java

Les états d'une servlet


• Cf. les états d'une applet. Le passage d'un
état à un autre est automatique fait par le
conteneur de servlets. service(...)
init() puis service(...)
Avant chargement
de la servlet
Servlet chargé Servlet exécuté

destroy()
Servlet déchargé

• Chargement = chargement en mémoire du


moteur de servlets.
• Le conteneur de servlets lance la méthode
service(…) à chaque requête.
XVII-12 JMF
Les servlets Le langage Java

Méthodes fondamentales d'une


servlet
• Les trois méthodes
– public void init(),
– public void service(…),
– public void destroy()
– sont définies dans la classe abstraite de base
[Link].
• service(...) contient deux paramètres
qui modélisent la requête et la réponse
XVII-13 JMF
Les servlets Le langage Java

Servlet pour serveur Web

• On a de nouveau les trois méthodes


– public void init(),
– public void service(…),
– public void destroy()
• spécialisées dans la classe abstraite de base
[Link]
qui sont lancées automatiquement.

XVII-14 JMF
Les servlets Le langage Java

Construire une servlet pour


serveur Web
• Cf. construction des applets
• On construit une classe qui hérite de la
classe [Link]
• On spécialise les méthodes qui nous
intéressent
• On dépose cette classe « au bon endroit » du
serveur Web

XVII-15 JMF
Les servlets Le langage Java

service(...) dans HttpServlet


• Contient deux paramètres :
protected void
service(HttpServletRequest req,
HttpServletResponse resp) throws
ServletException, [Link]
• Cette méthode écrite dans HttpServlet
redirige la requête suivant son type http.
• Méthode HTTP GET => doGet(…)
• Méthode HTTP POST => doPost(…)

XVII-16 JMF
Les servlets Le langage Java

doGet(…), doPost(…)
• Ont les mêmes paramètres que service(…)
de HttpServlet :
public void doXXX(HttpServletRequest
request, HttpServletResponse
response) throws ServletException,
[Link]
• En général on spécialise l'une des deux
méthodes et la seconde appelle la première.

XVII-17 JMF
Les servlets Le langage Java

Récupérer les données de la


requête
• La requête envoie ses données par http
• Souvent des champs d'un formulaire
• On récupère ces données par
String getParameter(String
nomComposantFormulaire)
• sur request
• Cf. les applets

XVII-18 JMF
Les servlets Le langage Java

Envoyer une réponse

• On positionne le type MIME par :


void setContentType(String
type)
• On récupère le canal de sortie texte par :
PrintWriter getWriter()
• sur response

XVII-19 JMF
Les servlets Le langage Java

Une servlet : code complet


import [Link].*;
import [Link].*;
import [Link].*;

public class MaPremiereServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {

// Etape 1. Spécifier le type MIME du contenu de la réponse


[Link]("text/html");

// Etape 2. Récupère le PrintWriter pour envoyer des données au client


PrintWriter out = [Link]();

// Step 3. Envoyer l’information au client


[Link]("<html>");
[Link]("<head><title>Bonjour</title></head>");
[Link]("<body>");
[Link]("<h1> Bonjour à tous </h1>");
[Link](“Il est : " + new [Link]());
[Link]("</body></html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

XVII-20 JMF
Les servlets Le langage Java

Démonstration

XVII-21 JMF
Les servlets Le langage Java

Bibliographie

• Tutorial servlets :
[Link]
/servlets/[Link]
• Page de départ de la technologie servlets :
[Link]
[Link]

XVII-22 JMF

Vous aimerez peut-être aussi