Vous êtes sur la page 1sur 28

1

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

Applet HTTP/ Servlet


HTTPS JSP RMI EJB

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)

• Une Application web peut se présenter sous forme:


o Une hiérarchie de repertoires et fichiers (format non compacté) ou
o Fichier *.WAR refletant la même hiérarchie (format compacté)
Larbi HASSOUNI 10
Technologies utilisées dans

une Application Web

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 :

• Le fichier web.xml contient des instructions pour


le serveur d’application qui lui spécifient des
informations nécessaires pour le déploiement de
l’application web

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>

Remarque : le temps spécifié dans session-timeout est exprimé en minutes


Larbi HASSOUNI 28

Vous aimerez peut-être aussi