Académique Documents
Professionnel Documents
Culture Documents
Sommaire
❑ Introduction
❑ Application Web, composants et conteneur web
❑ Technologies utilisées dans une application Web
❑ Procédures de développement et déploiement d’une application
Web
❑ Fichier archive d’une application Web (fichier *.WAR)
❖ *.WAR directory structure
❖ WEB-INF subdirectory
❑ Configuration d’une application Web
❖ Fichier de description du déploiement d’une application Web
(fichier web.xml)
Larbi HASSOUNI 2
Introduction
Qu'est ce qu'une application Web?
• Une application Web (ou webapp), au contraire d'une application
standalone, s'exécute sur un intranet/Internet.
• Les exemples d'applications webs les plus connues sont google, amazon,
facebook et twitter.
• Une application Web est une application typiquement 3-tier (ou multi-
tier) client-server-base de données comme le montre le shéma de la
diapositive suivante.
Larbi HASSOUNI 3
Application Web : Application 3-tier
Larbi HASSOUNI 4
• Une application web est composée de 5 composants:
• HTTP Server: Apache HTTP Server, Apache Tomcat Server, Microsoft Internet
Information Server (IIS), nginx, Google Web Server (GWS), et autres.
• HTTP Client (ou Web Browser): Internet Explorer (MSIE), FireFox, Chrome,
Safari, et autres.
• Database: MySQL, Apache Derby, mSQL, SQLite, PostgreSQL, Oracle, IBM
DB2, SAP SyBase, MS SQL Server, MS Access; et autres.
• Client-Side Programs: peut être écrit en HTML, JavaScript, VBScript, Flash, et
autres.
• Server-Side Programs: peut être écrit en Java Servlet/JSP, ASP, PHP, Perl,
Python, CGI, et autres.
Larbi HASSOUNI L 5
Use-case typique d'une application web:
• Un utilisateur, via un web browser (HTTP client), envoie l'URL d'une
requête à un serveur HTTP pour démarrer l'application web.
• Un programme côté-client (comme une page HTML) est chargé dans le
browser du client.
• L'utilisateur remplit les critères d'une requête dans un formulaire.
• Le programme côté-client envoie les paramètres de la requête à un
programme côté-serveur.
• Le programme côté-serveur reçoit les paramètres de la requête, intérroge
la base de données et retourne le résultat de la reqête au client.
• Le programme côté-client affiche le résultat de la requête sur le browser.
• Le processus reprends.
Larbi HASSOUNI L 6
Application Web :
Composants Web &
Conteneur Web
Larbi HASSOUNI 7
Composants & Conteneur Web
Browser Web Container EJB Container
J2SE
RMI/IIOP
RMI/IIOP
JavaMail JavaMail
JDBC
JDBC
JMS
JNDI
JNDI
JTA
JMS
JTA
App Client
Container JAF JAF
App HTTP/
Client J2SE
HTTPS
RMI
RMI/IIOP
JDBC
JNDI
JMS
J2SE J2SE
4
Database
Larbi HASSOUNI 8
Composants & Conteneur Web
• Les composants Web sont sous forme de Servlet ou JSP (JSP est
converti en Servlet)
• Les composants web s’exécutent dans un conteneur Web
o Tomcat/Jetty sont des conteneurs web populaires
o Tous les serveurs d’applications conformes aux spécifications
Java EE (GlassFish, WebSphere, WebLogic, WildFly(Jboss))
fournissent des conteneurs web
• Un conteneur web fournit des services systèmes aux composants web
o Envoi des requêtes, sécurité, et gestion de cycle de vie
Larbi HASSOUNI 9
Application Web & Composants
• Une application web est un package deployable qui peut
comporter:
o Composants web (Servlets et JSPs)
o Fichiers resources statiques : html, css, images, ..etc
o Classes utilitaires (Helper classes)
o Librairies
o Fichier descripteur de déploiement (web.xml) (non obligatoire avec servlet
specifications 3.0 et plus : java EE6 et plus)
Larbi HASSOUNI
Traitement d’une requête web
Larbi HASSOUNI
12
Technologies d’une application web java
Larbi HASSOUNI 13
Procédures de développement
et de déploiement d’une
application web
Larbi HASSOUNI 14
Etapes de développement et déploiement d’une
application web
1. Créer les répertoires constituant la structure d’une application web
2. Ecrire (et compiler) le code des composants web (Servlet ou JSP) et des classes
utilitaires référencées par les composants web
3. Créer les ressources statiques (images, pages HTML, fichiers CSS)
4. Créer le fichier descripteur de déploiement (web.xml) qui contient des instructions
pour le conteneur web nécéssaires au déploiement de l’application (non
obligatoire avec Servlet specifications 3.0 et plus :Java EE6 et plus)
5. Construire l’application web(fichier *.war ou répertoire prêt au
déploiement)
6. Déployer l’application web dans un conteneur web
• L’application web est maintenant prête à être accessible par les internautes via son URL.
Larbi HASSOUNI 15
Structure d’une application Web(1)
Larbi HASSOUNI 16
Structure d’une application Web(2)
Larbi HASSOUNI 17
IDE NetBeans : structure d’une application Web
Larbi HASSOUNI 18
Fichier Archive d’une
application Web
(*.WAR)
Larbi HASSOUNI L 19
Application Web
• Une application Web peut être déployé selon deux formats
différents:
• Un fichier archive *.war
• Un repertoire non compressé et qui a la même structure que le fichier
.war
• Lorsque le serveur d’application se trouve sur un poste distant, le
format *.war est recommandé.
• Pour déployer une application sur le conteneur web tomcat, il
suffit de copier le fichier *.war ou le répertoire non compréssé
dans le répertoire webapps de tomcat.
Larbi HASSOUNI L 20
IDE NetBeans : Création du fichier *.war
• Pour créer un fichier *.war qui correspond à une application web en
vue de la transférer sur un serveur d’application distant, faire:
• Cliquer avec le bouton droit sur le projet de votre application
• Cliquer sur la commande Clean and Build
• Cliquer sur l’onglet Files
• Ouvrir le dossier dist.
Votre fichier *.war figure dans le dossier dist. Il peut être copié dans le
répertoire webapps de votre conteneur de servlets tomcat
Larbi HASSOUNI 21
Structure d’un fichier *.war
Larbi HASSOUNI 22
Configuartion d’une application Web via le fichier
Descripteur de Déploiement :
Larbi HASSOUNI 23
Exemple1 de fichier web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>TestServletAvecUtilities</servlet-name> Définition d’un nom pour la servlet
<servlet-class>MyServlets.TestServletAvecUtilities</servlet-class> TestServletAvecUtilities du package
</servlet> MyServlet. Ce nom peut être quelconque
<servlet>
<servlet-name>TestServlet2</servlet-name>
<servlet-class>MyServlets.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
Association du nom de la servlet avec une
<servlet-name>TestServletAvecUtilities</servlet-name>
URL relative au contexte racine.
<url-pattern>/servlet-avec-utilities</url-pattern>
L’URL de la servlet est:
</servlet-mapping>
<servlet-mapping> HTTP://localhost:8080/MyTestApp/servlet-avec-utilities
<servlet-name>TestServlet2</servlet-name>
<url-pattern>/test2</url-pattern>
Il est possible d'utiliser plusieurs url pour une même
</servlet-mapping>
servlet.
</web-app> 24
Exemple2 de fichier web.xml(1)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>databaseURL</param-name>
<param-value>jdbc:mysql://localhost:3306/ELibrairie</param-value>
</context-param>
Un paramètre d’initialisation de
<context-param>
contexte est accessible par toutes les
<param-name>username</param-name>
servlets de l’application.
<param-value>moha</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>topsecret</param-value>
</context-param>
Larbi HASSOUNI 25
Exemple2 de fichier web.xml(2)
<servlet>
<servlet-name>EntryServlet</servlet-name>
<servlet-class>mypkg.EntryServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>RechercheServlet</servlet-name>
<servlet-class>mypkg.RechercheServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ChariotServlet</servlet-name>
<servlet-class>mypkg.ChariotServlet</servlet-class>
</servlet>
Larbi HASSOUNI 26
Exemple2 de fichier web.xml(3)
<servlet-mapping>
<servlet-name>EntryServlet</servlet-name>
<url-pattern>/start</url-pattern>
<url-pattern>/begin</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RechercheServlet</servlet-name>
<url-pattern>/recherche</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ChariotServlet</servlet-name>
<url-pattern>/chariot</url-pattern>
</servlet-mapping>
Larbi HASSOUNI 27
Exemple2 de fichier web.xml(4)
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>