Travaux Dirigés 5. Création d'un projet web sous Eclipse



Documents pareils
Etude de cas : PGE JEE V2

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Introduction à Eclipse

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Sage CRM. 7.2 Guide de Portail Client

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

1. Installation d'un serveur d'application JBoss:

MEDIAplus elearning. version 6.6

Manuel Utilisateur de l'installation du connecteur Pronote à l'ent

Onglet sécurité de Windows XP Pro et XP Home

Microsoft Application Center Test

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

TD/TP 1 Introduction au SDK d Android

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Documentation Projet ASR : Construction d un système réparti multi-échelle

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Application Web et J2EE

contact@nqicorp.com - Web :

ECLIPSE ET PDT (Php development tools)

Application de lecture de carte SESAM-Vitale Jeebop

Annexe 10 - Procédure pour créer un Jar

3. Quels sont les avantages d'enregistrer un compte de compagnie/d'administrateur?

Edutab. gestion centralisée de tablettes Android

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

Comment créer un site web Proxy gratuitement!

TAGREROUT Seyf Allah TMRIM

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Navigation dans Windows

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Utilisation de Jakarta Tomcat

JOnAS Day 5.1. Outils de développements

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Nuxeo Enterprise Platform: Guide utilisateur

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

TrueCrypt : installation et paramétrage

Les calques supplémentaires. avec Magix Designer 10 et autres versions

Configurez votre Neufbox Evolution

Installation locale de JOOMLA SEPIA

Novell. ifolder. Lisezmoi

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Débuter avec OOo Base

Serveur d application WebDev

Mise en œuvre d un poste virtuel

Exposer ses photos sur Internet

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

PARTAGER VOTRE ECRAN AVEC DES ETUDIANTS CONNECTES A PARTIR D'UN NAVIGATEUR OU DE L'APPLICATION NETOP VISION STUDENT

YAPBA M. Logiciel libre de suivi de vos comptes

FileMaker Server 13. Guide de démarrage

SAUVEGARDER SES DONNEES PERSONNELLES

Web Tier : déploiement de servlets

Réseau local entre Windows Xp et 7

Assistance à distance sous Windows

1/ Présentation de SQL Server :

Guide d'installation du connecteur Outlook 4

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Télécharger et Installer OpenOffice.org sous Windows

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.3

PORTAIL INTERNET DE LA GESTION PUBLIQUE Guide d'utilisation du Portail Internet de la Gestion Publique

Cyberclasse L'interface web pas à pas

Septembre 2012 Document rédigé avec epsilonwriter

Reporting Services - Administration

GESTION DES BONS DE COMMANDE

Votre site Internet avec FrontPage Express en 1 heure chrono

Stockage du fichier dans une table mysql:

Guide d'installation du token

Installation et prise en main

GANTTPROJECT. Julien TENDERO

1. Installation du Module

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Chapitre 2 Créer son site et ses pages avec Google Site

MANUEL. de l application «CdC Online» pour Windows. Table des matières

Rechercher et supprimer les doublons!

Guide de déploiement

Initiation à html et à la création d'un site web

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

Projet Java EE Approfondi

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Guide de démarrage rapide

À propos du Guide de l'utilisateur final de VMware Workspace Portal

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Freeway 7. Nouvelles fonctionnalités

Tutoriel d'introduction à TOR. v 1.0

LES ACCES ODBC AVEC LE SYSTEME SAS

Gestion des applications, TI. Tout droits réservés, Marcel Aubin

et Groupe Eyrolles, 2006, ISBN :

La Clé informatique. Formation Internet Explorer Aide-mémoire

Transcription:

Travaux Dirigés 5 L objectif de ce TD est de vous permettre de construire une fiche de Maintenance ainsi que de définir les procédures à mettre en place lors d une maintenance. Dans le but d automatiser la gestion de la maintenance, vous construirez une base de données hébergée sur un serveur http avec des pages de saisies des configurations matérielles et logicielles et des pages de gestion des incidents. Exercice 21 Nous abordons maintenant le développement d'applications web dynamiques, c.a.d. des applications dans lesquelles les pages HTML envoyées à l'utilisateur sont générées par des programmes. Dans cet exercice vous trouverez un descriptif de manipulation d Eclipse pour créer une application web en Java. Ce descriptif utilise comme exemple un formulaire de personne. Réalisez cet exercice et adaptez le à votre fiche de maintenance. Création d'un projet web sous Eclipse Nous allons développer une première application web avec Eclipse/Tomcat. Nous reprenons une démarche analogue à celle utilisée pour créer une application web sans Eclipse. Eclipse lancé, nous créons un nouveau projet : que nous définissons comme un projet web dynamique :

Dans la première page de l'assistant de création, nous précisons le nom du projet [1] et son emplacement [2] : Dans la seconde page de l'assistant nous acceptons les valeurs par défaut : La dernière page de l'assistant nous demande de définir le contexte [3] de l'application : Une fois l'assistant validé par [Finish], Eclipse se connecte au site [http://java.sun.com] pour récupérer certains documents qu'il veut mettre en cache afin d'éviter des accès réseau inutiles. Une demande d'agrément de licence est alors demandée :

On l'accepte. Eclipse crée le projet web. Pour l'afficher, il utilise un environnement, appelé perspective, différent de celui utilisé pour un projet Java classique : La perspective associée à un projet web est la perspective J2EE. Nous l'acceptons pour voir... Le résultat obtenu est le suivant : La perspective J2EE est en fait inutilement complexe pour les projets web simples. Dans ce cas, la perspective Java est suffisante. Pour l'obtenir, nous utilisons l'option [Window -> Open perspective -> Java] :

src : contiendra le code Java des classes de l'application ainsi que les fichiers qui doivent être dans le Classpath de l'application. build/classes (non représenté) : contiendra les.class des classes compilées ainsi qu'une copie de tous les fichiers autres que.java placés dans src. Une application web utilise fréquemment des fichiers dits fichiers "ressource" qui doivent être dans le Classpath de l'application, c.a.d. l'ensemble des dossiers qui sont explorés par la JVM lorsque l'application fait référence à une classe, soit pendant la compilation soit à l'exécution. Eclipse fait en sorte que le dossier build/classes fasse partie du c web. On place dans le dossier src les fichiers "ressource" sachant qu'eclipse les recopiera automatiquement dans build/classes. WebContent : contiendra les ressources de l'application web qui n'ont pas à être dans le dans le Classpath de l'application. WEB-INF/lib : contiendra les archives.jar dont a besoin l'application web. Examinons le contenu du fichier [WEB-INF/web.xml] qui configure l'application [personne] : Nous avons déjà rencontré de type de configuration lorsque nous avons étudié la création de pages d'accueil précédemment. Ce fichier ne fait rien d'autre que de définir une série de pages d'accueil. Nous ne gardons que la première. Le fichier [web.xml] devient le suivant :

Le contenu du fichier XML ci-dessus doit obéir aux règles de syntaxe définies dans le fichier désigné par l'attribut [xsi:schemalocation] de la balise d'ouverture <web-app>. Ce fichier est ici [http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd]. C'est un fichier XML qu'on peut demander directement avec un navigateur. Si celui-ci est suffisamment récent, il saura afficher un fichier XML : Eclipse va chercher à vérifier la validité du document XML à l'aide du fichier.xsd précisé dans l'attribut [xsi:schemalocation] de la balise d'ouverture <web-app>. Il va pour cela faire un accès réseau. Si votre ordinateur est sur un réseau privé, il faut alors indiquer à Eclipse la machine à utiliser pour sortir du réseau privé, appelée proxy HTTP. Cela se fait avec l'option [Window -> Preferences -> Internet] : On coche (1) si on est sur un réseau privé. Dans (2), on indique le nom de la machine qui supporte le proxy HTTP et dans (3) le port d'écoute de celui-ci. Enfin dans (4), on indique les

machines pour lesquelles il ne faut pas passer par le proxy, des machines qui sont sur le même réseau privé que la machine avec laquelle on travaille. Nous allons créer maintenant le fichier [index.html] de la page d'accueil. Création d'une page d'accueil Nous cliquons droit sur le dossier [WebContent] puis prenons l'option [New -> Other] : Nous choisissons le type [HTML] et faisons [Next] -> Ci-dessus, nous sélectionnons le dossier parent [WebContent] en (1) ou en (2) puis nous précisons en (3) le nom du fichier à créer. Ceci fait, nous passons à la page suivante de l'assistant :

1Avec (1), nous pouvons générer un fichier HTML pré-rempli par (2). Si on décoche (1), on génère un fichier HTML vide. Nous gardons la coche (1) afin de bénéficier d'un squelette de code. Nous terminons l'assistant par [Finish]. Le fichier [index.html] est alors créé : avec le contenu suivant : Nous modifions ce fichier de la façon suivante :

Test de la page d'accueil Si elle n'est pas présente, faisons apparaître la vue [Servers] avec l'option [Window - > Show View -> Other -> Servers] puis cliquons droit sur le serveur Tomcat 5.5 : L'option [Add and Remove Objects] ci-dessus permet d'ajouter / retirer des applications web au serveur Tomcat :

Les projets web connus d'eclipse sont présentés en (1). On peut les enregistrer sur le serveur Tomcat par (2). Les applications web enregistrées auprès du serveur Tomcat apparaissent en (4). On peut les désenregistrer avec (3). Enregistrons le projet [personne] : puis terminons l'assistant d'enregistrement par [Finish]. La vue [Servers] montre que le projet [personne] a été enregistré sur Tomcat : Maintenant, lançons le serveur Tomcat et le navigateur web d Eclipse puis demandons l'url [http://localhost:8080/personne]. Cette url est celle de la racine de l'application web. Aucun document n'est demandé. Dans ce cas, c'est la page d'accueil de l'application qui est affichée. Si elle n'existe pas, une erreur est signalée. Ici la page d'accueil existe. C'est le fichier [index.html] que nous avons créé précédemment. Le résultat doit être conforme ce qui était attendu. Maintenant, prenons un navigateur externe à Eclipse et demandons la même url. L'application web [personne] est donc connu également à l'extérieur d'eclipse. Création d'un formulaire HTML Nous créons maintenant un document HTML statique [formulaire.html] dans le dossier [personne] :

Pour le créer, on suivra la procédure décrite au paragraphe 3.2, page 33. Son contenu sera le suivant : Le code HTML ci-dessus correspond au formulaire ci-dessous :

n type HTML nom code Sauvegardons le document dans le dossier <personne>/webcontent. Lançons Tomcat si besoin est. Avec un navigateur demandons l'url http://localhost:8080/personne/formulaire.html : L architecture client/serveur de cette application basique est la suivante : Le serveur web est entre l'utilisateur et l'application web et n'a pas été représenté ici. [formulaire.html] est un document statique qui délivre à chaque requête du client le même contenu. La programmation web vise à générer du contenu adapté à la requête du client. Ce contenu est alors généré par programme. Une première solution est d'utiliser une page JSP (Java Server Page) à la place du fichier HTML statique. C'est ce que nous voyons maintenant. Création d'une page JSP L'architecture client / serveur précédente est transformée comme suit :

Une page JSP est une forme de page HTML paramétrée. Certains éléments de la page ne reçoivent leur valeur qu'au moment de l'exécution. Ces valeurs sont calculées par programme. On a donc une page dynamique : des requêtes successives sur la page peuvent amener des réponses différentes. Nous appelons ici réponse, la page HTML affichée par le navigateur client. Au final, c'est toujours un document HTML que reçoit le navigateur. Ce document HTML est généré par le serveur web à partir de la page JSP. Celle-ci sert de modèle. Ses éléments dynamiques sont remplacés par leurs valeurs effectives au moment de la génération du document HTML. Pour créer une page JSP, nous cliquons droit sur le dossier [WebContent] puis prenons l'option [New -> Other] : Nous choisissons le type [JSP] et faisons [Next] -> Ci-dessus, nous sélectionnons le dossier parent [WebContent] en (1) ou en (2) puis nous précisons en (3) le nom du fichier à créer. Ceci fait, nous passons à la page suivante de l'assistant :

Avec (1), nous pouvons générer un fichier JSP pré-rempli par (2). Si on décoche (1), on génère un fichier JSP vide. Nous gardons la coche (1) afin de bénéficier d'un squelette de code. Nous terminons l'assistant par [Finish]. Le fichier [formulaire.jsp] est alors créé : avec le contenu suivant : La ligne 1 indique que nous avons affaire à une page JSP. Nous transformons le texte cidessus de la façon suivante :

Le document initialement statique est maintenant devenu dynamique par introduction de code Java. Pour ce type de document, nous procèderons toujours comme suit : nous mettons du code Java dès le début du document pour récupérer les paramètres nécessaires au document pour s'afficher. Ceux-ci seront souvent dans l'objet request. Cet objet représente la requête du client. Celle-ci peut passer au travers de plusieurs servlets et pages JSP qui ont pu l'enrichir. Ici, elle nous arrivera directement du navigateur. le code HTML se trouve à la suite. Il se contentera le plus souvent d'afficher des variables calculées auparavant dans le code Java au moyen de balises <%= variable %>. On notera ici que le signe = est collé au signe %. C'est une cause fréquente d'erreurs. Que fait le document dynamique précédent? lignes 6-9 : il récupère dans la requête, deux paramètres appelés [txtnom] et [txtage] et met leurs valeurs dans les variables [nom] (ligne 6) et [age] (ligne 8). S'il ne trouve pas les paramètres, il donne aux variables associées des valeurs par défaut. il affiche la valeur des deux variables [nom, age] dans le code HTML qui suit (lignes 25 et 29).

Faisons un premier test. Lançons Tomcat si besoin est, puis avec un navigateur, demandons l'url http://localhost:8080/personne/formulaire.jsp. Le document formulaire.jsp a été appelé sans passage de paramètres. Les valeurs par défaut ont donc été affichées. Maintenant demandons l'url http://localhost:8080/personne/formulaire.jsp?txtnom=martin&txtage=14 : Cette fois-ci, nous avons passé au document formulaire.jsp, les paramètres txtnom et txtage qu'il attend. Il les a donc affichés. On sait qu'il y a deux méthodes pour passer des paramètres à un document web : GET et POST. Dans les deux cas, les paramètres passés se retrouvent dans l'objet prédéfini request. Ici, ils ont été passés par la méthode GET. Création d'une servlet Dans la version précédente, la requête du client était traitée par une page JSP. Lors du premier appel à celle-ci, le serveur web, ici Tomcat, crée une classe Java à partir de cette page et compile celle-ci. C'est le résultat de cette compilation qui au final traite la requête du client. La classe générée à partir de la page JSP est une servlet parce qu'elle implémente l'interface [javax.servlet]. La requête du client peut être traitée par toute classe implémentant cette interface. Nous construisons maintenant une telle classe : ServletFormulaire. L'architecture client / serveur précédente est transformée comme suit : Avec l'architecture à base de page JSP, le document HTML envoyé au client était généré par le serveur web à partir de la page JSP qui servait de modèle. Ici le document HTML envoyé au client sera entièrement généré par la servlet. Création de la servlet Sous Eclipse, cliquons droit sur le dossier [src] et prenons l'option de création d'une classe : puis définissons les caractéristiques de la classe à créer :

Dans (1), on met un nom de paquetage, dans (2) le nom de la classe à créer. Celle-ci doit dériver de la classe indiquée en (3). Il est inutile de taper soi-même le nom complet de celleci. Le bouton (4) permet l'accès aux classes actuellement dans le Classpath de l'application web : En (1) on tape le nom de la classe recherchée. On obtient en (2) les classes du Classpath dont le nom contient la chaîne tapée en (1). Après validation de l'assistant de création, le projet web [personne] est modifié de la façon suivante : La classe [ServletFormulaire] a été créée avec un squelette de code :

La copie d'écran ci-dessus montre qu'eclipse signale un [warning] sur la ligne déclarant la classe. Cliquons sur l'icône (lampe) signalant ce [warning] : Après avoir cliqué sur (1), des solutions pour supprimer le [warning] nous sont proposées dans (2). La sélection de l'une d'elles provoque l'apparition dans (3) de la modification de code que son choix va amener. Java 1.5 a amené des modifications au langage Java et ce qui était correct dans une version antérieure peut désormais faire l'objet de [warnings]. Ceux-ci ne signalent pas des erreurs qui pourraient empêcher la compilation de la classe. Ils sont là pour attirer l'attention du développeur sur des points de code qui pourraient être améliorés. Le [warning] présent indique qu'une classe devrait avoir un numéro de version. Celui-ci est utilisé pour la sérialisation / désérialisation des objets, c.a.d. lorsqu'un objet Java.class en mémoire doit être transformé en une suite de bits envoyés séquentiellement dans un flux d'écriture ou l'inverse lorsqu'un objet Java.class en mémoire doit être créé à partir d'une suite de bits lus séquentiellement dans un flux de lecture. Tout cela est fort éloigné de nos préoccupations actuelles. Aussi allons-nous demander au compilateur d'ignorer ce warning en choisissant la solution [Add @SuppressWarnings...]. Le code devient alors le suivant : Il n'y a plus de [warning]. La ligne ajoutée s'appelle une " annotation ", une notion apparue avec Java 1.5. Nous complèterons ce code ultérieurement. Classpath d'un projet Eclipse Le Classpath d'une application Java est l'ensemble des dossiers et archives.jar explorées lorsque le compilateur la compile ou lorsque la JVM l'exécute. Ces deux Classpath ne sont pas forcément identiques, certaines classes n'étant utiles qu'à l'exécution et pas à la

compilation. Le compilateur Java aussi bien que la JVM ont un argument qui permet de préciser le Classpath de l'application à compiler ou exécuter. De façon plus ou moins transparente pour l'utilisateur, Eclipse assure la construction et le passage de cet argument à la JVM. Comment peut-on connaître les éléments du Classpath d'un projet Eclipse? Avec l'option [<projet> / Build Path / Configure Build Path] : Nous obtenons alors l'assistant de configuration suivant : L'onglet (1) [Libraries] permet de définir la liste des archives.jar qui font partie du Classpath de l'application. Elles sont donc explorées par la JVM lorsque l'application demande une classe. Les boutons [2] et [3] permettent d'ajouter des archives au Classpath. Le bouton [2] permet de désigner des archives présentes dans les dossiers des projets gérés par Eclipse alors que le bouton [3] permet de désigner toute archive du système de fichiers de l'ordinateur. Ci-dessus on voit apparaître trois bibliothèques (Libraries) : [JRE System Library] : librairie de base pour les projets Java d'eclipse [Tomcat v5.5 runtime] : librairie apportée par le serveur Tomcat. Elle comporte les classes nécessaires au développement web. Cette librairie est incluse dans tout projet web d'eclipse ayant été associé au serveur Tomcat. C'est l'archive [servlet-api.jar] qui contient la classe [javax.servlet.http.httpservlet], classe parent de la classe [ServletFormulaire] que nous sommes en train de créer. C'est parce que cette archive est dans le Classpath de l'application qu'elle a pu être proposée comme classe parent

dans l'assistant rappelé ci-dessous. Si ce n'avait pas été le cas, elle ne serait pas apparue dans les propositions de [2]. Si donc dans cet assistant, on veut référencer une classe parent et que celle-ci n'est pas proposée, c'est que, soit on se trompe dans le nom de cette classe, soit l'archive qui la contient n'est pas dans le Classpath de l'application. [Web App Libraries] rassemble les archives présentes dans le dossier [WEB-INF/lib] du projet. Ici il est vide : Les archives du Classpath du projet Eclipse sont présentes dans l'explorateur de projets. Par exemple, pour le projet web [personne] : L'explorateur de projets nous donne accès au contenu de ces archives. Ainsi, on peut voir que c'est l'archive [servlet-api.jar] qui contient la classe [javax.servlet.http.httpservlet]. Configuration de la servlet au prochain TD