0% ont trouvé ce document utile (0 vote)
67 vues88 pages

Programmation Web Orientée Objet en Java

formation en java

Transféré par

davysawadogo497
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues88 pages

Programmation Web Orientée Objet en Java

formation en java

Transféré par

davysawadogo497
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UNB-ESI DE BOBO-DIOULASSO

MODULE: «Programmation web orientée objet avec java EE»

NIVEAU: SD M1

1
PLAN DU MODULE
A. Présentation de Java EE

B. Principe de fonctionnement

C. Outils et environnement de développement

D. La technologie JSP et Les servlets

E. Création et déploiement d’une application Java EE dans TomCat

F. Les bases de données avec Java EE


2
Volume horaire (VH)

Volume horaire Présentiel (VHP) 6H

3
PREREQUIS ET OBJECTIF DU MODULE

 Prérequis
Avant d'attaquer, sachez que ce cours ne part pas totalement de zéro :
des notions en développement Java sont nécessaires;
des notions en langages HTML et CSS sont préférables, pour une meilleure compréhension des
exemples ; des notions en langage SQL sont préférables, pour une meilleure compréhension.

Objectifs pédagogiques
-L'objectif majeur est de comprendre le développement d'applications web robustes et
distribuées, déployées et exécutées sur un serveur d'applications en utilisant les concepts de
la programmation orientés objet en java avec les Servlets et les JSP;
-Maîtriser l'architecture des applications Java EE:
-Développer une couche présentation basée sur des JSP, des librairies de balises ;
-Développer des composants de contrôle et de navigation basés sur des Servlets
-Gérer l'accès à une base de données;
-Pouvoir créer une application Web java EE avec NetBeans et le Déployer dans un moteur de
4
Servlet Tomcat
A. Présentation de Java EE
1. Présentation de Java EE
JEE (Java Entreprise Edition) est la version entreprise de la plate-forme "Java" qui se compose de
l'environnement "JSE" ainsi que de nombreuses API et composants destinés à une utilisation "côté
serveur" au sein du système d'information de l'entreprise. Il s'agit donc d'une évolution du Java.
Dès son origine, Java a révolutionné plusieurs domaines de l'informatique, par la suite, Sun avait réorganisé son
offre autour de trois briques :
Java Micro Edition (JME) qui cible les terminaux portables;
Java Standard Edition (JSE) qui vise les postes clients;
Java Entreprise Edition (Java EE) qui définit le cadre d'un serveur d'applications et d'intégration;
Java EE est une norme qui va spécifier à la fois l'infrastructure de gestion de vos applications et les API des
services web utilisées pour concevoir des applications web. Cette technologie se compose de plusieurs
technologies parmi lesquelles nous verrons les Servlets, les les JSP et d’autres.
5
A. Présentation de Java EE
2. Composants de la plate-forme de Java EE
Java EE (Java Entreprise Edition) est une technologie composée de :
Servlets: une classe JAVA coté serveur qui reçoit des données HTTP et qui opère des traitements respectant le protocole HTTP;
JSP : Java Server Pages
JSF : Java Server Faces
Bibliothèque JSTL
EJB : Enterprise JavaBeans
JNDI : API de connexion à des annuaires, notamment des annuaires LDAP, et espace de noms d’objet (ENC)
JDBC : API de connexion à des bases de données
Java Message Service (JMS) : API de communication asynchrone par message
JavaMail : API de gestion des mails
JMX : Extension d’administration des applications
JPA : API de gestion de la rémanence des données
JTA : API de gestion des transactions
JAXP :Java API for XML Processing : API d’analyse XML
JAXM : API de communication asynchrone par XML
JAX-RPC : API de communication synchrone par XML, par exemple à l’aide du protocole SOAP
JAXB : API de sérialisation par XML
JAXR : API de gestion des registres XML, permettant d’enregistrer des Web Services en ebXML
Java RMI : API de communication distante entre des objets Java
6
B. Principe de fonctionnement de Java EE
 Principe général d’échange web CLIENT/SERVEUR sur internet : voir autre source

 Simple échange web client <-> serveur sur internet

 Echange dynamique HTTP client <-> serveur


7
B. Principe de fonctionnement de Java EE
Les langages web standard
Coté client : Vous savez déjà que les langages utilisés pour mettre en forme les
données et les afficher à l'utilisateur sont le HTML & CSS et éventuellement le
Javascript
Coté serveur : il existe plusieurs technologies capables de traiter les informations
sur le serveur, Java EE est l'une d'entre elles, mais il en existe d'autres : PHP, ASP,.NET,
Django et Ruby on Rails, pour ne citer que les principales.

Équivalent à ASP et PHP

‣ plus “propre” et langage plus évolué pour la partie dynamique


que PHP
‣ plus portable et langage plus évolué pour la partie dynamique
que ASP
‣ Nécessite une connaissance en Java
8
Architecture deux-tiers

 Applications centrées sur des gros systèmes.


 2-tiers = client/serveur

Tiers Client Tiers Serveur


de données
Présentation
GUI PC Client
Logique de Réseau Serveur de
présentation,
bases de
Logique de données
Interactions
business
et traitements
de l’entreprise
Limites de l ’architecture deux-tiers

 Intégrité des bases de données facilement compromise.


 Administration difficile lorsque la logique métier doit être modifiée.
 Transgression de la sécurité en altérant un processus business.
 Application liée à un seul type de présentation
Architecture à trois niveaux

 Séparation de la logique de présentation et de la


logique métier.

Tiers Interface Tiers Métier Tiers Données

Ordinateur Réseau Serveur Réseau Serveur de


Client intermédiaire
Logique de bases de
Logique de
présentation, Logique de données
Présentation business
Avantages de l ’architecture à trois niveaux

 Améliore les montée en charge et le nombre de


connections.
 Meilleure performance, sécurité et gestion de
l ’application.
Limites de l ’architecture à trois niveaux

 Plus complexe de développer ce type d ’application:


– gestion de la répartition, multithreading,
– gestion de la sécurité.
 Difficulté d ’intégration entre les systèmes 3-tiers.
 L ’architecture classique 3-tiers n’est pas prévue pour
le Web
Architecture à quatre niveaux

 Introduction et développement d ’applications


orientées Web: J2EE

Tiers Tiers Métier Tiers


Tiers Interface
Services Web Données

Ordinateur Serveur
Internet Serveur Web Métier Serveur de
Client
bases de
Application Logique de données
Affichage business
Web
Modèle J2EE pour les architectures à deux
niveaux

Tiers Client Tiers Serveur


de données
Poste Client

Conteneur
Application-Client
JDBC Serveur de
Composants bases de
Présentation données
Composants
Métiers
Développement
classique J2SE
Modèle J2EE pour les architectures à trois
niveaux

Tiers Interface Tiers Métier Tiers Données

Poste Client Serveur


Métier

Conteneur RMI Conteneur EJB JDBC


Application-Client Serveur de
Logique de IIOP bases de
présentation,
Composants Bean données
Présentation Enterprise
Modèle J2EE pour les architectures à trois
niveaux

Tiers Interface Tiers Tiers Métier Tiers


Services Web Données

Navigateur Serveur Web Serveur Métier


Conteneur
Applet Conteneur Conteneur
Internet Web EJB Serveur de
bases de
Applet/ Application Bean données
HTML Web/JSP Enterprise
Architecture J2EE

 La plate-forme J2EE est constituée de quatre environnements de


programmation baptisés containers :
– le container EJB
– le container Web
– le container Application-Client
– le container Applet
Architecture J2EE - Conteneurs

 Un conteneur J2EE est un environnement d'exécution chargé de


gérer des composants applicatifs et de donner accès aux API J2EE


Conteneur Web 
Conteneur EJB

Servlets
ServletsJava
ServletsJava Entreprise
 

Java 
Entreprise
Entreprise

 Java Beans

 Java
JavaBeans
Beans

Clients 
Pages JSP

Pages
PagesJSP
JSP

Applicatifs 








RMI/IIOP

RMI/IIOP
JavaMail

JavaMail
JDBC

JDBC
JNDI

JNDI
JMS

JMS
JAF

JAF
JTA

JTA

Serveur d'applications J2EE


BDDs et autres

ressources
Le container Application-Client

 Il fournit l ’environnement d ’exécution des clients


J2EE, comportant des interfaces basées sur
JFC/Swing.
 Il s ’agit essentiellement de Java 2 Standard Edition
(J2SE).
Le container Applet

 Il permet l ’exécution des Applets Java.


 Cet environnement est généralement intégré au sein
du navigateur Web.
Le container Web

 Il fournit un environnement pour le développement, le


déploiement et la gestion de l ’exécution des Servlets
et des JSP.
 Les Servlets et les JSP sont regroupés dans des
unités de déploiement baptisés applications Web
(webapp).
 Ils implémentent la logique de présentation d ’une
application.
Architecture J2EE – Conteneurs Web

 API de services de conteneurs


Conteneur Web

Servlets Java
 Servlets Java

Servlets Java


Pages JSP
 Pages JSP

Pages JSP





RMI/IIOP

JavaMail
Interface des services

JDBC

JNDI

JMS

JAF
JTA


Implémentation

des services
Le container EJB

 Environnement pour le développement, le


déploiement et la gestion de l ’exécution des beans
enterprise.
 Un bean enterprise est un composant qui implémente
un processus et une entité métier de l ’Entreprise.
Architecture J2EE - Conteneurs

 Quelques services du conteneur


• Gestion de la durée de vie des composants applicatifs
– Cette gestion implique la création de nouvelles instances de composants
applicatifs ainsi que le pooling et la destruction de ces composants lorsque
les instances ne sont plus nécessaires
• Pooling de ressources
– Les conteneurs peuvent à l'occasion mettre en œuvre le rassemblement
des ressources, sous la forme, par exemple, de pooling d'objets ou de
pooling de connections
• Peuplement de l'espace de noms JNDI avec les objets nécessaires à
l'utilisation des API de services des conteneurs
• Clustering sur plusieurs machines
– Répartition de charge ou "Load Balancing"
• Sécurité
• ...
B. Principe de fonctionnement de Java EE
 Le modèle MVC
Les serveurs d’application pour la mise en œuvre de telles solutions libres et gratuites
sont: Apache Tomcat, JBoss, GlassFish et Jonas en sont les
principaux représentants.
Le modèle MVC (Modèle-Vue-Contrôleur). : Rappelle en théorie

Ce schéma est très global, afin de vous permettre de bien visualiser l'ensemble du
système.
26
Nous verrons en claire chacune des couches composants une telle application web suivant
B. Principe de fonctionnement de Java EE
 Le modèle MVC selon Java EE
Voici donc une courte représentation de chacune des couches composante, une telle
application web suivant le modèle MVC de Java EE.

 Modèle : des traitements et des donnée: Ce bloc contient donc des objets Java d'une part, qui
peuvent contenir des attributs (données) et des méthodes (traitements) qui leur sont propres, et un système
capable de stocker des données d'autre part

 Vue : des pages JSP: Une page JSP est destinée à la vue. Elle est exécutée côté serveur et permet l'écriture
de gabarits (pages en langage "client" comme HTML, CSS, Javascript, XML, etc.). Elle permet au concepteur de
la page d'appeler de manière transparente des portions de code Java, via des balises et expressions
ressemblant fortement aux balises de présentation HTML.

Contrôleur : des servlets: Une servlet est un objet qui permet d'intercepter les requêtes faites par un client.
Il fournit pour cela des méthodes permettant de scruter les requêtes HTTP. Cet objet n'agit jamais directement
sur les données, il faut le voir comme un simple aiguilleur : il intercepte une requête issue d'un client, appelle
éventuellement des traitements effectués par le modèle, et ordonne en retour à la vue d'afficher le résultat au
27
client.
B. Principe de fonctionnement de Java EE
 Le modèle MVC selon Java EE
Pour bien visualiser qui fait quoi, reprenons notre schéma en mettant des noms sur
nos blocs (voir la figure suivante):

28
C. Outils et environnement de développement
 Environnement de développement
Pour faire fonctionner une application web Java EE, nous avons besoin de mettre en place
un serveur d'applications TomCat et d'un Environnement de Développement
Intégré(EDI) en français ou IDE en anglais. Il y a deux IDE les plus utilisés actuellement pour
développer de applications web Java EE: Eclipse et NetBeans.
Dans les examples nous utiliserons Netbeans, qui permet au développeur de développer en
différents langage. L’IDE supporte principalement les langages suivants :
 Java (Java EE, Java SE, Java ME)
 PHP
 JavaScript
 XML
 CSS
 Python
 HTML, xHTML
 C, C++
29
 JavaScript
C. Outils et environnement de développement
 Environnement de développement
 Prérequis
Télécharger et installer le JDK

Rendez-vous à l'adresse http://www.oracle.com/technetwork/indexes/downloads/index.html

30
C. Outils et environnement de développement
 Environnement de développement
 Prérequis
Lancez l’ éxecutable téléchargé. Cliquez sur suivant. Acceptez les termes du contrat et cliquez sur
suivant. Selon la version que vous avez téléchargez, L'installateur vous proposera d'installer ou non un
conteneur Web tel que Tomcat ou GlassFish.

31
C. Outils et environnement de développement
 Le serveur Tomcat
 Tomcat et livrables WAR

La compréhension de la partie ‘théorique’ de jee (livrables, Architecture, services) contribue à une meilleure
productivité dans vos développements.
Le schéma ci-dessous présente les 4 modules que vous pouvez retrouver dans la plus grosse unité de livraison j2ee
: l’Enterprise ARchive (EAR).

32
C. Outils et environnement de développement
 Le serveur Tomcat
 téléchargement tomcat

Allez sur le site web officiel du serveur d’application Tomcat, produit de la fondation Apache : http://tomcat.apache.org/

33
C. Outils et environnement de développement
 Le serveur Tomcat
 installation

Dézippez l’archive zip que vous avez téléchargé, par exemple dans C://formationtomcat.Vous obtenez l’arborescence suivante :

34
C. Outils et environnement de développement
 Le serveur Tomcat
 installation

Dézippez l’archive zip que vous avez téléchargé, par exemple dans C://formationtomcat.Vous obtenez l’arborescence suivante :
NB : les 3 répertoires qui vous intéresseront le plus dans un premier temps sont les répertoires ‘bin’ et
‘webapps’ et ‘conf’
Le répertoire bin contient les 2 scripts qui nous permettront de démarrer (startup.bat) et arréter
(shutdown.bat) tomcat.

35
C. Outils et environnement de développement
 Le serveur Tomcat
 installation
Le répertoire ‘webapps’ est le répertoire de déploiement d’applications (WAR).
c'est ici que seront stockées par défaut vos applications. Pour ceux d'entre vous qui
souhaiteraient jeter un œil à ce qui se passe derrière les rideaux, vous trouverez
dans le dossier conf les fichiers suivants :
 server.xml : contient les éléments de configuration du serveur ;
 context.xml : contient les directives communes à toutes les applications web
déployées sur le serveur ;
 tomcat-users.xml : contient entre autres l'identifiant et le mot de passe
permettant d'accéder à l'interface d'administration de votre serveur Tomcat ;
 web.xml : contient les paramètres de configuration communs à toutes les
applications web déployées sur le serveur.

36
C. Outils et environnement de développement
 Le serveur Tomcat
 installation

Le répertoire ‘webapps’ est le répertoire de déploiement d’applications (WAR).

Mettez à jour votre variable d’environnement


JAVA_HOME, précisant le répertoire d’installation de
Java. Notez que tomcat possède un compilateur
interne. Le répertoire d’installation de la JRE pourrait
donc suffire.

37
C. Outils et environnement de développement
 Le serveur Tomcat
 Tests
Une fois démarrer en cliquant sur le ficher startup.bat, Lancez le navigateur sur l’url :
http://localhost:8080 . L’écran suivant apparaît par défaut: (Avec la version Tomcat 8:)

38
C. Outils et environnement de développement
 Le serveur Tomcat
 Tests
Lorsque vous obtenez l’erreur 403 Access Denied, allez dans le répertoire ‘conf’ et ouvrir le
tomcat-users.xml, et attribuer les rôles à l’utilisateur définis

39
C. Outils et environnement de développement
 Le serveur Tomcat
 Tests
Une fois démarrer en cliquant sur le ficher startup.bat, Lancez le navigateur sur l’url :
http://localhost:8080 . L’écran suivant apparaît:

40
C. Outils et environnement de développement
 Structure d'une application Java EE
 Structure standard
Toute application web Java EE doit respecter une structure de dossiers standard, qui
est définie dans les spécifications de la plate-forme. Vous en trouverez le schéma à la
figure suivante.

41
C. Outils et environnement de développement
 Structure d'une application Java EE
La racine de l'application, en violet sur le schéma, est le dossier qui porte le nom de votre projet et qui
contient l'intégralité des dossiers et fichiers de l'application.
Le dossier nommé WEB-INF est un dossier spécial. Il doit obligatoirement exister et être placé juste
sous la racine de l'application. Il doit à son tour obligatoirement contenir :

 le fichier de configuration de l'application (web.xml) ;

 un dossier nommé classes, qui contient à son tour les classes compilées (fichiers .class) ;

 un dossier nommé lib, qui contient à son tour les bibliothèques nécessaires au projet (archives .jar).

Bref, tous les dossiers et fichiers marqués en rouge sur le schéma doivent obligatoirement être nommés
et placés comme indiqué sur le schéma.
Les fichiers et dossiers persos placés directement sous la racine, en bleu sur le schéma, sont publics et
donc accessibles directement par le client via leurs URL.
Les fichiers et dossiers persos placés sous le répertoire WEB-INF, en orange sur le schéma, sont privés
et ne sont donc pas accessibles directement par le client.
42
C. Outils et environnement de développement
 Structure d'une application Java EE

TP: Installation et présentations des outils et environnement de


développements: TOMCAT et NETBEANS

43
D. La technologie JSP et Les servlets
 La technologie JSP et Les servlets
 En rappel dans une application Java EE

44
D. La technologie JSP et Les servlets
 Les servlets
 Servlet est une classe Java qui permet de créer dynamiquement des données au sein
d'un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais
elles peuvent également l'être au format XML ou tout autre format destiné aux navigateurs
web. Les servlets utilisent l'API Java Servlet .
Généralement les clients communiquent avec les serveur HTTP via les méthodes HTTP telles que
GET, POST et HEAD.
Dans le cas de Java EE, les requêtes sont transmises à un autre élément, que
nous avons jusqu'à présent qualifié de conteneur : il s'agit en réalité
d'un conteneur de servlets, également nommé conteneur web (voir la figure
suivante). Celui-ci va alors créer deux nouveaux objets :

45
D. La technologie JSP et Les servlets
 Les servlets
 HttpServletRequest : cet objet contient la requête HTTP, et donne accès à toutes
ses informations, telles que les en-têtes (headers) et le corps de la requête.
 HttpServletResponse : cet objet initialise la réponse HTTP qui sera renvoyée au
client, et permet de la personnaliser, en initialisant par exemple les en-têtes et le corps
(nous verrons comment par la suite).

46
D. La technologie JSP et Les servlets
 Les servlets
 Creation
 Une servlet est en réalité une simple classe Java, qui a la particularité de permettre le
traitement de requêtes et la personnalisation de réponses. Pour faire simple, dans la très
grande majorité des cas une servlet n'est rien d'autre qu'une classe capable de recevoir une
requête HTTP envoyée depuis le navigateur de l'utilisateur, et de lui renvoyer une réponse
HTTP.
C’est une classe abstraite, ce qui signifie qu'on ne pourra pas l'utiliser telle quelle et
qu'il sera nécessaire de passer par une servlet qui en hérite. On apprend ensuite que la
classe propose les méthodes Java nécessaires au traitement des
requêtes et réponses HTTP ! Ainsi, on y trouve les méthodes :
doGet() pour gérer la méthode GET ;
doPost() pour gérer la méthode POST ;
doHead() pour gérer la méthode HEAD.
Retenons qu’ne servlet HTTP doit hériter de la classe abstraite HttpServlet ;
une servlet doit implémenter au moins une des méthodes doXXX(), afin d'être capable de traiter une requête
entrante. 47
D. La technologie JSP et Les servlets
 Les servlets
 Le fichier de configuration

créez simplement un nouveau fichier XML en veillant bien à le placer sous le


répertoire /WEB-INF et à le nommer impérativement web.xml. Voici la structure à
vide du fichier :

48
D. La technologie JSP et Les servlets
 Les servlets
 Définition de la servlet

La mise en place d'une servlet se déroule en deux étapes : nous devons d'abord
déclarer la servlet, puis lui faire correspondre une URL.
Pour ce faire, il faut ajouter une section au fichier qui se présente ainsi sous sa forme
minimale:

 <servlet-name> permet de donner un nom à une servlet. C'est ensuite via ce


nom qu'on fera référence à la servlet en question. Ici, j'ai nommé notre servlet Test.
 <servlet-class> sert à préciser le chemin de la classe de la servlet dans votre
application. Ici, notre classe a bien pour nom Test et se situe bien dans le
package com.sdzee.servlets. 49
D. La technologie JSP et Les servlets
 Les servlets
 Définition de la servlet

La mise en place d'une servlet se déroule en deux étapes : nous devons d'abord
déclarer la servlet, puis lui faire correspondre une URL.
Pour ce faire, il faut ajouter une section au fichier qui se présente ainsi sous sa forme
minimale:

 <servlet-name> permet de donner un nom à une servlet. C'est ensuite via ce


nom qu'on fera référence à la servlet en question. Ici, j'ai nommé notre servlet Test.
 <servlet-class> sert à préciser le chemin de la classe de la servlet dans votre
application. Ici, notre classe a bien pour nom Test et se situe bien dans le
package com.sdzee.servlets. On peut y ajouter d’autre description et patterns 50
D. La technologie JSP et Les servlets
 Les servlets
 Définition de la servlet

Nous y voilà, notre servlet est maintenant joignable par le client via l'URL
http://localhost:8080/test/toto.
Pour information, le code final de notre fichier web.xml est donc :

51
D. La technologie JSP et Les servlets
 Les servlets
 Définition de la servlet

Nous y voilà, notre servlet est maintenant joignable par le client via l'URL
http://localhost:8080/test/toto.
Pour information, le code final de notre fichier web.xml est donc :

52
D. La technologie JSP et Les servlets
 Les servlets
 Mise en œuvre de la servlet

Nous voilà maintenant au courant de ce qu'il nous reste à faire : il nous suffit de
surcharger la méthode doGet() de la classe HttpServlet dans notre servlet Test. Voici
donc le code de notre servlet :

53
D. La technologie JSP et Les servlets
 Les servlets
 Envoyer des données au client

la servlet n'est pas censée s'occuper de l'affichage, c'est la vue qui doit s'en charger

54
D. La technologie JSP et Les servlets
 Les servlets
 Envoyer des données au client

 Le client envoie des requêtes au serveur grâce aux méthodes du protocole HTTP, notamment GET,
POST et HEAD.
 Le conteneur web place chaque requête reçue dans un objet HttpServletRequest, et place chaque
réponse qu'il initialise dans l'objet HttpServletResponse.
 Le conteneur transmet chaque couple requête/réponse à une servlet : c'est un objet Java assigné à
une requête et capable de générer une réponse en conséquence.
 La servlet est donc le point d'entrée d'une application web, et se déclare dans son fichier de
configuration web.xml.
 Une servlet peut se charger de répondre à une requête en particulier, ou à un groupe entier de
requêtes.
 Pour pouvoir traiter une requête HTTP de type GET, une servlet doit implémenter la 55
D. La technologie JSP et Les servlets
 La technologie JSP
Rappelez vous que dans le model MVC de Java EE, La technologie utilisée pour réaliser une vue est la page JSP
C'est un document qui, à première vue, ressemble beaucoup à une page HTML, mais qui en
réalité en diffère par plusieurs aspects :

l'extension d'une telle page devient .jsp et non plus .html ;

une telle page peut contenir des balises HTML, mais également des balises JSP qui appellent de
manière transparente du code Java ;

contrairement à une page HTML statique directement renvoyée au client, une page JSP est
exécutée côté serveur, et génère alors une page renvoyée au client.

L'intérêt est de rendre possible la création de pages dynamiques : puisqu'il y a une étape de
génération sur le serveur, il devient possible de faire varier l'affichage et d’interagir avec
l'utilisateur, en fonction notamment de la requête et des données reçues ! 56
D. La technologie JSP et Les servlets
 La technologie JSP
Mise en place d'une JSP

57
D. La technologie JSP et Les servlets
 La technologie JSP
Mise en place d'une JSP

58
D. La technologie JSP et Les servlets
 La technologie JSP
Cycle de vie d'une JSP
En théorie
Tout tient en une seule phrase : quand une JSP est demandée pour la première fois,
ou quand l'application web démarre, le conteneur de servlets va vérifier, traduire
puis compiler la page JSP en une classe héritant de HttpServlet, et
l'utiliser durant l'existence de l'application.
Cela signifie-t-il qu'une JSP est littéralement transformée en servlet par le serveur ?

Je vous l'ai déjà dit, la technologie JSP consiste en une véritable abstraction de la
technologie servlet : cela signifie concrètement que les JSP permettent au développeur
de faire du Java sans avoir à écrire de code Java !

59
D. La technologie JSP et Les servlets
 La technologie JSP
Cycle de vie d'une JSP

60
D. La technologie JSP et Les servlets
 La technologie JSP
Mise en relation avec notre servlet
Souvenez-vous : la servlet est le point d'entrée de votre
application !

61
D. La technologie JSP et Les servlets
 La technologie JSP
Mise en page
 Une relation
JSP avec notre
ressemble en servlet
apparence à une page HTML, mais en réalité elle est
bien plus proche d'une servlet : elle contient des balises derrière lesquelles se cache
du code Java.
 Une page JSP est exécutée sur le serveur, et la page finale générée et envoyée au

client est une simple page HTML : le client ne voit pas le code de la JSP.
 Idéalement dans le modèle MVC, une page JSP est accessible à l'utilisateur à

travers une servlet, et non pas directement.


 Le répertoire /WEB-INF cache les fichiers qu'il contient à l'extérieur de l'application.
 La méthode forward() de l'objet RequestDispatcher permet depuis une servlet

de rediriger la paire requête/réponse HTTP vers une autre servlet ou vers une 62page
D. La technologie JSP et Les servlets
 La technologie JSP
onnées issues du serveur : les attributs

smettre des variables de la servlet à la JSP

63
D. La technologie JSP et Les servlets
 La technologie JSP
onnées issues du serveur : les attributs
nsmettre des variables de la servlet à la JSP

Ne confondez pas le nom que vous donnez à votre objet au sein du code et le nom
que vous donnez à l'attribut au sein de la requête.
Ici mon objet se nomme message mais j'ai nommé par la suite test l'attribut qui
contient cet objet dans la requête. Côté vue, c'est par ce nom d'attribut que vous
pourrez accéder à votre objet ! 64
D. La technologie JSP et Les servlets
 La technologie JSP
onnées issues du serveur : les attributs
nsmettre des variables de la servlet à la JSP

C'est tout ce qu'il est nécessaire de faire côté servlet. Regardons maintenant
comment récupérer et afficher l'objet côté vue :

65
D. La technologie JSP et Les servlets
 La technologie JSP
 Résumée: Processus d’execution de la JSP

66
D. La technologie JSP et Les servlets
 La technologie JSP
 Description d’une JSP

API JSP
Paquetages : javax.servlet.jsp, javax.servlet.jsp.el,
javax.servlet.jsp.tagext
Syntaxe
Méthodes d’une JSP`a celles de l’API servlet pour la gestion du cycle de vie et le
identiques
service
Une JSP est composée de 3 parties :

Scriptlets <% %>

Déclarations <%! %>

Expressions <%= %> 67


D. La technologie JSP et Les servlets
 La technologie JSP
 Les Scriptlets
Balises : <% code %>
Inclusion de code Java dans la page
Syntaxe XML :
<jsp:scriptlet>
response.setContentType ( " t e x t / p l a i n " ) ;
</jsp:scriptlet>
Syntaxe script
<% response.setContentType ( " t e x t / p l a i n " ) ; %>
Exemple :
<%
S t r i n g [ ] l a n g a g e s = {" Java " , "C++" , " S m a l l t a l k " , " Simula
67" };
out . p r i n t l n ( "<h3>P r i n c i p a u x l a n g a g e s o r i e n t e s o b j e t s :
</h3>" ) ;
f o r ( i n t i =0; i < l a n g a g e s . l e n g t h ; i ++) { 68
out . p r i n t l n ( "<p>" + l a n g a g e s [ i ] + "</p>" ) ;
D. La technologie JSP et Les servlets
 La technologie JSP
 Déclarations
Balises : <%! %>
Code Java
Définition de méthodes ou de données, Insertion dans le corps de la servlet
Syntaxe XML :
<jsp: declaration >
private int nombreEtudiants = 2 3 ;
</jsp : declaration >
Syntaxe script :
<%! private int nombreEtudiants = 2 3 ; %>
Exemple :

<%!
Int random4 ( ) {
r e t u r n ( i n t ) ( Math . random ( ) ∗ 4 ) ;
}
%>
69
D. La technologie JSP et Les servlets
 La technologie JSP
 Expression
Balises : <% code %>
Expressions Java insérées dans le code de la page
Expressions évaluées, renvoyant un objet String ou un type
primitif

Syntaxe XML
<jsp : expression>
new java.util.date( )
</jsp : expression>

Syntaxe script
<%= new java.util.date( ) %>
Equivalent à 70
D. La technologie JSP et Les servlets
 La technologie JSP
 Directives

Les directives JSP permettent :


 d'importer un package ;
 d'inclure d'autres pages JSP ;
 d'inclure des bibliothèques de balises (nous y reviendrons dans un prochain

chapitre) ;
 de définir des propriétés et informations relatives à une page JSP.

Pour généraliser, elles contrôlent comment le conteneur de servlets va gérer votre


JSP. Il en existe trois : taglib, page et include.
Elles sont toujours comprises entre les balises <%@ et %>, et hormis la directive 71
D. La technologie JSP et Les servlets
 La technologie JSP
 Directives

Balises : <%@ code %>


Regroupement des informations globales relatives a la page
3 types :
page : modification des données de la page (importation de paquetages, gestion des
sessions..
<%@ page import=" java.util.∗ " %>
include : inclusion de fichiers, de jsp ou de servlets
<%@ include page="/monJSP.jsp"="true" %>
taglib : utilisation de bibliothèques de balises personnalisées 72
D. La technologie JSP et Les servlets
 La technologie JSP
Objets prédéfinis dans
une JSP
out : flux de sortie
request : objet correspondant à la requête (HttpServletRequest)
response : objet correspondant à la réponse (HttpServletResponse)
Mais aussi : session, application, page

73
D. La technologie JSP et Les servlets
 La technologie JSP
Exemple de JSP
Comptabilisation du nombre d’appels de la page
<html>
<head><title> Declarations et expressions </title></head>
<body>
<h1> Declarations JSP</h1>
<%! Private int accessCount= 0 ; %>
<p>Cette page a été accedée<%= ++accessCount %> fois depuis le demarrage du serveur</p>
</body>
</html> 74
D. La technologie JSP et Les servlets
 La technologie JSP
La réalisation de tests
La première chose que vous devez savoir, c'est qu'à l'intérieur d'une expression, vous
pouvez effectuer diverses sortes de tests. Pour réaliser ces tests, il vous est possible
d'inclure toute une série d'opérateurs. Parmi ceux-ci, on retrouve les traditionnels :
 opérateurs arithmétiques, applicables à des nombres : +, -, *, /, % ;
 opérateurs logiques, applicables à des booléens : &&, ||, ! ;
 opérateurs relationnels, basés sur l'utilisation des méthodes equals() et compareTo() des

objets comparés : == ou eq, != ou ne, < ou lt, > ou gt, <= ou le, >= ou ge.

75
D. La technologie JSP et Les servlets
 La technologie JSP
 Enchainement de pages

76
D. La technologie JSP et Les servlets
 La technologie JSP
 Le JavaBean
Tout objet conforme à ces quelques règles peut être appelé un bean. En réalité, un
bean est un simple objet Java qui suit certaines contraintes, et représente
généralement des données du monde réel.
Structure : 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. 77
D. La technologie JSP et Les servlets
 La technologie JSP
 Voici un exemple illustrant cette structure :

78
D. La technologie JSP et Les servlets
 La technologie JSP
 Création de notre bean d'exemple
Définissons pour commencer un bean simple qui servira de base à nos exemples :

79
D. La technologie JSP et Les servlets
 La technologie JSP
 Mise en service dans notre application
Notre objet étant bien inséré dans notre application, nous pouvons commencer à le manipuler.
Reprenons notre servlet d'exemple précédente :

80
D. La technologie JSP et Les servlets
 La technologie JSP
 Mise en service dans notre application
Et modifions ensuite notre JSP pour qu'elle réalise l'affichage des propriétés du bean.

Retournez alors sur votre navigateur et ouvrez http://localhost:8080/test/toto.


81
D. La technologie JSP et Les servlets
 La technologie JSP
 Il existe au total quatre portées différentes dans une application :
page (JSP seulement) : les objets dans cette portée sont uniquement accessibles dans la page
JSP en question ;

requête : les objets dans cette portée sont uniquement accessibles durant l'existence de la
requête en cours ;

session : les objets dans cette portée sont accessibles durant l'existence de la session en cours ;

application : les objets dans cette portée sont accessibles durant toute l'existence de
l'application.

82
D. La technologie JSP et Les servlets
 La technologie JSP
 Il existe au total quatre portées différentes dans une application :

83
E. Création et déploiement d’une application Java EE dans TomCat
 TP: Créer et déployer sut TomCat une application
monPremierAppJee

 TD: Création une application web Java EE: Exemple Test

 Autre tutoriel:

 Application Java EE avec NetBeans:

 https://www.youtube.com/watch?v=3vKal6MaQHE&t=738s

 Exemple: https://fr.wikibooks.org/wiki/Programmation_JEE/Servlets

84
F. Les bases de données avec Java EE
 Le modèle DAO
 Contexte:
Le modèle DAO (Data Access Object) est un modèle structurel qui nous permet ... tout mécanisme de persistance
pouvant être implémenté à un moment donné. Le mappage des données est, en fait, le mécanisme visant à faire
correspondre les attributs d'une fiche du système de stockage (BDD) avec les attributs d'un objet (objet Java en ce qui
nous concerne). Pour l'exemple, nous allons voir en quoi consiste le mappage d'une table `Developpeur` avec un objet
"Developpeur"

85
F. Les bases de données avec Java EE
 Le modèle DAO
Le pattern DAO (Data Access Object) permet de faire le lien entre la couche métier
et la couche persistante, ceci afin de centraliser les mécanismes de mapping entre
notre système de stockage et nos objets Java. Il permet aussi de prévenir un
changement éventuel de système de stockage de données (de PostgreSQL vers Oracle
par exemple).
La couche persistante correspond, en fait, à notre système de stockage et la couche
métier correspond à nos objets Java, mapper sur notre base. Le pattern DAO
consiste à ajouter un ensemble d'objets dont le rôle sera d'aller :

Lire.
Ecrire.
Modifier.
Supprimer.
dans notre système de stockage. Cet ensemble d'objet s'appelle la couche DAO. Voici,
schématiquement, à quoi va ressembler notre structure : 86
F. Les bases de données avec Java EE
 Le modèle DAO

87
F. Les bases de données avec Java EE
 Le modèle DAO

Exemple tutoriel : Regarder la vidéo pour vous exercer

https://cyrille-herby.developpez.com/tutoriels/java/mapper-sa-base-donnees-avec-pattern-dao/

88

Vous aimerez peut-être aussi