13
1 Les technologies XML Les technologies XML Cours 6 : Cours 6 : XML et les architectures XML et les architectures N-tiers – Tier Applicatif N-tiers – Tier Applicatif Janvier 2009 Janvier 2009 - Version 1.0 - - Version 1.0 -

1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

Embed Size (px)

Citation preview

Page 1: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

1

Les technologies XMLLes technologies XML

Cours 6 : Cours 6 : XML et les architectures XML et les architectures N-tiers – Tier ApplicatifN-tiers – Tier Applicatif

Janvier 2009 Janvier 2009

- Version 1.0 - - Version 1.0 -

Page 2: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

2

TIER APPLICATIF : TIER APPLICATIF : SERVLETSSERVLETS

Exemple de servlets : ExampleServlet.javaExemple de servlets : ExampleServlet.java

import javax.servlet.* ;import javax.servlet.http.* ;import java.io.* ;

1°) Importation des packages Servlet, servlet.http, et io

public class ExampleServlet extend HttpServlet {

2°) Héritage de HttpServlet

public void doGet ( HttpServletRequest requete, HttpServletRespons reponse ) throws ServletException, IOException {

3°) Surcharge de la méthode doGet ou de la méthode doPost

PrintWriter out ; out = reponse.getWriter( ) ; out.println ("<html><head></head>") ; out.println ("<body>Salut</body></html>") ; out.close( ); }}

4°) Ecriture des données dans l’objet reponse

Page 3: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

3

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

L’API JSDK :L’API JSDK :

Interfaces et classes sont Interfaces et classes sont réparties dans 2 réparties dans 2 packages : packages :

javax.servletjavax.servlet

qui contient des qui contient des composants pour composants pour développer des servlets développer des servlets génériques indépendantes génériques indépendantes d'un protocole d'un protocole

javax.servlet.httpjavax.servlet.http

pour développer des pour développer des servlets qui repose sur le servlets qui repose sur le protocole http utilisé par protocole http utilisé par les serveurs web.les serveurs web.

Version 1.2 de J2EE

Page 4: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

4

ServletsServlets

Javax.servlet.genericServlet définie la méthode Javax.servlet.genericServlet définie la méthode

““service” avec service” avec

““request” et request” et

““response” response”

Page 5: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

5

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Caractéristiques d’une servlet :Caractéristiques d’une servlet :

Héritage de Héritage de HttpServletHttpServlet (pour le protocole HTTP), (pour le protocole HTTP), qui hérite elle-même de la servlet qui hérite elle-même de la servlet GenericServletGenericServlet (qui (qui elle est indépendante d’un quelconque protocole).elle est indépendante d’un quelconque protocole).

Surcharge de la méthode doGet()Surcharge de la méthode doGet() ou doPost( ) qui ou doPost( ) qui prend en paramètre deux objets prend en paramètre deux objets de type de type HttpServletRequestHttpServletRequest et et HttpServletResponseHttpServletResponse. .

Lorsqu’une servlet est invoquée par un client, Lorsqu’une servlet est invoquée par un client, elle est elle est tout d’abord chargée en mémoire puis tout d’abord chargée en mémoire puis instanciée, si cela n’avait pas déjà été faitinstanciée, si cela n’avait pas déjà été fait (une (une servlet peut être chargée soit lors de la première servlet peut être chargée soit lors de la première requête faite par un client, soit de manière requête faite par un client, soit de manière automatique au démarrage du serveur).automatique au démarrage du serveur).

Page 6: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

6

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Caractéristiques d’une servlet :Caractéristiques d’une servlet :

Une servlet s’exécute dans un thread (processus léger) Une servlet s’exécute dans un thread (processus léger) et non dans un véritable processus. et non dans un véritable processus.

Après son exécution, Après son exécution, une servletune servlet n’est pas détruite : n’est pas détruite : elle elle reste en mémoirereste en mémoire en attendant d'autres requêtes en attendant d'autres requêtes en provenance de navigateurs clients. en provenance de navigateurs clients.

Ces différents mécanismes permettent d’économiser Ces différents mécanismes permettent d’économiser les ressources allouées et d’améliorer le temps les ressources allouées et d’améliorer le temps d’exécution d'une requête. d’exécution d'une requête.

Seul un changement du code de la servlet nécessite sa Seul un changement du code de la servlet nécessite sa destruction. Il n’est cependant pas nécessaire de destruction. Il n’est cependant pas nécessaire de redémarrer le serveur pour pouvoir recharger la servlet redémarrer le serveur pour pouvoir recharger la servlet ainsi modifiée.ainsi modifiée.

Page 7: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

7

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Caractéristiques d’une servlet :Caractéristiques d’une servlet :

Juste après l’instanciation d’une servlet, le serveur Juste après l’instanciation d’une servlet, le serveur appelle la méthode init( )appelle la méthode init( ) de la servlet, méthode de la servlet, méthode appelée qu’une seule fois durant le cycle de vie de la appelée qu’une seule fois durant le cycle de vie de la servlet. servlet.

Pour chaque requête client, le serveur instancie un Pour chaque requête client, le serveur instancie un objet Request et un objet Response puis objet Request et un objet Response puis appelle la appelle la méthode service( )méthode service( ) de GenericServlet. Cette méthode de GenericServlet. Cette méthode qui reçoit en paramètre un objet Request (qui contient qui reçoit en paramètre un objet Request (qui contient des informations concernant la requête), traite la des informations concernant la requête), traite la requête, puis utilise l'objet Response pour renvoyer la requête, puis utilise l'objet Response pour renvoyer la réponse au client. réponse au client. Note :Note : la méthode service( la méthode service( ) peut faire appel à d'autres ) peut faire appel à d'autres méthodes pour traiter la requête, comme par exemple les méthodes pour traiter la requête, comme par exemple les méthodes doGet( ) ou doPost( ). méthodes doGet( ) ou doPost( ).

Page 8: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

8

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Cycle de vie d’une servlet :Cycle de vie d’une servlet :

Page 9: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

9

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Méthode Get ou méthode Post ?Méthode Get ou méthode Post ?

Page 10: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

10

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Exemple d’utilisation de la méthode Get :Exemple d’utilisation de la méthode Get :

Page 11: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

11

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Récupération des paramètres d’une Récupération des paramètres d’une requête :requête :

Page 12: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

12

TIER APPLICATIF : TIER APPLICATIF : SERVLETS SERVLETS

Redirection de requête :Redirection de requête :

L’extrait de code ci-dessous montre comment rediriger une L’extrait de code ci-dessous montre comment rediriger une requête vers des pages JSP ou vers une autre servlet en requête vers des pages JSP ou vers une autre servlet en fonction d’un paramètre :fonction d’un paramètre :

Page 13: 1 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Applicatif Janvier 2009 - Version 1.0 -

13

TIER APPLICATIF : TIER APPLICATIF : SERVLETSSERVLETS

Autres possibilités offertes par les servlets :Autres possibilités offertes par les servlets :

Récupérer des informations concernant la servlet Récupérer des informations concernant la servlet (classe Servlet). (classe Servlet).

Récupérer des informations concernant la requête Récupérer des informations concernant la requête HTTP telle que la longueur du message, l’adresse IP HTTP telle que la longueur du message, l’adresse IP du client du client …… (classes ServletRequest) (classes ServletRequest)

Gérer la persistance des données côté serveur via Gérer la persistance des données côté serveur via des sessions (classe HttpSession) des sessions (classe HttpSession)

Gérer la persistance des données côté client via des Gérer la persistance des données côté client via des cookies (classe Cookie) cookies (classe Cookie)