Introduction aux applications Web

Introduction aux applications Web

Avant de démarrer dans les configurations et déploiements d’une application Web, commençons par faire un point sur  ce qu’est une application Web et quelle est la place de ce type d’application dans les spécifications J2EE/JEE. Une application Web est une application qui utilise HTTP (Hyper  Text  Transport  Protocol)  comme  couche de  transport.  Cela veut dire que le client d’une telle application est un navigateur et que l’application elle­même est sur le serveur. Le navigateur devient donc un client universel, présent sur toute plate­forme, non spécialisé dans une application mais  sachant interprété un langage de présentation, le HTML  (HyperText Markup Language) et  ses enrichissements : CSS,  JavaScript. 1. Protocole HTTP Il  est important de ne pas perdre de  vue  comment  fonctionne le protocole HTTP pour bien mesurer les  éventuels  risques de sécurité et failles que pourrait présenter une application. Le navigateur va se connecter à une URL, qui correspond à une machine ayant une adresse IP sur le réseau Internet,  ou un réseau interne. ● http://www.editions.eni.fr/  :  permet  d’atteindre  l’application  par  défaut  sur  le  serveur  correspondant  au  domaine editions.eni.fr. Le serveur écoute par défaut, le port 80. ● http://localhost:8080/jmx­console  :  permet  d’atteindre  l’application  jmx-console  sur  la  machine  où  est  le  navigateur. Le serveur écoute sur le port 8080, qui est précisé ici, car il n’est pas le port par défaut. Il est donc question d’application par défaut lorsqu’uniquement le domaine est précisé. Et au sein d’une application, il  sera question de ressource par défaut. ● http://localhost:8080/secu : atteint la  ressource par défaut de l’application. Cette  ressource par défaut est  souvent  une  page  appelée  index.html,  index.jsp,  default.html  ou default.htm.  Elle  est  aussi  appelée  page  d’accueil et nous verrons comment la configurer. ● http://localhost:8080/secu/admin.jsp : atteint la ressource de type page JSP qui s’appelle admin.jsp. ● http://localhost:8080/secu/controleur : atteint la ressource de type servlet qui est associée à l’URL controleur.  Il aurait pu s’agir aussi de la ressource par défaut du répertoire  controleur de l’application  secu, si aucune  servlet n’était associée à l’URL. Lors de la demande de ressource, le navigateur émet une requête HTTP (request). Lors de l’envoi de la ressource, le serveur émet vers le navigateur une réponse HTTP (response). Il est important de  voir que les messages HTTP, requête et réponse, sont constitués de :● un  en­tête  qui  donne  des  renseignements  au  destinataire  du  message  sur  l’émetteur  et  la  ressource  demandée. Cette en­tête est textuelle, donc lisible très facilement. ● un corps de message qui peut être textuel si la réponse est du HTML, mais qui peut être binaire s’il  s’agit  d’une image par exemple. L’en­tête et le corps sont séparés par une ligne vide. Certains  outils  nous  permettent  de  visualiser les  en­têtes des messages. Sous  Firefox par exemple, vous pouvez  utiliser le plug­in « Live HTTP Headers ». Voici l’en­tête de la requête envoyée vers http://localhost:8080/jmx­console. GET /jmx-console/ HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Et voici l’en­tête de la réponse du serveur : HTTP/1.x 200 OK Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5 Set-Cookie: JSESSIONID=5F2D27F3BF97925CA22C0FCB521C290B; Path=/ Content-Type: text/html;charset=ISO-8859-1 Transfer-Encoding: chunked Date: Fri, 05 Sep 2008 06:53:43 GMT Une requête HTTP commence par une méthode HTTP. Dans l’exemple précédent, la requête du navigateur a utilisé la  méthode HTTP GET. Attention, lorsque nous parlons de méthode HTTP, il ne s’agit nullement d’une méthode comme  nous l’entendons dans le langage Java, mais d’une commande. Les méthodes HTTP spécifient le type de requête, donc quelle action doit être effectuée par le serveur : ● GET  :  la méthode  HTTP  la  plus  utilisée,  demande  une  ressource  au  serveur  et  permet  aussi  d’envoyer un  formulaire  en  mode  GET.  Le  contenu  du  formulaire  est  alors  ajouté  à  l’URL  :  http://localhost/login.jsp? nom=toto&id=1234.

Architecture Web pour J2EE/JEE

Sun  définit  dans les  spécifications  servlet  2.2  ce  qu’est une application Web. C’est  une  collection  de  ressources  :  servlets, pages HTML, classes et autres pouvant être packagées et pouvant s’exécuter sur des conteneurs provenant  de fournisseurs multiples. Les éléments d’une application Web sont : ● des servlets ; ● des pages JSP ; ● des ressources statiques : images, pages HTML, documents PDF… ; ● des applets ; ● des composants Java Bean ; ● des descripteurs de déploiement ; ● des classes utilitaires Java. L’ensemble de toutes ces ressources sont packagées dans une archive de type jar, dont l’extension est war. Cette  archive  sera  placée  dans  le  répertoire  de  déploiement  des  conteneurs  pour  être  automatiquement  déployée.  La  structure d’une archive war est la suivante : Cette archive est prise en compte sur tous les conteneurs servlet/JSP. Il arrive que lors de la migration de  l’archive d’un système d’exploitation à un autre le répertoire WEB­INF passe en minuscule. Ainsi, les fichiers  de déploiement ne  sont plus pris en  compte par le  conteneur. Nous avons eu  ce problème avec des  transferts  d’archive entre Ubuntu et RedHat. Il faut alors ouvrir l’archive et corriger l’erreur.

Configuration du conteneur Web 

Le service de déploiement Web est un service JBoss qui est déployé dans le répertoire deploy de votre configuration  serveur. Le répertoire jboss­web.deployer contient l’ensemble des librairies et des fichiers de configuration de base. Le service est visible dans la console JMX, via http://localhost:8080/jmx­console. Il est identifié par JBossWeb/2.0.1.GA qui est un sous­projet JBoss contenant la version 5.5 de Tomcat : Le contenu du répertoire jboss­web.deployer est le suivant : ● répertoire  conf  contenant  un  fichier  web.xml  de  base  pour  les  applications  Web.  Ce  fichier  contient,  entre  autres, la liste des types MIME. ● répertoire jsf­libs contenant les librairies pour les composants JSF (Java Server Face). ● répertoire META­INF contenant : ● le fichier jboss­service.xml qui configure le service WebServer ; ● le fichier webserver­mbean.xml qui configure le déploiement des archives war. ● le  répertoire  ROOT.war  qui  est  une  archive  décompressée,  correspondant  à  la  page  d’accueil  de  JBoss  :  l’application web par défaut, accessible par http://localhost:8080/ ● des librairies jar nécessaires au fonctionnement du service et la prise en charge des JSTL (Java Standard TagLib). ● le fichier  server.xml qui configure le service. Ce fichier contient les configurations des connecteurs d’écoute :  port 8080, port sécurisé 8443. ● le fichier context.xml de base pour chaque application Web. Ce fichier contient la prise en compte ou non de la  sérialisation des sessions et un écouteur (listener) JBoss pour le cycle de vie des servlets. Il peut être important, pour la mise en place de certains projets, de connaître la version de Tomcat utilisée. Voici un  tableau récapitulatif des versions de spécification, par rapport aux versions de Tomcat. 

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *