Accueil

Une introduction aux servlets et aux JSP

Première partie


Partie  1  2  3

Introduction

Ouvrez grand vos yeux et vos oreilles car cette partie constitue une introduction dont vous êtes le héros. Au cours de l'aventure qui vous attend, je vous servirai de guide, je vous indiquerai la marche à suivre. Mais gardez à l'esprit qu'il ne s'agit point d'une partie à lire ; plutôt d'une partie à pratiquer.

En quoi consiste donc cette introduction ? Au cours des pages qui vont suivre, vous allez découvrir les fonctionnalités majeures de ces technologies que sont les servlets et les JSP. D'un point de vue fonctionnel, vous allez réaliser pas à pas un forum de discussion — c'est à dire un espace de communication dans lequel différentes personnes peuvent consulter et écrire des messages.

Affichons un message

À quoi ressemble un message dans un forum de discussion ? Un peu à un mail que vous pourriez recevoir dans votre boîte aux lettres électronique : il comprend un titre et un corps et possède une date et un auteur.

Nous allons donc commencer par quelque chose de relativement simple : ébaucher une page HTML permettant d'afficher un message. Le code source d'une telle page pourrait ressembler à cela :

<title>Afficher un message</title>

<table>
  <tr> <td>Titre : </td>  <td>Ceci est un titre</td>  </tr>
  <tr> <td>Corps : </td>  <td>Ceci est un corps</td>  </tr>
  <tr> <td>Auteur : </td> <td>Ceci est un auteur</td> </tr>
  <tr> <td>Date : </td>   <td>Ceci est une date</td>  </tr>
</table>

Une page HTML est constituée principalement d'un texte — ce que l'on veut afficher — et d'une série de balises qui agissent sur la mise en page — comment on veut l'afficher. Toute balise est encadrée par les caractères < et >. Elle peut être ouvrante — par exemple <table> — ou fermante — comme </table>.

Les balises <title> et </title> délimitent un titre. Ce dernier n'apparaît pas directement dans le document HTML mais il est affiché dans la barre d'état de votre navigateur internet — comme Internet Explorer ou Netscape Navigator. Dans notre cas, le titre de la page est "Afficher un message."

Dans cette page, la mise en page se limite à l'utilisation d'un tableau de quatre lignes et deux colonnes dans lequel sont placés les différents éléments du message ainsi que leur libellé.

D'une manière générale, un tableau est encadré par les balises <table> et </table>. Il est constitué de plusieurs lignes — chacune étant délimitée par les balises <tr> et </tr> — qui sont elles-mêmes découpées en cellules — mises en évidence par <td> et </td>.

Créez un fichier au format texte — par exemple avec le bloc-notes — et recopiez-y le code HTML précédent. Sauvegardez-le sous le nom viewMessage.html et ouvrez-le avec votre navigateur — il suffit en général de faire un double click sur le nom du fichier dans l'explorateur. L'allure générale de la page devrait être la suivante :

Titre : Ceci est un titre
Corps : Ceci est un corps
Auteur : Ceci est un auteur
Date : Ceci est une date

Pour l'instant, notre page HTML n'est accessible que localement. Or tout site web est accessible sur un réseau intranet ou sur l'internet. Pour cela, il est nécessaire de faire appel à un serveur HTTP — c'est-à-dire un programme qui transmet une page HTML à un client lorsque celui-ci en fait la demande. Dans notre cas, nous allons utiliser TomCat qui peut faire office de serveur HTTP.

Pour installer TomCat et placer notre fichier viewMessage.html sous sa responsabilité, il suffit de se référer au document Installation et configuration de TomCat.

Vous pouvez maintenant appeler votre page HTML depuis votre navigateur en utilisant l'URL suivante : http://localhost:8080/forum/viewMessage.html. La page apparaît comme précédemment mais ce qui s'est passé est totalement différent. Dans l'étape précédente, vous avez spécifié au navigateur la page HTML à afficher en saisissant son chemin d'accès — ou en faisant un double click.

Fonctionnement d'un navigateur qui affiche une page HTML accessible dans le système de fichiers

Dans l'étape qui a suivi, vous avez saisi l'URL de la page HTML dans votre navigateur. Celui-ci a contacté le serveur HTTP correspondant — c'est localhost qui identifie notre serveur dans l'URL http://localhost:8080/forum/viewMessage.html — et lui a adressé une requête. Le serveur HTTP, en retour, a renvoyé au navigateur le contenu de la page HTML — c'est forum/viewMessage.html qui identifie notre page dans l'URL http://localhost:8080/forum/viewMessage.html — qu'il a pu alors afficher.

Fonctionnement d'un serveur HTTP

Abracadabra !

Nous venons de créer une page HTML. Le problème que présentent de telles pages, c'est que leur contenu est statique : ce qui est affiché, c'est ce que vous avez écrit dans le fichier associé. Or les besoins actuels ne nous permettent pas de nous contenter de cela. En effet, nous ne considérons plus aujourd'hui les sites web comme des accumulations de documents mais comme de véritables applications.

Dans notre cas, ce que nous souhaitons c'est afficher n'importe quel message en respectant la mise en page élaborée précédemment. Les JSP permettent de faire cela. Mais qu'est-ce qu'une JSP ? Je vous laisserai le découvrir tout au long de ce livre. Sachez pour l'instant qu'une JSP, cela ressemble à une page HTML, avec des petits plus — souvent exprimés avec le langage Java — qui permettent de rendre dynamique le contenu de votre page web.

Et si une JSP ressemble à une page HTML, alors on doit pouvoir facilement passer de celle-ci à celle-là. Effectivement mesdames et messieurs, sous nos yeux ébahis nous allons transformer notre page HTML en JSP. Renommez simplement le fichier viewMessage.html en viewMessage.jsp et abracadabra ! vous l'avez, votre JSP. Vous pouvez l'appeler depuis votre navigateur en adaptant l'URL précédente — utilisez l'URL http://localhost:8080/forum/viewMessage.jsp.

Si, du point de vue du code, notre JSP ne se distingue pas de notre page HTML, en ce qui concerne son fonctionnement tout est différent. Rappelez vous que lorsque vous saisissez l'URL de la page HTML dans votre navigateur, celui-ci contacte le serveur HTTP correspondant et lui adresse une requête. Le serveur HTTP, en retour, renvoie au navigateur le contenu de la page HTML.

Au contraire, lorsque vous saisissez l'URL de la JSP, le navigateur adresse une requête au serveur HTTP mais celui-ci ne la traite pas directement. En fait il l'a transmet à un moteur de servlet qui exécute la JSP compilée. Le résultat de cette exécution est un document HTML qui est envoyé au navigateur comme s'il provenait d'un fichier.

Fonctionnement d'un moteur de servlet/JSP

Mais qu'est-ce qu'une JSP compilée ? C'est le code d'une JSP — qui est lisible par un être humain — transformé en instructions compréhensibles par l'ordinateur.

Sachez enfin que cette compilation est automatique : le moteur de servlet s'assure que la JSP compilée est toujours à jour par rapport à la JSP que vous codez — ainsi, il la compilera à nouveau si vous la modifiez.

Partie  1  2  3