Vous êtes sur la page 1sur 42

JAVA ENTREPRISE EDITION « JEE »

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

• Associé à toutes les applications


• Souplesse: créer un contexte pour chaque
application ( application crée dans le dossier
« Workspace » de Tomcat)

4
ÉTAPES À SUIVRE

Pour que notre serveur prenne en compte nos apps:

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 !!

Structure App JEE sous Eclipse Strucuture App JEE

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 !!

• Problème résolu avec IDE Eclipse:

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é.

Le dossier WebContent n'existe qu'au sein d'Eclipse.


Utiliser votre application en dehors de l'IDE  utiliser l'outil d'export proposé par Eclipse.

RÉALISER UN SIMPLE COPIER-COLLER DES DOSSIERS NE FONCTIONNERA PAS EN DEHORS D'ECLIPSE !

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

GET POST HEAD


• Récupérer une ressource • Soumettre au serveur
web du serveur via une
• Identique a GET
URL des données de • Le serveur n'y
tailles variables, répondra pas en
• Accompagner la réponse • Réaliser les renvoyant la
par des informations opérations qui ont un ressource
diverses à son sujet
• en-têtes
effet sur la ressource. accompagnée des
• headers HTTP • Autorisation explicite informations la
de l'utilisateur concernant,
• Possible de transmettre des mais seulement ces
données au serveur (Query informations 
string) (Problème de Renvoie seulement
données volumineuses) les en-têtes HTTP

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

• Une simple classe Java


• Permettre le traitement de requêtes et la personnalisation de réponses.

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

Package Servlet : Documentation JavaDoc

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 :

• doGet() pour gérer la méthode GET ;


• doPost() pour gérer la méthode POST ;
• doHead() pour gérer la méthode HEAD.

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

• <servlet-name> permet de donner un nom à une servlet.


• <servlet-class> sert à préciser le chemin de la classe de la servlet dans votre application.

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

Configurer l’appel des servlet  Fichier web.xml

<load-on-startup>N</load-on-startup>

 Ordonnez au serveur de charger l'instance de la servlet en question directement pendant le


chargement de l'application
 Avec N entier Positif : correspond à la priorité que vous souhaitez donner au chargement de
votre servlet.

22
ENVOYER DES DONNÉES AU CLIENT

23
SERVLET AVEC VUE

24
JSP (JAVA SERVER PAGES)

• Ressemble à une page HTML.


• Extension .jsp
• Balises HTML / Balises JSP (Appeler code java)
• Exécutée côté serveur et génère une page renvoyée au client.

 Création de page dynamiques ( varier l’affichage et interagir avec l’utilisateur)

25
JSP (QUOI, POURQUOI)

Quoi Pourquoi Comment


• Technologie JEE • Servlet Difficile • Documents au
• Simple fichier texte d’accès / Génération format texte (HTML)
• HTML, XML,Servlet du code présentation • Simplicité d’accès
et Javabeans. • MVC: Séparation aux Javabeans :
entre le code de balises de languages
contrôle et la dédiés.
présentation • Extension du
• MVC: Séparation language: balises non
entre le code métier JSP
et la présentation.

26
CYCLE DE VIE D’UNE JSP

Traduire /
Compiler en une
JSP demandée Vérifier
classe héritante de
HttpServlet

Une JSP est transformée en Servlet par le serveur

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

Données issues du Serveur : Les attributs

Transmettre de la Servlet à la JSP


Exemple : Envoyer une chaine de
caractère : « Transmission avec
succès »

30
TRANSMISSION DES DONNÉES

Données issues de la JSP : Les paramètres


GET du protocole HTTP
permet au client de transmettre des données au serveur en les incluant directement dans l'URL, dans ce qui s'appelle
les paramètres ou query strings en anglais
Exemple d’URL:
<!-- URL sans paramètres -->
/page.jsp
<!-- URL avec un paramètre nommé 'cat' et ayant pour valeur 'java' -->
/page.jsp?cat=java
<!-- URL avec deux paramètres nommés 'lang' et 'admin', et ayant pour valeur respectivement 'fr' et 'true' -->
/page.jsp?lang=fr&admin=true
31
TRANSMISSION DES DONNÉES

Données issues de la JSP : Les paramètres

Exemple:
Envoyer le nom de l’auteur: http://localhost:8081/test4/ginfo?auteur=Hiba

Coté Servlet:

32
TRANSMISSION DES DONNÉES

Données issues de la JSP : Les paramètres

Coté JSP :

33
TRANSMISSION DES DONNÉES

Paramètres d’une requête VS Attributs d’une requêtes

Paramètres Attributs

• Concept HTTP • Concept du conteneur Java


• Communs à toutes les • Créés côté serveur
technologies Web • Non présent dans la req
• Envoyé par le clt: Chaîne de HTTP mais dans l’objet java
caractère • Différents type
• Accès en lecture • Communiquer avec d’autres
Servlets / JSP
34
JAVABEANS

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 être une classe publique ;

•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é ;

•ne doit pas avoir de champs publics ;

•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

Configuration des classes compilées

39
MISE EN PLACE JAVABEAN

40
MISE EN SERVICE JAVABEAN

41
MISE EN SERVICE JAVABEAN

42

Vous aimerez peut-être aussi