Java : Servlet et JSP
◼Présentation
• Programmation web pour Java
✓ Servlet et JSP sont le coté programmation web pour Java
✓ Servlet s’exécute dans un moteur de Servlet ou
conteneur de Servlet permettant d’établir lien entre
Servlet et Serveur Web
✓ Conteneurs de Servlet :
◼ Tomcat – Jboss – Glassfish – Java Server Web …
• Définitions
✓ Servlet programme écrit en Java et qui génère une page
HTML (le code Java contient du HTML).
✓ JSP c’est du HTML qui contient des tags spéciaux <% …
1
Java : Servlet et JSP
◼Servlet
• Principe d’écriture d’une servlet
✓ Servlet morceau de code Java exécuté dans des serveurs
multithreadés tel qu’un serveur HTTP.
✓ Une Servlet implémente l’interface [Link]
◼ Soit directement
◼ Soit en dérivant d’une classe implémentant cette interface
✓ Le cycle de vie d’une Servlet est :
◼ Servlet créée puis initialisée par la méthode init. La méthode init
s’exécute qu’une seule fois, à la 1ère invocation de la Servlet
◼ Les services aux clients sont exécutés par méthode service et ses
dérivées
◼ Servlet est détruite et les ressources libérées : méthode destroy
ASSALE Adjé Louis Java : Servlet & JSP 2
Java : Servlet et JSP
◼Servlet
• Principe d’écriture d’une servlet
✓ Structure de base d’une Servlet :
ASSALE Adjé Louis Java : Servlet & JSP 3
Java : Servlet et JSP
◼Servlet
• Principe d’écriture d’une servlet
✓ Pour faciliter le traitement des serveurs web (HTTP),
classe Servlet affinée en [Link].
Cette classe contient les méthodes
◼ doGet pour les requêtes http de type GET : mode d’appel par
défaut à partir de l’url du navigateur, les paramètres sont
concaténés à l’url : ?var="val"
◼ doPost pour les requêtes http de type POST : méthode
permettant d’envoyer de nombreuses données généralement via
un formulaire (tag <form>) bien que doGet soit possible
◼ qui remplacent la méthode service de la classe mère
◼ La Servlet doit contenir obligatoirement l’une ou l’autre de ces
méthodes
ASSALE Adjé Louis Java : Servlet & JSP 4
Java : Servlet et JSP
◼Servlet
• Principe d’écriture d’une servlet
✓ Structure de base d’une Servlet http :
ASSALE Adjé Louis Java : Servlet & JSP 5
Java : Servlet et JSP
◼Servlet
• Exemples1 :
✓ Envoi de contenu HTML à un client web :
ASSALE Adjé Louis Java : Servlet & JSP 6
Java : Servlet et JSP
◼Servlet
• Exemples2 :
✓ Récupération de paramètres envoyés par un client web :
◼ On a 2 programmes :
◼ Un programme HTML «[Link] » contenant le formulaire
à envoyer
ASSALE Adjé Louis Java : Servlet & JSP 7
Java : Servlet et JSP
◼Servlet
• Exemples2 :
✓ Récupération de paramètres envoyés par un client web :
◼ Une Servlet « [Link] » pour traiter le formulaire
paramètre name="nom" du
formulaire HTML récupéré par la
Servlet par :
[Link]("nom")
ASSALE Adjé Louis Java : Servlet & JSP 8
Java : Servlet et JSP
◼Servlet
• Récupération des paramètres de formulaires
✓ Méthode getParameterNames() de l’objet Request.
◼ Enumeration flds = [Link]();
◼ éléments de l’énumération sont parcourus par nextElement()
String champ =(String) [Link]();
◼ Valeur de l’élément est récupérer par :
String valeur = [Link](champ);
◼ La méthode hasMoreElements() teste s’il y a encore des
éléments : while([Link]())
ASSALE Adjé Louis Java : Servlet & JSP 9
Java : Servlet et JSP
◼Servlet
• Récupération des entêtes
✓ Méthode getHeaderNames() de l’objet Request.
◼ Les éléments de l’énumération sont parcourus par nextElement()
On récupère la valeur de l’élément par : getHeader(element)
◼ En fait la méthode [Link](entete) permet
d’obtenir un entête http précise
Nom Entête signification
Accept Les formats MIME acceptés par le navigateur
AcceptEncoding Format d’encodage accepté
AcceptLanguage Langages acceptés
Host au format hote:port indique machine et port à contacter
Referer L’URL demandée par le navigateur
ASSALE Adjé Louis Java : Servlet & JSP 10
Java : Servlet et JSP
◼Servlet
• Récupération des informations d’environnement
✓ L’objet Request de type HttpServletRequest fournit :
◼ Des méthodes permettant de récupérer des informations sur
l’environnement d’exécution de la Servlet :
Méthodes signification
getServeName() Nom du serveur web
getServerPort() Port de travail du serveur
getMethod() Méthode GET ou POST utilisée pour faire la requête
getRemoteHost() nom de la machine du client
getRemoteAddr() Adresse IP de la machine du client
getContentType() Type de contenu envoyé par le navigateur
getRequestURI() URI demandée par le navigateur, partie de l’URL placée
ASSALE Adjé Louis après hote:port dans
Java [Link]
: Servlet & JSP 11
Java : Servlet et JSP
◼Servlet
• Accès à une base de données
✓ Une Servlet accède à un SGBD via une API JDBC
◼ Elle dispose des classes contenues dans le paquetage [Link].*
✓ Exemple : recherche d’étudiants dont les noms commencent par
un certain nombre de lettre dans une base oracle. On aura
besoin de 2 fichiers :
◼ Un fichier HTML contenant un formulaire dans lequel on va saisir les
1ère lettres
◼ Une Servlet Java qui va traiter les données envoyées par le formulaire
ASSALE Adjé Louis Java : Servlet & JSP 12
Java : Servlet et JSP
◼Servlet
• Accès à une base de données
◼ Le fichier HTML contenant le formulaire
ASSALE Adjé Louis Java : Servlet & JSP 13
Java : Servlet et JSP
◼Servlet
• Accès à une base de données
◼ Le fichier de la Servlet Java « [Link] »
ASSALE Adjé Louis Java : Servlet & JSP 14
Java : Servlet et JSP
◼Servlet
• Accès à une base de données
◼ Le fichier de la Servlet Java « [Link] »
ASSALE Adjé Louis Java : Servlet & JSP 15
Java : Servlet et JSP
◼Servlet
• Suivi de session : 4 méthodes
✓ Réécriture d’URL : passage de paramètres
◼ Ajout dans la chaine de requête de la Servlet d’informations
supplémentaires d’identification de session. Exemple
◼ <a href=[Link]
Expédier</a>
lien contenant l’ID d’un utilisateur
✓ Champs de formulaires cachés
◼ Mettre les données de session dans des champs « hidden »via la
balise INPUT de type HIDDEN
◼ <Input Type = "hidden" Name = "uid" Value = "assale">
ASSALE Adjé Louis Java : Servlet & JSP 16
Java : Servlet et JSP
◼Servlet
• Suivi de session : 4 méthodes
✓ Cookies
◼ Création d’un cookie via la classe Cookie de [Link].*
◼ Cookie unCookie = new Cookie(nom, valeur)
nom et valeur variables de type String
◼ Attributs des cookies : méthodes de l’objet Cookie
◼ getValue/setValue : récupérer/attribuer la valeur
◼ getName/setName : récupérer/attribuer le nom
◼ getComment/setComment : récupérer/attribuer des
commentaires
◼ getMaxAge/setMaxAge : récupérer/attribuer le délai restant
avant expiration du cookie (en seconde). Par défaut le cookie
est défini pour la session courante
17
Java : Servlet et JSP
◼Servlet
• Suivi de session : 4 méthodes
✓ Cookies
◼ Attributs des cookies : : méthodes de l’objet Cookie
◼ getPath/setPath : récupérer/attribuer le répertoire du cookie
◼ Ecriture et lecture d’un cookie
◼ Méthode addCookie(cookie) de l’objet HttpServletResponse
permet d’écrire un cookie sur le disque du client
◼ Méthode getCookies() de l’objet HttpServletRequest permet
de lire les cookies enregistrés sur le disque du client
◼ Exemple
… d’envoie d’un cookie
String nom = [Link] ("nom") ;
Cookie unCookie = new Cookie ("nom", nom) ;
…
18
[Link] (unCookie) ;
Java : Servlet et JSP
◼Servlet
• Suivi de session : 4 méthodes
✓ Cookies
…
◼ Exemple de récupération des cookies
Cookie[] cookies = [Link] () ;
String nom = recupereCookieValeur (cookies, "nom") ;
…
//on définit la fonction recupereCookieValeur
public static String recupereCookieValeur (Cookie[] cookies, String cookieNom)
{
for ( int i=0; i<[Link]; i++){ Cookie cookie = cookies[i];
if ( [Link] ([Link]()))
return ([Link]());
}
return ("non trouvé")
ASSALE Adjé Louis Java : Servlet & JSP 19
}
Java : Servlet et JSP
◼Servlet
• Suivi de session : 4 méthodes
✓ API HttpSession
◼ Ensemble de méthodes de l’objet HttpSession pour gérer le suivi
des sessions. Objet HttpServletRequest dispose de méthode
getSession() pour récupérer ou créer une session
◼ HttpSession laSession = [Link]();
◼ Quelques méthodes de l’objet HttpSession
◼ getId() : retourn un String identifiant la session en cours
◼ getAttribute(String chef) : récupère la valeur d’un objet
identifié par une clé rangé dans la session
◼ setAttribute(String clef, type valeur) : range un objet identifié
par une clé dans la session avec sa valeur
◼ removeAttribute(String clef) : supprime l’objet de la session
20
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Principe
✓ Alternative à ASP/PHP
◼ Page HTML contenant du code Java dans les balises : <%...%>
◼ 3 types d’éléments peuvent être insérés :
◼ Eléments de scripts : insérer des instructions Java
◼ Directives : permet le contrôle de la structure
◼ Actions : pour importer des composants existants
◼ Les JSP sont traduites en Servlet et ont un cycle de vie identique
◼ Méthode jspInit() correspond à la méthode init()
◼ Méthode _jspService() méthode service() d’une Servlet
◼ Enfin méthode jspDestroy() à destroy() d’une Servlet
◼ Dans Tomcat, fichiers JSP placés dans répertoire de l’application
ASSALE Adjé Louis Java : Servlet & JSP 21
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Éléments de scripts
✓ 4 types d’éléments de scripts
✓ Commentaires
◼ Pas pris en compte dans l’exécution: la syntaxe :
◼ <%-- ceci est un commentaire --%>
✓ Déclarations
◼ Permet de déclarer méthodes et variables d’instance connus dans
toute la page JSP et partagés par tous les utilisateurs
◼ On peut définir les méthodes jspInit() et jspDestroy()
◼ La syntaxe est : <%! Déclarations %> Exemple :
◼ <%! private int un_entrier;
private int somme(int a, int b){return(a+b);}
%> 22
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Éléments de scripts
✓ expressions
◼ Permet d’évaluer une expression et renvoyer sa valeur sous
forme d’un String. Une expression correspond à [Link](…)
d’une Servlet et se termine par un (;). Les objets implicites
request, response, session, out, … peuvent être utilisés
◼ La syntaxe est : <%= expression %>
◼ Exemple : JSP qui affiche la date du jour
Java : Servlet & JSP 23
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Éléments de scripts
✓ scriptlets
◼ Génère code Java qui sera placé dans la méthode _jspService()
◼ Dès qu’une structure de contrôle(if, for, while, …) est nécessaire,
une scriptlet doit être écrite
◼ La syntaxe est : <% scriptlet %>
◼ Ils ont accès au variables, beans déclarés et objets implicites :
◼ request : requête courante objet HttpServletRequest
◼ response : réponse courante objet HttpServletResponse
◼ session : session courante objet HttpSession
◼ out : flot de sortie permet écriture sur la réponse objet
[Link] ou [Link]
◼ in : flot d’entrée objet [Link] 24
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Éléments de scripts
✓ scriptlets
◼ Ils ont accès au variables, beans déclarés et objets implicites :
◼ application : espace de données partagé entre toutes les
JSP objet SevletContext(getServletConfig().getContext())
◼ page : instance de Servlet associée à la JSP courante (this)
◼ config : contient les paramètres d’initialisation de la Servlet
objet ServletConfig
◼ pageContext, … : contient les attributs de la page
énumération de la classe PageContext
Java : Servlet & JSP 25
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Éléments de scripts
✓ scriptlets Exemple :
Récupération du nom et
prénom d’une personne en
paramètre et lui envoyer
une salutation
Java : Servlet & JSP 26
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les directives
✓ Indique au conteneur la façon de gérer la Servlet
◼ La syntaxe est : <%@ directive %>
◼ 3 types de directives
✓ Les directives de pages
◼ Syntaxe : <%@page...%>
◼ Définir les attributs spécifiques à une page :
◼ Les « Import » nécessaires au code Java :
<%@page import = "[Link].*", "[Link].*"%>
◼ Le type MIME du contenu retourné :
<%@page contentType = text/html%>
<%@page contentType = text/plain%>
ASSALE Adjé Louis Java : Servlet & JSP 27
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les directives
✓ Les directives de pages
◼ Définir les attributs spécifiques à une page :
◼ Fournir URL de la JSP à charger en cas d’erreur :
<%@page errorPage = "[Link]"%>
◼ Définir si la JSP est une page invoquée en cas d’erreur :
<%@page isErrorPage = "true"%>
◼ Définir le langage de script utilisé :
<%@page language = "Java"%>
◼ Déclarer si la JSP peut être exécutée par +sieurs clients à la
fois
<%@page isThreadSafe = "false"%>
◼ …
ASSALE Adjé Louis Java : Servlet & JSP 28
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les directives
✓ Les directives de pages – Exemple : calcul de pgcd
ASSALE Adjé Louis Java : Servlet & JSP 29
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les directives
✓ Les directives d’inclusion
◼ Permet d’inclure le contenu d’un autre fichier – inclusion
effectuée au moment de traduction de la page avant compilation
◼ Types de fichiers pouvant être inclus :
◼ HTML, éléments de scripts, directives, actions, …
◼ La syntaxe : <%@include file = "chemin_relatif_du_fichier"%>
◼ Exemple : <%@include file = "[Link]"%>
◼ [Link] doit se trouver dans le home du serveur web
ASSALE Adjé Louis Java : Servlet & JSP 30
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les directives
✓ Les directives de balises personnalisées
◼ Permet d’indiquer une bibliothèque de balises : adresse et préfixe
◼ Ces balises peuvent être mélangées aux balises JSP standards et
HTML. La syntaxe est :
◼ <%@taglib prefix= prefixe uri = emplacement%>
◼ JSTL (Java server pages Standard Tag Lib) offre ensemble de
tags avec fonctionnalités suivantes :
◼ Tag de structure (itération, conditionnement, …)
◼ Internalisation
◼ Exécution de requête SQL
◼ Utilisation de document XML
ASSALE Adjé Louis Java : Servlet & JSP 31
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Permet de faire des traitements au moment où la page
est demandée par le client :
◼ Inclure dynamiquement un fichier
◼ Rediriger vers une autre page
◼ Utiliser des Java Beans – etc.
◼ La syntaxe est : <jsp:…/>
✓ jsp:include
◼ Identique à la directive <%@include ... sauf que l’inclusion est
faite au moment de la requête donc après compilation
◼ L’élément d’action jsp:param permet de passer des informations
à la ressource à inclure
ASSALE Adjé Louis Java : Servlet & JSP 32
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ jsp:include – Exemple :
◼ <jsp:include page = "[Link]" flush =" true">
<jsp:param name = "nom" value = "toto"/>
<jsp:param name = "prenom" value = "luc"/>
<jsp:param name = "adresse" value = "abidjan"/>
</jsp:include>
✓ jsp:forward
◼ Passe le contrôle de la requête à une autre ressource
◼ Utilise également jsp:param pour passer des informations
◼ Exemple :
<jsp:forward page = fichier_redirect.jsp>
<jsp:param name = "nom_param" value = "valeur"/>
33
</jsp:forward>
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean :
◼ Modèle de composant Java permettant de construire application
en assemblant des entités logicielles par programme
◼ Modèle de composant décrit par un ensemble d’APIs
◼ Dans architecture des application web, composant métiers sont
implantés par des Java Bean
◼ Un Bean est un objet Java dont la classe respecte des directives :
◼ Un constructeur public sans argument (peut être omis)
◼ Des propriétés « prop » accessibles au travers de getteurs et
setteurs
◼ Méthode de lecture de propriétés : type getNomPropriété()
◼ Méthode d’écriture de proriété : void setNomPropriété(type)
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean :
◼ Inclusion dans une page JSP – la syntaxe est :
◼<jsp:useBean id = "nomDuBean"
[scope = "page|request|session|application"]
class = "[Link]"
[type = "typeDuBean">]
</jsp:useBean>
◼Type utiliser pour transtypage : indique soit une classe mère
soit une interface de la classe
◼ Permet de séparer partie traitement de partie présentation
◼ Permet d’instancier un composant JavaBean
◼ Après exécution, un Bean rend son résultat à la JSP ou Servlet
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean :
◼ Inclusion dans une page JSP – la syntaxe est :
◼Utilisation de Bean évite emploi de méthode
getRequestParameter(…)
◼Valeur de paramètre d’une requête peut être utilisée
directement pour renseigner la propriété d’un Bean
◼Un serveur peut gérer la portée d’un Bean en le liant soit à une
page, une requête, une session ou une application
ASSALE Adjé Louis Java : Servlet & JSP 36
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean :
◼ Récupération et modification des valeurs d’instance de JavaBean
◼Récupération <jsp:getProperty name="idBean"
property="nomProp"/> <%=[Link]()%>
◼ Modification
– attribuer automatiquement aux attributs valeurs récupérées
de la requête : <jsp:setProperty name="idBean"
property="*"/>
- attribuer directement une valeur de paramètre à un attribut :
<jsp:setProperty name="idBean" property="maProp"
param="nomParam"/>
- attribuer directement valeur à un attribut : <jsp:setProperty
name="idBean" property="maProp" value="valeur"/>
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean : Exemple : le Java Bean
ASSALE Adjé Louis Java : Servlet & JSP 38
Java : Servlet et JSP
◼JSP (Java Server Pages)
• Les éléments d’actions
✓ Utilisation de Java Bean : Exemple : la page JSP
ASSALE Adjé Louis Java : Servlet & JSP 39
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Installation
◼ Télécharger l’application via le lien :
[Link] pour la version 9.x
◼ Pour Windows 2 formats disponibles : fichier zip et fichier exe
◼ Dézipper le fichier zip dans un répertoire et procéder à la
configuration
✓ Organisation des répertoires de Tomcat
ASSALE Adjé Louis Java : Servlet & JSP 40
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Organisation des répertoires de Tomcat
Scripts de lancement et d’arrêt du serveur Tomcat
Fichiers de configuration : [Link], [Link] et
[Link]
jar utilisés par Tomcat pour fonctionner. Inclut les
librairies de spécification de Java EE
Zone de déploiement
ASSALE Adjé Louis Java : Servlet & JSP 41
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration
◼ Modifier la variable PATH de l’OS de sorte à désigner le répertoire
bin de Tomcat et du JDK
ASSALE Adjé Louis Java : Servlet & JSP 42
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration
◼ Créer 3 variables d’environnement :
◼ CATALINA_HOME qui pointe sur le répertoire Tomcat
◼ JAVA_HOME qui désigne le répertoire du JDK
◼ Et CLASSPATH qui pointe sur les fichiers lib de Tomcat
ASSALE Adjé Louis Java : Servlet & JSP 43
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration
◼ Tester Tomcat :
◼ Démarrer Tomcat en tapant : startup en ligne de commande
◼ Lancer le navigateur avec : localhost:8080
◼ Arrêter Tomcat en tapant : shutdown options
◼ Port par défaut 8080 en cas de conflit on peut changer de port :
◼ Ouvrir le fichier [Link] et changer le numéro de port
ASSALE Adjé Louis Java : Servlet & JSP 44
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration – test de Tomcat :
ASSALE Adjé Louis Java : Servlet & JSP 45
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration: ajout, suppression et modification de rôles
◼ Un rôle permet d’ajouter des utilisateurs et de définir des droits
sur les Servlets utilisés pour l’identification à base de rôles
◼ Les rôles sont définis dans le fichier [Link]
◼ À la 1ère utilisation du serveur il faut nécessairement ajouter
les comptes admin et manager
◼ Les Servlets à identification par rôles n’autorisent que les
utilisateurs dont les rôles sont test
ASSALE Adjé Louis Java : Servlet & JSP 46
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration du « user » permettant d’utiliser Tomcat
◼ Tomcat a prédéfinit 8 rôles répartis en 2 classes admin/manager
◼ manager-gui permet accès à HTML GUI et pages status
◼ manager-script → interface texte et pages status
◼ manager-jmx → à JMX proxy et pages status
◼ manager-status → seulement aux pages status
◼ Les rôles sont définis dans le fichier [Link]
◼ Un « user »peut jouer un ou plusieurs rôles
◼ On va déclarer un « user » nommé « tomcat » qui va jouer
les 4 rôles manager et un user « admin »pour jouer les 4
rôles admin
ASSALE Adjé Louis Java : Servlet & JSP 47
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration du « user » permettant d’utiliser Tomcat
◼ Copier le script suivant dans le fichier [Link]
ASSALE Adjé Louis Java : Servlet & JSP 48
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration du « user » admin
◼ Ajouter le script suivant dans le fichier [Link]
ASSALE Adjé Louis Java : Servlet & JSP 49
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : droits des utilisateurs
tomcat
admin
ASSALE Adjé Louis Java : Servlet & JSP 50
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : déploiement d’application
◼ Le déploiement d’une application passe par +sieurs étapes
1. Créer dans le répertoire webapps le répertoire de votre projet
◼ Expl: création du répertoire monweb dans webapps
2. Créer un sous-répertoire WEB-INF au répertoire du projet
◼ Créer un sous-répertoire classes à WEB-INF pour loger les
classes des Servlets
◼ Copier le fichier [Link] de examples/WEB-INF dans le
WEB-INF du projet et l’adapter (voir plus loin)
3. Créer dans le répertoire conf/catalina/localhost un fichier xml
dont le nom est identique à celui du projet. Ce fichier définira
le contexte de l’application
ASSALE Adjé Louis Java : Servlet & JSP 51
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : déploiement d’application
◼ Le contexte de l’application est un fichier xml avec la balise
« contexte » contenant les attributs suivants :
◼ path="/monweb" : URL d’accès
◼ docBase="${[Link]}/webapps/monweb" : chemin
d’accès absolu aux fichiers ou
docBase="/monweb" : chemin relatif par rapport à webapps
◼ reloadable="true" : détection automatique des changements
et rechargement si besoin
◼ workDir="/work/Catalina/localhost/monweb" répertoire
temporaire dans lequel l’application pourrait effectuer des
opérations
ASSALE Adjé Louis Java : Servlet & JSP 52
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : déploiement d’application
◼ Fichier [Link] définissant le « contexte » de l’application :
ASSALE Adjé Louis Java : Servlet & JSP 53
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : déploiement d’application
◼ Le fichier [Link] enregistre la description de toutes les Servlets
de l’application, chaque Servlet créée est définie par 2 balises :
◼ La balise <servlet></servlet> qui contient 2 autres balises :
◼ <servlet-name> qui spécifie un nom à la Servlet
◼ <servlet-class> qui spécifie le fichier .class de la Servlet
◼ La balise <servlet-mapping></servlet-mapping> spécifie
comment la Servlet sera appelée dans l’URL
◼ <servlet-name> reprend le nom de la Servlet
◼ <url-pattern> spécifie l’url d’appel
ASSALE Adjé Louis Java : Servlet & JSP 54
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat : serveur d’application
✓ Configuration : déploiement d’application
ASSALE Adjé Louis Java : Servlet & JSP 55
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Installation du plug-in Tomcat dans Eclipse
◼ Ouvrir les préférences d’Eclipse
ASSALE Adjé Louis Java : Servlet & JSP 56
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Installation du plug-in Tomcat dans Eclipse
◼ Ouvrir le panneau des serveurs disponibles
ASSALE Adjé Louis Java : Servlet & JSP 57
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Installation du plug-in Tomcat dans Eclipse
◼ Cliquer sur Add et Ajouter un serveur Tomcat
ASSALE Adjé Louis Java : Servlet & JSP 58
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Installation du plug-in Tomcat dans Eclipse
◼ Choisir le répertoire d’installation de Tomcat et Terminer
ASSALE Adjé Louis Java : Servlet & JSP 59
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Installation du plug-in Tomcat dans Eclipse
◼ L’installation de Tomcat dans Eclipse est validée
ASSALE Adjé Louis Java : Servlet & JSP 60
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’un projet web
◼ Faire File/New/Project et choisir Web/Dynamic Web Projet
ASSALE Adjé Louis Java : Servlet & JSP 61
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’un projet web
◼ Nommer le projet
ASSALE Adjé Louis Java : Servlet & JSP 62
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’un projet web
◼ Répertoire de rangement des
fichiers source – conserver le
choix par défaut
ASSALE Adjé Louis Java : Servlet & JSP 63
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’un projet web
◼ Répertoire de rangement des ressources du projet web : page
HTML, fichier multimédia, fichier Javascript, etc…
Possibilité de générer automatiquement
le fichier [Link]. Ce fichier sera rangé
dans webapp/WEB-INF
Eclipse demande d’utiliser la perspective Java EE
ASSALE Adjé Louis Java : Servlet & JSP 64
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’un projet web
◼ Structure du projet dans la
vue Project Explorer
ASSALE Adjé Louis Java : Servlet & JSP 65
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère Servlet
◼ Cliquer sur icône « Create new Servlet »
Icône fournie par la
perspective Java EE
ASSALE Adjé Louis Java : Servlet & JSP 66
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère Servlet
◼ Fixation des paramètre de la Servlet
• Nom de la servlet utilisé dans le fichier [Link]
• Ses paramètres d’initialisation
• Le ou les paramètres URL mappings
ASSALE Adjé Louis Java : Servlet & JSP 67
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère Servlet
◼ Méthodes à générer
Eclipse peut générer différentes méthodes
standard de la servlet : init(), doGet() ou doPost()
ASSALE Adjé Louis Java : Servlet & JSP 68
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère Servlet
◼ Ecriture du code d’une 1ère servlet
ASSALE Adjé Louis Java : Servlet & JSP 69
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une instance de Tomcat
◼ Dans la vue servers, faire New server
ASSALE Adjé Louis Java : Servlet & JSP 70
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une instance de Tomcat
◼ Ajout de projet
ASSALE Adjé Louis Java : Servlet & JSP 71
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Exécution d’une servlet
◼ Clique-droit sur le projet puis Run As/Run on Server
L’information s’affiche dans une page
web dont l’URL est :
localhost:8080/monprojet/Bonjour
ASSALE Adjé Louis Java : Servlet & JSP 72
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère JSP
◼ Clique-droit sur le projet puis New/JSP File
ASSALE Adjé Louis Java : Servlet & JSP 73
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère JSP
◼ Choisir le répertoire de
la JSP puis nommer la
ASSALE Adjé Louis Java : Servlet & JSP 74
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère JSP
◼ Choisir le type de JSP
ASSALE Adjé Louis Java : Servlet & JSP 75
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Création d’une 1ère JSP
◼ Ecriture du code de la JSP
ASSALE Adjé Louis Java : Servlet & JSP 76
Java : Servlet et JSP
◼Mise en œuvre
• Tomcat dans Eclipse
✓ Exécution de la JSP
◼ Click-droit sur le fichier puis Run As/Run on Server
ASSALE Adjé Louis Java : Servlet & JSP 77