La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr Servlet M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr.

Présentations similaires


Présentation au sujet: "M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr Servlet M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr."— Transcription de la présentation:

1 M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr
Servlet M2 – MIAGE/SID

2 Objectif Faciliter la programmation des pages dynamiques en JAVA
Répartition des tâches : Serveur Web Conteneur Application Miage SID

3 Principe Navigateur Adressage Serveur Web Miage SID

4 Principe Navigateur HTTP/GET URL Serveur Web Miage SID

5 Principe URL Navigateur Request TomCat Serveur Web Miage SID

6 Principe Navigateur Request Objet Servlet Objet Servlet Objet Servlet
TomCat Serveur Web Miage SID

7 Principe Navigateur Objet Servlet Response TomCat Serveur Web
Miage SID

8 Principe Navigateur HTML/TXT Objet Servlet Response TomCat Serveur Web
Miage SID

9 Principe Navigateur HTML/TXT Objet Servlet TomCat Serveur Web
Miage SID

10 Classes Java Source: Leila Kefi-Khelif Miage SID

11 Cycle de vie N’existe pas Instanciation Initialisation Indisponible
Destruction Appel service Miage SID

12 Démarrage du conteneur
Cycle de vie Démarrage du conteneur N’existe pas Instanciation Initialisation Indisponible Disponible Destruction Appel service Miage SID

13 Cycle de vie N’existe pas N’existe pas N’existe pas Instanciation
Appel de init() Appel de init() Appel de init() Initialisation Initialisation Initialisation Indisponible Indisponible Indisponible Disponible Disponible Disponible Destruction Destruction Destruction Service Service Service Miage SID

14 Cycle de vie N’existe pas Instanciation Initialisation Indisponible
Appel de service() Destruction Service Miage SID

15 Timeout ou arrêt du conteneur
Cycle de vie N’existe pas Instanciation Initialisation Indisponible Disponible Destruction Service Timeout ou arrêt du conteneur Miage SID

16 Cycle de vie N’existe pas Instanciation Initialisation Indisponible
Libération Indisponible Disponible Destruction Service Miage SID

17 Exemple de Servlet public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>\n" + "<HEAD><TITLE>Hello</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello Nancy !<H1>\n" + "</BODY></HTML>"); } Miage SID

18 HttpServlet doGet() : méthode associée à la requête HTTP GET
doPost() : méthode associée à la requête HTTP POST init() and destroy() : gestion des ressources liées au cycle de vie du Servlet getServletInfo() : méthode associée à la description d’un Servlet HttpServletRequest : classe servant à récupérer les paramètres d’une requête HTTP HttpServletResponse : classe servant à envoyer la réponse à d’une requête HTTP Miage SID

19 Arborescence <Contexte>/ *.html, *.jsp… WEB-INF/ META-INF/
web.xml : descripteur de l’application classes/ : les classes utilisées par l’application (y compris les servlets) lib/ : les .jar utilisés par l’application META-INF/ context.xml : descripteur des ressources de l’application (uniquement .war) Miage SID

20 Projet Web/Eclipse Créer une application avec un seul Servlet qui affiche « Bonjour Nancy !» avec un URL de type: Miage SID

21 Eclipse File>New>Dynamic Web Project
Créer un projet (hello) File>New>Other>Web>Servlet Créer le servlet HelloServlet (mettre du code) Ajouter le projet au serveur local et démarrer le serveur local Tester avec un navigateur ( Miage SID

22 Web.xml Rajouter : Tester à nouveau <servlet-mapping>
<servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet</url-pattern> </servlet-mapping> Tester à nouveau Miage SID

23 Page d’accueil Ajouter une page d’accueil au projet (index.html)
Miage SID

24 Il y a une vie après le développement
Documentation Distribution Déploiement Tests Miage SID

25 Web.xml <?xml version="1.0" encoding="ISO "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app> <display-name> The name of the application </display-name> <description> C'mon, you know what goes into a description, don't you? </description> <servlet> <servlet-name>guess_what_name_of_servlet</servlet-name> <description>Again, some description</description> <servlet-class>com.foo-bar.somepackage.TheServlet</servlet-class> <init-param> <param-name>foo</param-name> <param-value>bar</param-value> </init-param> </servlet> Miage SID

26 Web.xml <servlet-mapping> <servlet-name>name_of_a_servlet</servlet-name> <url-pattern>*.some_pattern</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>image</servlet-name> <url-pattern>/image</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> </web-app> Miage SID

27 Modèle Nous proposons un « modèle » de projet qui s’appuie sur Ant (à installer préalablement) Objectif : Rester compatible avec un projet Eclipse Intégrer une documentation Engendrer une distribution (source ou binaire) Faciliter le déploiement Miage SID

28 Exercice Ecrire une application composée d’un servlet qui affiche « Hello Nancy ! » en utilisant le web-modele fournit Miage SID

29 Etapes Créer un dossier hello2 dans votre workspace
Y recopier le contenu du dossier web-modele Créer un projet hello2 de type Dynamic Web sous Eclipse Recopier les sources du projet hello Tester Miage SID

30 Etapes Mettre à jour les fichiers Engendrer une distribution source
README.txt CHANGELOG.txt doc/*.html Engendrer une distribution source Dans une fenêtre de commande: ant dist Déployer Mettre à jour le fichier proj.properties ant deploy Miage SID

31 Application « bonjour »
Miage SID

32 Application « bonjour »
Miage SID

33 Gestion des sessions HTTP : protocole sans état
Impossibilité de garder des informations d’une requête à l’autre (identifier un client d’un autre) Utilisation de différentes solutions pour remédier au problème d’état dont: Cookies HttpSession Miage SID

34 HttpSession //get the session object
HttpSession session = request.getSession(); //get the resource Integer count = (Integer)session.getAttribute("count"); //if it is the first call, create it if (count == null) { count = new Integer(0); }else{//update the resource count = new Integer(count.intValue()+1); } // store the new resource session.setAttribute("count", count); Miage SID


Télécharger ppt "M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr Servlet M2 – MIAGE/SID Azim.Roussanaly@univ-nancy2.fr."

Présentations similaires


Annonces Google