Le site francophone consacré au projet Eclipse et à OSGi
 

 

 

 

(publié le 15/02/2007 - Versions utilisées : WTP 1.5.2 - Tomcat 5.5.17 - Eclipse 3.2.1 - JDK 5.0)

 

Tutorial : développement de Servlets et JSP avec Eclipse WTP

Suite à notre article 'Présentation d'Eclipse WTP', qui donne un aperçu des fonctionnalités d'Eclipse Web Tools, nous vous proposons de détailler pas à pas l'utilisation de WTP pour développer et tester des servlets et JSP. Ce tutorial est destiné à ceux qui débutent avec WTP.

 

Sommaire


 

 

Mise en place

Pour ce tutorial, la mise en place consiste en l'installation d'un JDK, d'Eclipse Web Tools et de Tomcat.
L'installation d'Eclipse Web Tools peut se faire de deux façons :

  • Utilisation du système de Mise à jour d'Eclipse. Après avoir installé Eclipse (voir notre page 'Installer Eclipse'), il est possible d'utiliser le gestionnaire des mises à jour pour télécharger Eclipse WTP et ses prérequis (la première partie de notre article 'Callisto et Eclipse 3.2' décrit cette procédure).
  • Téléchargement et installation d'un fichier contenant Eclipse, WTP et tous les prérequis pour WTP. C'est la solution que nous utiliserons pour ce tutorial.

 


Installation de WTP

Pour pouvoir faire fonctionner Eclipse (et a fortiori WTP) il est nécessaire d'installer un JDK ou un JRE.
L'étape suivante consiste à télécharger une version de WTP contenant Eclipse et tous les fichiers nécessaires au fonctionnement de WTP. Voici le lien pour télécharger Eclipse Web Tools 'All-in-one' 1.5.2 pour Windows :

Download Eclipse   Télécharger Eclipse WTP 1.5.2 pour Windows (210 MB)  

  

Pour tout autre téléchargement concernant WTP consulter la page 'Web Tools Platform donwloads'.

 

Une fois le téléchargement effectué, l'installation consiste simplement à décompresser le fichier. L'exécution se fera ensuite en lançant le fichier eclipse.exe.

Il est aussi possible d'installer les traductions françaises :
- Télécharger ce fichier zip qui contient les traductions de base d'Eclipse 3.2.x.
- Télécharger cet autre fichier zip qui contient les traductions propres à WTP 1.5.x et le décompresser au même endroit qu'Eclipse.

Ces fichiers doivent être décompressés et copiés dans le répertoire d'installation d'Eclipse. Attention : ces fichiers contiennent le nom de répertoire 'eclipse' en dur, donc il peut être nécessaire de décompresser ces fichiers dans un répertoire temporaire, de récupérer le contenu du sous-répertoire 'eclipse' créé lors de la décompression et de copier ce contenu dans le répertoire de votre installation d'Eclipse.

 


Association de WTP avec une installation de Tomcat

Un point fort de WTP est de pouvoir piloter les principaux serveurs d'applications. Une étape de base dans l'utilisation de WTP est de déclarer l'emplacement d'installation des serveurs d'applications que WTP devra gérer. Cette déclaration se fait dans les préférences d'Eclipse : Préférences->Server->Installed Runtimes.

 

Le bouton 'Ajouter...' affiche la liste des types de serveurs supportés. Dans le cadre de ce tutorial nous utiliserons Tomcat 5.5.17 (pour installer Tomcat télécharger le fichier apache-tomcat-5.5.17.zip et le décompresser)

 

Selon le type de serveur sélectionné diverses informations sont demandées, dans le cas de Tomcat seul le répertoire d'installation doit être indiqué :

 

 


Pilotage des serveurs

WTP propose une vue spécifique, nommée 'Serveurs' pour piloter les serveurs d'applications. Cette vue est présente dans la perspective J2EE (perspective ajoutée par WTP). Il est naturellement possible de faire afficher cette vue 'Serveur' dans une autre perspective via le menu Fenêtre->Afficher la vue->Autre..., puis Serveur->Serveurs.
Dans cette vue il faut déclarer les serveurs qui seront pilotés, pour ce faire utiliser le menu contextuel :

 

Pour l'ajout d'un serveur, l'information importante est le nom de l'installation de serveur à utiliser (tel que déclaré précédemment dans les préférences) :

 

La vue 'Serveurs' permet ensuite de piloter les serveurs déclarés, il est notamment possible de les démarrer en mode exécution ou déboguage :

 

 

 


Développement d'une application Web

 


Création d'un projet Web

WTP propose un type de projet particulier pour les applications Web : 'projet Web dynamique'. Ce type de projet est à la base un projet Java enrichi de diverses fonctionnalités : un chemin de compilation initialisé pour avoir accès aux APIs J2EE, une structure conforme au format WAR et des propriétés supplémentaires.

L'ouverture de l'assistant de création de projet Web dynamique peut se faire à partir du menu contextuel de la vue 'Explorateur de projet' dans la perspective J2EE :

 

La première page de l'assistant demande plusieurs informations, les plus importantes sont :
1 - Le nom du projet.
2 - L'environnement d'exécution cible : il s'agit du serveur auquel sera associé ce projet, cette information permet à WTP d'ajouter les fichiers JAR nécessaires dans le chemin de compilation du projet.
3 - Appartenance à un EAR : le projet Web dynamique correspond à un WAR, lors du déploiement la spécification J2EE prévoit qu'un WAR puisse être stocké dans un fichier EAR. WTP propose un type de projet particulier pour les EAR : projet d'applications d'entreprise. L'association d'un WAR avec un EAR est facultative. Dans le cadre de ce tutorial nous ciblons Tomcat qui ne supporte pas le format EAR donc la création d'un projet d'application d'entreprise n'est pas demandé.

 

La seconde page de l'assistant permet d'ajouter des ensemble de fonctionnalités au projet, ces ensembles sont appelés 'project facets' en anglais (la traduction française 'valeur de projet' est erronée). La liste des 'facettes' est extensible, elle dépend des plugins complémentaires qui sont installés. Par exemple, la 'facette' JSF est proposée par le projet JSF Tools, si elle est cochée, les fichiers JAR nécessaires aux développements de JSF seront ajoutés au projet.

 

La troisième page de l'assistant permet de renseigner deux informations importantes :
1 - Le nom de contexte : conformément à la spécification J2EE, chaque application à son propre nom de contexte qui apparaît dans les URL permettant d'accéder à l'application. Par défaut, WTP propose le même nom que le projet.
2 - Le nom du 'répertoire de contenu' : cette information est propre à WTP. Un projet Web Dynamique n'a pas directement la structure d'un WAR. La structure du WAR se trouve dans un sous-répertoire du projet, c'est le nom de ce sous-répertoire que ce champ permet de modifier (La valeur par défaut est 'WebContent'. L'intérêt de cette approche est de pouvoir stocker dans le projet des fichiers qui ne seront pas visibles par le serveur de test et qui ne seront pas exportés lors de la création du fichier WAR correspondant au projet. Par exemple, le code source n'est pas stocké dans le WAR il se trouve dans un sous-répertoire du projet nommé, par défaut, 'src'.


 

 


Développement d'un servlet

La création d'un servlet est possible en utilisant l'assistant de création de classe, mais pour simplifier les choses WTP propose un assistant spécifique. L'ouverture de cet assistant peut se faire à partir du menu contextuel associé au projet Web, dans ce menu choisir 'Nouveau->Servlet'

 

Dans la première page de l'assistant, les informations importantes sont le nom de package et le nom de classe du servlet :

 

La seconde page de l'assistant permet de saisir des informations qui seront utilisées pour déclarer le servlet dans le descripteur de déploiement de l'application (fichier web.xml). La plus importante de ces informations et la liste des alias (champ 'Mappage d'URL'). Ces alias apparaîteront dans les URL permettant d'accéder au servlet (la forme de ces URLs sera http://nomDeServeur:port/nomDeContexte/Alias). Un servlet peut avoir plusieurs alias, par défaut WTP définit un alias en utilisant le nom de la classe du servlet.

 

La dernière page de l'assistant permet de sélectionner les méthodes qui devront être générées lors de la création de la classe du servlet :

 

Après avoir cliqué sur 'Terminer', l'assistant crée la classe. Cette nouvelle classe apparaît dans la vue 'Explorateur de projet' et est ouverte en édition. Dans la capture suivante nous avons ajouté du code dans la méthode doGet :

 

Outre la création de la classe du servlet, l'assistant de création de servlet a mis à jour le fichier web.xml. Ce fichier est éditable et son édition est simplifiée par le fait que WTP propose un éditeur pour les fichiers XML (A noter que cet éditeur a deux onglets, l'un propose une vue arborescente, l'autre une vue code source) :

 

Pour tester la servlet, WTP propose un moyen rapide de lancer le serveur Tomcat (s'il n'est pas déjà démarré) et d'invoquer la servlet (un navigateur Web sera ouvert dans la zone d'édition et l'URL permettant d'invoquer la servlet sera appelée automatiquement). Cette action se fait à partir du menu contextuel associé à la classe de la servlet, dans ce menu choisir 'Exécuter en tant que->Exécuter sur le serveur'. Le serveur peut aussi être lancé en mode debug en utilisant 'Deboguer en tant que->Deboguer sur le serveur'.

 

Lors de la première utilisation de cette opération une boîte de dialogue permet d'indiquer le serveur sur lequel l'exécution doit se faire :

 

WTP ouvre ensuite un navigateur Web dans la zone d'édition et invoque le servlet. Pour notre exemple, nous avons modifié l'URL déclenchée automatiquement par WTP pour ajouter le paramètre attendu par notre servlet :

(NB: la navigateur Web utilisé pour afficher le contenu est en fait Internet Explorer sur Windows. Via les préférences il est possible de demander à WTP de lancer un navigateur à l'extérieur d'Eclipse: 'Préférences->Général->Navigateur Web'). Le navigateur à utiliser peut aussi être indiqué via le menu 'Fenêtre->Navigateur Web'.

 


Développement d'une JSP

Pour le développement des JSP, WTP propose trois principaux outils : un assistant de création, un éditeur de code source et un débogueur.

L'ouverture de l'assistant de création de JSP peut se faire à partir du menu contextuel associé au projet Web, dans ce menu choisir 'Nouveau->JSP'. La première page de l'assistant permet d'indiquer le nom du fichier et son emplacement (par défaut la page est placée à la racine du répertoire WebContent) :

 

La deuxième page de l'assistant permet de choisir un modèle de page à utiliser lors de la création du fichier. A noter que la liste des modèles est extensible :

 

Une fois créée la page est ouverte en édition. L'éditeur de JSP reprend les principales fonctionnalités de l'éditeur de code Java que sont : la coloration syntaxique, l'assistance à la saisie ('complétion' déclenchée par Ctrl+espace), le formattage et l'affichage de la structure du fichier dans la vue 'Outline'. Les particularités des JSP sont prises en compte, soit d'une part le support des tags propres aux JSP et des taglibs, et d'autre part les facilités nécessaires pour développer le code Java intégré dans la page JSP. Le niveau d'aide à l'écriture de code Java se rapproche de celui offert par l'éditeur Java standard d'Eclipse avec notamment le support de la complétion (avec notamment l'ajout des directives d'import) et la validation pendant la saisie.

 

Pour exécuter la JSP, il est possible de procéder de la même façon que pour le servlet (menu contextuel, choix 'Exécuter en tant que' ou 'Déboguer en tant que'. (NB : l'url générée est parfois fausse pour les JSP).

WTP simplifie la mise au point des JSP grâce à son débogueur de JSP. Dans une page JSP, des points d'arrêts peuvent être positionnés au niveau des lignes contenant des tags JSP. Si le serveur a bien été lancé en mode debug, le débogueur s'affichera. Le débogueur de JSP fonctionne de la même façon que le débogueur de code Java.

 

 


Notion de projet dépendant

Il est courant que lors du développement le code d'une application soit réparti dans plusieurs projets. Un besoin classique est que le code Java contenu dans un projet Java soit utilisable par une application Web définie dans son propre projet. WTP permet de définir une telle dépendance un projet Web et un projet Java.

Cette définition se fait à partir des propriétés du projet Web, dans la section 'Dépendances de module J2EE'. Un projet Java coché dans la liste sera vu par l'application Web comme étant un fichier jar dans le répertoire WebContent/WEB-INF/lib.

 

 


Exporter l'application

WTP permet d'exporter simplement un 'projet Web dynamique' sous forme d'un fichier WAR à partir du menu contextuel du projet :

 

La seule information importante est l'emplacement du fichier WAR :

 

 


 

 

 

 


 

 

(c) EclipseTotale - contact(arobase)eclipsetotale.com