Académique Documents
Professionnel Documents
Culture Documents
LES SERVLETS
Professeur:
Pr HIBA ASRI
Filière:
Génie Informatique , 4 ème année
1
CRÉATION D’UN PROJET WEB AVEC
ECLIPSE / TOMCAT
2
ÉTAPES À SUIVRE
Démonstration
3
CONTEXTE D’UNE APPLICATION
4
ÉTAPES À SUIVRE
1. Créer un répertoire du même nom que notre projet sous Eclipse, directement dans le
dossier webapps de Tomcat, et y copier-coller nos fichiers, et ce à chaque modification de
code ou configuration effectuée ;
2. Créer un nouveau projet depuis Eclipse, en utilisant directement le répertoire webapps de
votre Tomcat Home comme workspace Eclipse ;
3. Modifier le server.xml ou le context.xml de votre Tomcat, afin qu'il sache où chercher ;
4. Utiliser les propriétés d'un projet web dynamique sous Eclipse.
5
RUN ON SERVER
Démonstration
6
STRUCTURE D’UNE APPLICATION JAVA EE
Dossier/Fichiers Rouge: • Porte le nom du projet
Doivent obligatoirement être • Dossiers et fichier de l’app
• Spécial / Existe toujours
nommés et placés comme indiqué
sur le schéma.
• Classe compilées
• Bibliothèques nécessaires
Dossier/Fichiers Bleu:
publics et accessibles directement
par le client via leurs URL.
Dossier/Fichiers Orange:
privés et ne sont donc pas
• Fichier de configuration
accessibles directement par le
client 7
PAGE WEB SOUS ECLIPSE !!
8
PAGE WEB SOUS ECLIPSE !!
• Problème:
Si votre application n'était pas correctement structurée, notre serveur d'applications ne saurait pas
la gérer !!
Traitement interne pour que la structure qu'il a modifiée soit, malgré tout, utilisable sur le serveur
d'applications que nous lui avons intégré.
9
CRÉATION D’UNE PAGE WEB
Démonstration
10
SERVLET
11
HTTP
Méthodes HTTP
• Mots qu'utilise le navigateur pour poser des questions au serveur
12
CONTENEURS DE SERVLETS
Contient la requête HTTP, et donne accès à
toutes ses informations: les en-têtes Initialise la réponse HTTP qui sera renvoyée au
(headers) et le corps de la requête. client, et permet de la personnaliser, en
initialisant par exemple les en-têtes et le corps
le conteneur de
servlets va les
transmettre à votre
application, et plus
précisément aux
servlets.
13
CRÉATION D’UNE SERVLET
Définition
Classe capable de recevoir une requête HTTP envoyée depuis le navigateur de l'utilisateur, et de lui
renvoyer une réponse HTTP.
Remarque:
Une servlet est capable de gérer n'importe quel type de requête, mais dans les faits il s'agit
principalement de requêtes HTTP
14
CRÉATION D’UNE SERVLET
15
CRÉATION D’UNE SERVLET
Class HttpServlet:
• Classe abstraite,
• il est nécessaire de passer par une servlet qui en hérite.
• la classe propose les méthodes Java nécessaires au traitement des requêtes et réponses HTTP :
A retenir:
• Une servlet HTTP doit hériter de la classe abstraite HttpServlet ;
• Une servlet doit implémenterVoir Démonstration
au moins une des méthodes doXXX(), afin d'être capable de
traiter une requête entrante
16
MISE EN PLACE D’UNE SERVLET
Problème
Rendre une servlet accessible!
Solution
Configurer que notre servlet va être associée à une URL (le client la saisira, la requête HTTP sera
automatiquement aiguillée par notre conteneur de servlet vers la bonne servlet, celle qui est en charge de
répondre à cette requête)
Fichier Web.xml : Cœur de l’application ( paramètres qui contrôlent son cycle de vie)
Location: /WEB-INF
17
MISE EN PLACE D’UNE SERVLET
Définition de la Servlet
18
MISE EN PLACE D’UNE SERVLET
Mapping de la Servlet
• <servlet-name> permet de préciser le nom de la servlet à laquelle faire référence. Cette information
doit correspondre avec le nom défini dans la précédente déclaration de la servlet.
• <url-pattern> permet de préciser la ou les URL relatives au travers desquelles la servlet sera
accessible.
19
CRÉATION D’UNE SERVLET
Démonstration
20
CYCLE DE VIE D’UNE SERVLET
Instance de servlet
Gardée en
Servlet demandée créée (conteneur
mémoire
de servlet)
La même instance sera réutilisée pour chaque requête entrante dont les URL correspondent
au pattern d'URL défini pour la servlet.
Question:
l'instance d'une servlet est-elle créée lors du premier appel à cette servlet, ou bien dès le démarrage
du serveur ?
21
CYCLE DE VIE D’UNE SERVLET
<load-on-startup>N</load-on-startup>
22
ENVOYER DES DONNÉES AU CLIENT
23
SERVLET AVEC VUE
24
JSP (JAVA SERVER PAGES)
25
JSP (QUOI, POURQUOI)
26
CYCLE DE VIE D’UNE JSP
Traduire /
Compiler en une
JSP demandée Vérifier
classe héritante de
HttpServlet
Pourquoi?
- Abstraction de la technologie Servlet.
- Faire du java sans avoir à écrire du code java.
27
MISE EN RELATION AVEC SERVLET
Objet RequetDispatcher:
Objet ServletContext :
Manipuler la ressource
Méthode pour communiquer Réexpédier la paire Re/Rep
Suivre les objets requête et
avec le conteneur de Servlet HTTP vers la page JSP
réponse (Préciser le chemin de
votre JSP)
http://localhost:8081/test4/ginfo
28
MISE EN RELATION AVEC SERVLET
29
TRANSMISSION DES DONNÉES
30
TRANSMISSION DES DONNÉES
Exemple:
Envoyer le nom de l’auteur: http://localhost:8081/test4/ginfo?auteur=Hiba
Coté Servlet:
32
TRANSMISSION DES DONNÉES
Coté JSP :
33
TRANSMISSION DES DONNÉES
Paramètres Attributs
35
BEAN
BEAN: est un simple objet Java qui suit certaines contraintes, et représente généralement des données du monde réel.
Les propriétés : un bean est conçu pour être paramétrable. On appelle "propriétés" les champs non publics présents
dans un bean. Qu'elles soient de type primitif ou objets, les propriétés permettent de paramétrer le bean, en y stockant des
données.
La sérialisation : un bean est conçu pour pouvoir être persistant. La sérialisation est un processus qui permet de
sauvegarder l'état d'un bean, et donne ainsi la possibilité de le restaurer par la suite. Ce mécanisme permet une persistance
des données, voire de l'application elle-même.
La réutilisation : un bean est un composant conçu pour être réutilisable. Ne contenant que des données ou du code
métier, un tel composant n'a en effet pas de lien direct avec la couche de présentation, et peut également être distant de la
couche d'accès aux .C'est cette indépendance qui lui donne ce caractère réutilisable.
L'introspection : un bean est conçu pour être paramétrable de manière dynamique. L'introspection est un processus
qui permet de connaître le contenu d'un composant (attributs, méthodes et événements) de manière dynamique, sans
disposer de son code source.
36
STRUCTURE JAVABEAN
Un bean:
•doit avoir au moins un constructeur par défaut, public et sans paramètres. Java l'ajoutera de
lui-même si aucun constructeur n'est explicité ;
•peut implémenter l'interface Serializable, il devient ainsi persistant et son état peut être
sauvegardé ;
•peut définir des propriétés (des champs non publics), qui doivent être accessibles via des
méthodes publiques getter et setter, suivant des règles de nommage.
37
MISE EN PLACE JAVABEAN
38
MISE EN PLACE JAVABEAN
39
MISE EN PLACE JAVABEAN
40
MISE EN SERVICE JAVABEAN
41
MISE EN SERVICE JAVABEAN
42