Vous êtes sur la page 1sur 54

JAVA ENTREPRISE EDITION « JEE »

DESIGN PATTERN MVC


OUTILS ET ENVIRONNEMENT

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
SERVLETS

11
ÉTAPES À SUIVRE

Démonstration

12
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)

13
É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.

14
RUN ON SERVER

Démonstration

15
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 16
PAGE WEB SOUS ECLIPSE !!

Structure App JEE sous Eclipse Strucuture App JEE

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

18
CRÉATION D’UNE PAGE WEB

Démonstration

19
SERVLET

20
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

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

22
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

23
CRÉATION D’UNE SERVLET

Package Servlet : Documentation JavaDoc

24
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
25
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

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

27
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.
28
CRÉATION D’UNE SERVLET

Démonstration

29
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 ?
30
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.

31
ENVOYER DES DONNÉES AU CLIENT

32
SERVLET AVEC VUE

33
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)

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

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

36
CYCLE DE VIE D’UNE JSP

• 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)

37
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

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

39
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

40
CRÉATION D’UNE SERVLET

Package Servlet : Documentation JavaDoc

41
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
42
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

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

44
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.
45
CRÉATION D’UNE SERVLET

Démonstration

46
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 ?
47
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.

48
ENVOYER DES DONNÉES AU CLIENT

49
SERVLET AVEC VUE

50
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)

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

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

53
CYCLE DE VIE D’UNE JSP

• 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)

54

Vous aimerez peut-être aussi