Java & le web
x Le web dynamique
x Java & le web

Intro à Tomcat
x Serveur d'applications
x Présentation Tomcat
x Installation
x Arborescence

Configuration
x Introduction
x Server
x Service
x Engine
x Host
x Context
x DefaultContext
x Logger
x Loader
x Realm
x Valve

Connecteurs
x Balise Connector
x Coyote HTTP/1.1

Sécurisation accès
x La balise Realm
x Memory Based
x JDBC Database
x Protéger ressources
x Cryptage password

Les Valve
x La balise Valve
x Access Log
x Single Sign-On

Fonctionnalités
x Déploiement auto.
x Class loaders

Eclipse & Tomcat
x Plug-in pour Eclipse
x Projet Tomcat
x Debugger des JSP

Créer une appli web
x Présentation
x Architecture
x Fichier web.xml
x Déploiement

Tomcat 5
x Nouveautés

Tomcat's Corner
x Crédits
x Liens
 
             
Java & le web

 

Des applications web

Au-delà des exemples simples que nous avons évoqués dans le chapitre consacré au web dynamique, la programmation Internet permet de créer de véritables applications web. Que signifie ceci ? Si vous vous connectez à un site de banque en ligne, que vous vous identifiez, vous voyez apparaître dans votre navigateur le solde de vos comptes et les dernières transactions sur celui-ci. Vous recevez tout cela en HTML, comme n'importe quelle donnée. Il est bien évident que ces informations en HTML ont été générées pour être envoyées à votre navigateur. "Quelque chose" a tout d'abord contacté le système central de la banque et récupéré les informations intéressantes. Ce "quelque chose" est une application, tout simplement. Une application web, puisque sa "sortie" est du code HTML, destiné à être envoyé à un client.

Une application web a donc tout d'une application informatique classique. Elle est capable de réaliser tous les traitements autorisés par le langage de programmation utilisé pour la développer. La seule différence est qu'elle doit formater son résultat (ses informations de sortie) en HTML. Au lieu de les écrire sur la console (cas d'une application classique, type DOS) ou dans une interface graphique. Que de chemin parcouru depuis les simples pages web statiques ! Cela dit, un serveur web classique ne sait bien sûr pas exécuter une telle application. C'est pourquoi des serveurs spécifiques sont apparus, les serveurs d'applications, dont Tomcat est un exemple. On commence à voir où l'on veut en venir ;-)

 

Java côté serveur

L'utilisation d'un langage de programmation côté serveur pour le web est très intéressante. Les traitements coûteux en ressources (connexion à une base de données ou à un gros système...) sont effectués sur le serveur, une machine dimensionnée à cet effet. En outre, les possibilités d'interconnexion avec des sources de données multiples et d'autres systèmes sont plus nombreuses et plus aisées.

"Autrefois", il existait des applets Java, petites applications transmises par le réseau, destinées à permettre des traitements plus poussés que le simple HTML (notamment en matière d'interface utilisateur). Seulement, ces applets s'éxécutant sur la machine du client, cela posait des problèmes de performances (la machine cliente doit être suffisamment puissante), de compatibilité (le visiteur doit avoir le plug-in nécessaire pour exécuter une applet) et de sécurité (il serait aventureux de se connecter à un système bancaire depuis une applet !).

 

Les avantages de Java

Tomcat est un serveur d'applications Java. Les applications qu'il héberge et exécute sont donc écrites en Java. L'intérêt d'utiliser Java sur un serveur web est de bénéficier de tous les avantages de ce langage :

- Il est portable (les applications écrites en Java fonctionnent sur un très grand nombre de plate-formes, leur exécution n'étant pas dépendante du système sous-jacent, mais d'un système spécialement conçu pour les exécuter et fonctionnant sur différents environnements),

- Il est orienté objet (les possibilités d'extension sont nombreuses),

- De nombreuses API existent (permettant d'effectuer de nombreuses opérations, et de se connecter à de multiples sources de données et systèmes),

- De nombreux connecteurs sont disponibles en Java pour différents systèmes, ce qui signifie que l'on peut aller interroger des systèmes très hétérogènes avec ce langage,

- Il est compilé (et est en cela plus rapide qu'un langage interprété, comme le PHP),

- Il offre une gestion des erreurs poussée (permettant de limiter les risques de plantage majeur des applications sur le serveur).

 

Java pour le web

Quand on parle de Java pour le web, on évoque en fait un certain nombre de technologies écrites en Java, et conçues pour l'Internet.

La technologie majeure dans ce domaine, en ce qu'elle est la base de tout, est la technologie des servlets. Ce sont les objets de base d'une application web en Java. En effet, ce sont eux vont recevoir les requêtes d'un utilisateur et renvoyer les réponses, après traitement. En d'autres termes, sans servlets, pas d'applications web, puisque les requêtes n'arriveraient pas !

Les pages JSP dérivent des servlets. Il s'agit d'un langage permettant de mélanger dans un fichier du code HTML (ou XML, ...) et du code Java. La syntaxe est la même que celle d'un fichier HTML. Il existe simplement une balise supplémentaire, spécifique, permettant l'insertion de code Java, dans la page. Cela rappelle bien sûr le PHP, que nous évoquions dans le chapitre sur le web dynamique. Voici donc le même exemple que celui en PHP, mais en JSP cette fois. (Il faut toujours disposer d'une variable prenom, initialisée avec le prénom du visiteur).

<html>
<head>
<title>TEST</title>
</head>

<body>Bonjour <%=prenom %>, ceci est un test</body>
</html>

JSP est donc un concurrent de PHP (et d'ASP...). Les JSP ne sont cependant qu'une facilité d'écriture. En effet, le langage Java est un langage compilé. Cela signifie que, pour pouvoir être exécuté, un fichier Java doit être compilé. C'est alors qu'il sera compréhensible par l'exécuteur. Cela a l'avantage de réduire les délais. Une fois compilé, le programme peut être exécuté jusqu'à la prochaine modification du code, qui nécessitera une nouvelle compilation. La différence est très nette avec les langages interprétés, comme PHP. Les fichiers PHP sont lus par l'interpréteur à chaque appel. Nous disions donc que les pages JSP ne sont qu'une facilité d'écriture. En effet, puisqu'elles contiennent du code Java, elles doivent être compilées. Elles sont pour cela converties en servlets spéciales qui sont alors compilées. Donc, lorsque l'on appelle une page JSP sur un serveur, c'est en fait à une servlet que l'on s'adresse. Les JSP ont des fonctionnalités spéciales, et jouent généralement un rôle important dans les applications web, mais nous n'entreront pas dans ces détails ici.

D'autres technologies Java existent pour le web (EJB, JavaServer Faces, ...), mais ce n'est pas l'objet de ce site.

 

 

en résumé...

 

- Une application web est une application dont le résultat est formaté en HTML pour être envoyé à un client.

- Java est un excellent langage pour écrire des applications web, notamment parce qu'il est compilé, donc plus rapide qu'un langage interprété.

- Java est très prisé, et de nombreuses extensions et connecteurs existent, permettant l'accès à de nombreuses sources de données et systèmes hétérogènes.

- Les classes les plus importantes en Java pour le web sont les servlets : les objets qui reçoivent les requêtes du client, effectuent un traitement, avant de renvoyer leur réponse HTML au client.