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

Slides:



Advertisements
Présentations similaires
Cours de C – Séance dexercices 19 Octobre Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur.
Advertisements

Serveur d’applications JEE
Architecture. Architecture Enjeux Les Enjeux Trouver une solution e-Business Accessible à partir d’un navigateur Web Accédant au système via un Portail.
Servlet JSP & © Philippe Poulard.
Exposé de Système - Informatique et Réseau
Programmation Web Les JSP.
Cours 5.3 : XML et les architectures N-tiers – Tier Présentation
Cours 6 : XML et les architectures N-tiers – Tier Applicatif

UV JSP JSP : Java Server Page
UV Servlets Les Servlets
Environnement Premier projet.
JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
JSP 2 Crash Course Michel Buffa UNSA
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Université de Versailles-Saint-Quentin
CGI, Servlet. Script CGI, Servlet Motivation Exécution dun traitement coté serveur web Traitement de formulaire Génération de pages html à la volée Ex.
Connexion Web et Bases de Données : Les SERVLETS
Applications Internet
JAVASERVER FACES Un framework Java pour le développement Web.
TomCat M2 – MIAGE/SID
SERVLETS PRESENTATION
Développement Web en J2EE (Servlet & JSP)
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Création d'un projet Web avec Netbeans
Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Applications Internet Chapitre 7, Sections
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
JSTL JSP Standard Tag Library
Servlets.
JSP (Java Server Pages)
Servlets. 2 H. Fauconnier M2-Internet Contenu dynamique Perl/cgi indépendant de la plateforme Extensions du serveur exemple ASP M2-Internet 3 H. Fauconnier.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Michel Coletta - Journées PATTERNS Avril Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?
Adaptée du cours de Richard Grin
Initiation au web dynamique
Initiation au web dynamique - TP
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
BOUSQUET Alexis - GUILLEMIN Vincent - PETIT Cédric
Utilisation avancée.
Marc Le BihanStruts 1.x1 Marc Le Bihan. Struts 1.x2 Plan I)Développement web par Servlets et JSP. II)Prise en charge de Struts. III)Principe de fonctionnement.
PHP & My SQL.
Les servlets Java Les bases de la génération dynamique HTML en Java Sébastien Limet etGérard Rozsavolgyi Licence Professionnelle
Module I-C3 : Applications Web IUT R&T 2e année
APPLETS. Applets : généralités Applet : application s'exécutant dans une page HTML Le ByteCode (fichiers.class) est téléchargé depuis un serveur. L'exécution.
Chapitre 2 Développement Web avec les technologies JSP/Servlets
UV J2EE Module Java Expert
Annexe 2 entêtes HTTP et cookies. Accéder aux objets requêtes et réponses Ces objets sont disponibles dans les classes clé depuis la méthode awake les.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
D4 : Organiser la recherche d'informations numériques
Schéma de conception Factory Method Exemple Sylvain Giroux.
Struts.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Initiation au JavaScript
1 / / 01 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB ARCHITECTURE WEB – COURS III
Développer des applications WEB avec Struts
M2 – MIAGE/SID Servlet et session M2 – MIAGE/SID
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Serveurs Web à contenu dynamique Emmanuel Cecchet INRIA Rhône-Alpes, Projet Sardes Rice University, Systems lab
Java - Servlet et JSP Servlets JSP (Java Server Pages) Tomcat
Les Java Server Pages Dans ce chapitre, nous allons :
IFT 6800 Atelier en Technologies d’information Chapitre 5 Introduction aux Servelets & JSP.
JAVA EE 5 Q.R. C’est quoi une servlets?
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Technologie servlet Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Transcription de la présentation:

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

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

Principe Navigateur Adressage Serveur Web Miage SID

Principe Navigateur HTTP/GET URL Serveur Web Miage SID

Principe URL Navigateur Request TomCat Serveur Web Miage SID

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

Principe Navigateur Objet Servlet Response TomCat Serveur Web Miage SID

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

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

Classes Java Source: Leila Kefi-Khelif Miage SID

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

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

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

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

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

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

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

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

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

Projet Web/Eclipse Créer une application avec un seul Servlet qui affiche « Bonjour Nancy !» avec un URL de type: http://<serveur>/hello/servlet Miage SID

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 (http://localhost/hello/HelloServlet) Miage SID

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

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

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

Web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <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

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

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

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

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

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

Application « bonjour » Miage SID

Application « bonjour » Miage SID

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

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