chap2

Page 10

Collaboration entre Servlets : L’Interface RequestDispatcher (1/2)

Interfaces ServletResponse et HttpServletResponse (7/7) Exemple de manipulation : Mise à jour de l’heure courante

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

Agrégation de résultats fournis par des Servlets : – meilleure modularité modularité, – meilleure réutilisation. servlet4 l t4 servlet1

public class ClientPull extends HttpServlet{

servlet5

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("Text/plain"); PrintWriter out = res.getWriter();

Servlet

servlet2

res.setHeader ("Refresh", "60"); out.println(new Date().toString());

servlet3

} }

37

Collaboration entre Servlets : L’Interface RequestDispatcher (2/2)

38

Synchronisation des traitements : L’Interface SingleThreadModel (1/5)

Obtention d’un RequestDispatcher : – dans la méthode de traitement de requête q de Servlet

……………..

RequestDispatcher rd; rd =

Par défaut une Servlet fonctionne dans un environnement multitâche. – C’est-à-dire qu’à chaque requête reçue pour une Servlet, le conteneur Web crée un thread qui va exécuter la méthode de service d’une instance de la Servlet Servlet.

getServeletContext().getRequestDispatcher("/servlet/MaServlet"); if(rd==null) res.sendError(404);

– Si la méthode de service travaille avec des variables d’instance de la Servlet; chaque thread peut modifier la valeur de ces variables indépendamment de la logique de traitement des autres threads.

………….

– Redirection d’une requête • Dans la méthode de traitement de requête, demande à une autre Servlet de répondre au client rd.forward(req, res);

39

Obligation Obli ti de d garantir ti dans d un certain t i cas un fonctionnement f ti t 40 isolé de chaque thread.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.