Table des matières
Ce tutorial a pour objet de présenter la configuration d'Eclipse pour développer des applications web sous Tomcat. Il commence par l'installation du plugin Tomcat dans Eclipse, puis la prise en charge pas Eclipse d'un serveur Tocmat. Enfin, on montre comment créer un premier projet Web sous Eclipse, et sa mise au point sous Tomcat.
Avant de créer ce serveur, on doit s'assurer que le plugin Tomcat est bien installé dans Eclipse. Cela se passe dans la fenêtre des Preferences d'Eclipse, à laquelle on peut accéder dans le menu Windows.
Cette fenêtre comporte énormément d'options, que l'on peut filtrer. La capture d'écran suivante montre celle qui nous intéresse : les Server Runtime Environments.
Pour le moment aucun serveur n'est disponible, ce qui est normal, puisque l'on en n'a déclaré aucun.
Cliquer sur le bouton Add... ouvre la liste des plugins qu'Eclipse possède déjà. Si Tomcat n'apparaît pas dans cette liste, on peut la compléter par téléchargement en clique sur le lien Download additional server adapters, en haut droite de ce panneau.
Dans notre cas, les plugins pour les différentes versions de Tomcat sont déjà présents, on sélectionne celui qui correspond à la version 6 de Tomcat.
L'étape suivante consiste à indiquer à Eclipse où se trouve le répertoire d'installation de Tomcat. On peut le préciser en cliquant sur le bouton Browse... et en allant sélectionner le bon répertoire.
Une fois le répertoire validé, l'installation de Tomcat que l'on a spécifiée apparaît dans la liste des Server Runtime Environments.
Notre installation est validée, nous allons pouvoir passer à l'étape suivante.
Un projet Web est un type de projet spécial sous Eclipse. Spécial, en ce sens qu'il est attaché à un serveur d'applications (ici Tomcat, ce pourrait être un autre serveur), et qu'il expose des fonctionnalités particulières pour créer des servlets, des pages, ou des services web (que nous ne présenterons pas ici).
La création d'un projet Web débute comme un projet Eclipse normal. Comme il ne s'agit pas d'un projet Java classique, on sélectionne la rubrique Project... du sous-menu New.
Dans le panneau qui s'ouvre, on sélectionne alors Dynamic Web Project, sous le nœud Web.
Le panneau qui s'ouvre alors est un peu plus compliqué que celui d'un projet Java classique. En particulier, il nous demande de choisir le serveur que ce projet va utiliser pour fonctionner. Dans notre exemple, on sélectionne le serveur Tomcat que l'on vient de créer. La version de l'API Servlet est sélectionnée automatiquement : 2.5, version la plus récente supportée par Tomcat v6.
Le panneau suivant nous demande dans quel répertoire on souhaite ranger nos fichier source. On
conserve le choix par défaut : le répertoire src
.
Le dernier panneau nous demande dans quel répertoire on souhaite ranger les ressources de ce projet
web : le répertoire WebContent
. C'est dans ce répertoire que l'on pourra ranger les
différentes ressources de notre projet : pages HTML, tout fichier multimedia, fichier Javascript,
etc...
On peut également générer automatiquement le fichier web.xml
de notre application web,
ce qui une commodité offerte par Eclipse. Ce fichier sera rangé automatiquement dans
WebContent/WEB-INF
.
Une fois notre projet créé, Eclipse nous demande si l'on souhaite utiliser la perspective Java EE. Cette perspective est bien adaptée au développement des projets Java EE (elle est même faite pour ça !), on accepte donc cette proposition.
Sur la partie gauche de cette perspective, se trouve la vue Project Explorer (qui ressemble beaucoup à Package Explorer), dans laquelle notre nouveau projet apparaît.
Notre projet est maintenant créé, et l'on va pouvoir passer à l'étape suivante : créer une première servlet.
La perspective Java EE nous montre une frise d'icône qui nous permet de créer directement des classes Java de servlet. C'est que nous allons utiliser pour notre première servlet.
La première rubrique du menu qui s'ouvre est celle qui nous permet de créer une servlet.
Un panneau s'ouvre alors, qui nous permet de spécifier la classe de cette servlet : son
nom, et le nom du package dans lequel cette classe sera placée.
Une servlet étend nécessairement HttpServlet
, on ne doit donc prendre garde
à ce point si l'on modifie la classe qu'étend notre servlet.
Le panneau suivant nous permet de fixer les informations sur cette servlet, qui seront écrites
dans le fichier web.xml
de notre application.
Le nom de notre servlet, utilisé pour s'y référer dans le fichier web.xml
.
Ses paramètres d'initialisation.
Le (ou les) paramètres URL mappings, qui fixeront l'URL à laquelle notre servlet sera disponible.
Le dernier panneau de création précise le contenu de la classe qu'Eclipse va nous générer. Par
commodité, Eclipse peut créer pour nous différentes méthodes standard de notre servlet, telles
que init()
, doGet()
ou doPost()
.
Une fois ces étapes déroulées, notre classe de servlet est créée, et apparaît dans la structure de notre projet.
Le fichier web.xml
a bien été modifié, et prend bien en compte la servlet qui vient
d'être créée.
Notre servlet est très simple, son code est le suivant.
Exemple 1. Code d'une première servlet
public class HelloWorld extends HttpServlet {
protected void doGet(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter() ;
pw.write("Hello world !") ;
}
protected void doPost(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response) ;
}
}
Une fois cette classe créée, il nous reste à la faire fonctionner dans Tomcat, ce qui est l'objet de la prochaine étape.
Une servlet doit être exécutée dans un serveur d'applications, dans notre exemple il s'agit de Tomcat. La première étape consiste à créer une instance de serveur Tomcat, associée à notre espace de travail.
La création d'une instance de Tomcat (comme de tout autre serveur d'application) peut se faire directement dans la vue Servers, présente dans le bas de la perspective Java EE. Le menu contextuel de cette vue permet de créer cette nouvelle instance.
Le panneau qui s'ouvre alors permet de sélectionner le serveur qui va être créé. Pour cela, il faut renseigner les différents éléments du panneau.
Le type de serveur : ici Tomcat v6.
Le Server host name : ici localhost
.
Le Server name : ici Tomcat v6.0 Server at localhost
. Ce nom
est un nom logique utilisé par Eclipse. Il peut être utile de modifier sa valeur par défaut
lorsque l'on fait fonctionner plusieurs serveurs de même type sur une même machine.
Le Server runtime environment : c'est ici que l'on sélectionne le Tomcat que l'on a installé précédemment. On peut aussi installé de nouveaux serveur en cliquant sur le lien Add... qui se trouve à côté de ce sélecteur.
Une fois l'instance de serveur créé, il faut lui ajouter des projets. Ici nous avons créé un serveur Tomcat, capable d'exécuter des servlets, on peut donc lui ajouter des projets qui contiennent des servlets. Eclipse ne nous propose ici que les projets web. Si nous avions d'autres projets Java dans notre espace de travail, ils n'apparaitraient pas dans cette liste.
Cette étape était la dernière : notre serveur est maintenant créé, et notre projet web lui a été ajouté. Notons que l'on peut aussi ajouter des projets à un serveur en les glissant / déposant à partir de la vue Project explorer.
Notre vue Servers a maintenant l'allure suivante.
Lorsque toute la configuration précédente a été effectuée, l'exécution d'une servlet devient
assez simple. Il suffit de sélectionner la traditionnelle option Run as...
du menu contextuel de la classe que l'on veut exécuter. Comme cette classe ne comporte
pas de méthode main()
, la rubrique Java Application n'est
pas présente. En revanche, nous avons la rubrique Run on Server, que
nous allons sélectionner.
Eclipse nous demande alors quel serveur va exécuter cette servlet. Ici nous n'en avons qu'un, dans une configuration complexe, il pourrait y en avoir plusieurs.
Ici encore, il est possible d'ajouter des ressources de notre espace de travail au serveur. On peut sauter cette étape en cliquant directement sur le bouton Finish du panneau précédent.
Eclipse nous ouvre enfin une vue Navigateur, sur l'URL associée à notre servlet. Cette URL est composée de deux éléments principaux : l'hôte sur lequel on a installé notre serveur, et l'élément d'URL auquel est associée notre servlet. Le port choisi par Eclipse est le port 8080, par défaut. Nous verrons dans la suite comment le changer.
On peut également copier cette URL et la coller dans un navigateur lancé localement.
Créer et exécuter une page JSP suit le même processus qu'une servlet. Le menu contextuel du projet nous permet d'ouvrir le panneau de création d'une JSP.
Le premier panneau qui s'ouvre alors permet de fixer dans quel répertoire notre JSP va être créée. Ce
répertoire doit se trouver sous celui que nous avons déclaré comme étant celui qui contient
nos ressources web, au niveau de notre projet. Par défaut, il s'agit du répertoire
WebContent
.
Le second panneau est plus technique. Il nous demande le type de la JSP que nous voulons créer. Il y a sept possibilités, et l'objet de ce tutorial n'est pas de présenter les différences qui existent entre chacune. On sélectionne donc la quatrième : JSP with html markup.
Il ne nous reste plus qu'à valider la création de notre JSP. Elle apparaît sous le nœud
WebContent
de notre projet dans la vue Project Explorer
sous la forme suivante.
Mettons un peu de code dans notre JSP avant de l'exécuter.
Exemple 2. Code d'une première JSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> Bonjour le monde, il est <%=new java.util.Date() %> </body> </html>
Bien que n'étant pas (encore !) une classe Java, une JSP s'exécute de la même manière qu'une servlet, en allant chercher la rubrique Run on Server qui se trouve dans le sous-menu Run as... du menu contextuel de cette JSP.
Eclipse nous demande alors quel serveur il doit utiliser pour cette exécution. Dans notre exemple nous n'en avons créé qu'un seul, le choix est donc facile.
De même que pour l'exécution d'une servlet, on peut alors changer les ressources connues de ce serveur.
Tout comme pour une servlet, notre exécution se fait dans le navigateur intégré à Eclipse. Eclipse nous l'affiche dans sa vue, comme sur la capture suivante.
On peut bien sûr copier l'URL affichée par ce navigateur, et la coller dans un autre navigateur.
Lorsque l'on dit "exécuter une JSP" (ou une servlet) dans un navigateur, il ne faut pas se méprendre sur le sens des choses. La servlet, ou la JSP est exécutée dans une JVM, dans Tomcat, et ce que l'on observe dans la navigateur, ce n'est que l'affichage de la page contenant le code HTML généré par cette servet ou cette JSP.
Notons que la vue Servers présente des boutons qui nous permetttent d'arrêter, et de relancer tomcat. Le lancement de Tomcat peut se faire en mode normal ou en mode debug, ce qui permet d'exécuter pas à pas nos servlets, nos JSPs, et nos services web si l'on en avait.
On peut aussi "rafraîchir" Tomcat. Cela signifie que l'on force le rechargement de toute ressource (servlet ou JSP notamment) qui aurait été modifiée dans Eclipse, alors que Tomcat était en cours d'exécution.
Enfin on peut accéder à un panneau de configuration de Tomcat, simplement en double-cliquant dessus dans la vue Servers. Ce panneau s'affiche dans une vue spéciale, qui porte le nom que l'on a donné à l'instance. Elle permet de configurer de nombreux paramètres, dont le port d'écoute HTTP de Tomcat, ce qui est utile en cas d'instances multiples par exemple.