0% ont trouvé ce document utile (0 vote)
579 vues103 pages

Introduction à la Programmation Web en Java

Ce document décrit les concepts de base de la programmation web avec Java, notamment les servlets, leur cycle de vie et leur fonctionnement au sein d'une application web. Il présente également les éléments clés d'une requête HTTP et les méthodes pour y accéder.

Transféré par

Zakaria Boulouard
Copyright
© Attribution Non-Commercial (BY-NC)
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)
579 vues103 pages

Introduction à la Programmation Web en Java

Ce document décrit les concepts de base de la programmation web avec Java, notamment les servlets, leur cycle de vie et leur fonctionnement au sein d'une application web. Il présente également les éléments clés d'une requête HTTP et les méthodes pour y accéder.

Transféré par

Zakaria Boulouard
Copyright
© Attribution Non-Commercial (BY-NC)
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

Programmation orient objet JAVA

Huitime partie

JAVA Programmation oriente objet

Pr Hafidi Imad
Hafidi Imad -ENSA de Khouribga-Cours JAVA

[email protected]

Rappelle sur les applications web

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Application WEB

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Architecture
3 niveaux : niveau 1: prsentation navigateur serveur !eb niveau 2: applicatif s"ri#t ou #rogramme niveau 3: donnes donn$es n$"essaires au niveau %

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Droulement
&ne a##'i"ation !eb t(#e :
): re"uei''e 'es donn$es uti'isateur *niveau )+ %: envoie une re,u-te au serveur !eb 3: ex$"ute 'e #rogramme serveur re,uis *niveau %.3+ /: assemb'e0renvoie 'es donn$es vers 'e navigateur *niveau )+
Hafidi Imad -ENSA de Khouribga-Cours JAVA

Collecte des donnes des utilisateurs 1ue',ues so'utions #our 'e "'ient :
sim#'es : formu'aire H234
saisie de "ham#s #uis 5 submit 6 va'idation #ar s"ri#ts *7avaS"ri#t+

Autres : a##'ets Java :


"onnexion so"8et 0 93I ave" 'e serveur !eb mise en forme et va'idation des donn$es :::
Hafidi Imad -ENSA de Khouribga-Cours JAVA

Re u!tes "##P $ers le ser$eur web


"ontient :
' ;&94 de 'a ressour"e < a""$der *#age=s"ri#t=#rog+ 'es donn$es de formatage *'e "as $"h$ant+ des infos d ;en-t-te "om#'$mentaires

re,u-te >E2 :
#our extraire des informations sur 'e serveur int?gre 'es donn$es de formatage < ' ;&94
htt#:00@@@:3onSite:"om0serv'et0he''o?ke 1! value1"#

re,u-te ABS2 :
#our modifier 'es donn$es sur 'e serveur donn$es de 'a #age assemb'$es0envo($es vers 'e serveur
Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%cution d&un script sur un ser$eur


Ave" 'a re,u-te htt#= 'e serveur !eb :
)+ identifie 'e t(#e d ;environnement d;ex#'oitation < "harger *mapping)
en fon"tion de ' ;extension du fi"hier *:jsp$ %cgi$ %%%& ou du r$#ertoire oC i' se trouve *cgi'bin($ servlet(&

%+ "harge ' ;environnement d ;ex$"ution *run-time)


inter#r$teur Aer' #our 'es #rogrammes "gi en #er' JV3 #our 'es serv'ets Java= :::

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Retour des rsultats au na$igateur


4e s"ri#t0#rog "Dt$ serveur : #r$"ise 'e t(#e de "ontenu *H234= E34= images=+ int?gre 'a r$#onse dans un f'ot de sortie 4e navigateur : d$finit 'e t(#e 3I3E dans ' ;en-t-te *text0htm'=F+ et affi"he 'es donn$es en fon"tion
du#'i"ation de ' ;environnement *variab'es= ex$"ution+= m$moire a''ou$e= "o#ie du #rogramme= F retourne *en g$n$ra'+ du H234
Hafidi Imad -ENSA de Khouribga-Cours JAVA

'er$lets

Hafidi Imad -ENSA de Khouribga-Cours JAVA

"istori ue
G$ve'o##ement de #ages en H234 S"ri#ts C>I
Arogrammes C= she'' s"ri#ts= #er'

4angages s#$"ifi,ues
AHA= JSA= ASA *Server Side s"ri#ting+ JavaS"ri#t *C'ient Side S"ri#ting+

Evo'utions de H234
EH234= CSS= JavaS"ri#t

Hafidi Imad -ENSA de Khouribga-Cours JAVA

(uels sont les probl)mes *


A##'i"ation distribu$e
Con"urren"e d;a""?s S$"urit$

Aroto"o'e H22A *state'ess+


Identifi"ation des "'ients 3aintien des sessions

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es 'er$lets
Aermettre 'a #rogrammation dHa##'i"ations "ot$ serveur Aermettre 'Hextension dHun serveur !eb en 7ava Aermettre 'a "onstru"tion dHa##'i !eb d(nami,ue E,uiva'ent des C>I en 7ava

Hafidi Imad -ENSA de Khouribga-Cours JAVA

,onctionnement d-un ser$let


&n serv'et 'it 'es donn$es envo($es #ar un "'ient !eb *transmises #ar 'e serveur+
Gonn$es ex#'i"ites *Iormu'aire+ Gonn$es im#'i"ites *9e,uest Header+

I' g$n?re un r$su'tat I' envoit 'e r$su'tat au "'ient


Gonn$es ex#'i"ites *Aage H234+ Gonn$es im#'i"ites *9es#onse Header= Status "ode+
Gatabase Jndi Java A##

Serveur !eb

Hafidi Imad -ENSA de Khouribga-Cours JAVA

A$antage des ser$lets


Effi"a"it$
&ti'isent des threads #'utDt ,ue des #ro"essus "omme 'es C>I

Arati,ue
4ibrairie tr?s d$ve'o##$e *moins ,ue AHA mais #'us "onsistante+

Aortab'e
G$#'o(ab'e ,ue',ue soit 'e serveur *ou #res,ue+

S$"uris$
Ion"tionne dans une ma"hine virtue''e *#'us maitrisab'e+

Aas "her
Nombreux serveurs gratuits

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es technologies

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es containers de ser$let


4es serv'ets sont des "om#osants
I's sHex$"utent dans un "ontainer I's doivent se "onformer < une interfa"e #r$d$finie I's ne sont 7amais "r$$s

4es "ontainers
2om"at *7a8arta:a#a"he:org0tom"at+
Im#'antation de r$f$ren"e

Jett( !eb'ogi" :::

Hafidi Imad -ENSA de Khouribga-Cours JAVA

.n premier ser$let
4e serv'et He''o!or'd &n serv'et sur"harge 'a "'asse Htt#Serv'et I' doit im#'anter au moins une des m$thodes
do>et doAost doAut doGe'ete

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e ser$let "elloWorld

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e /ichier de con/iguration

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+&application Web
Une archive war Dploye dans le serveur Web Web.xml = description de lapplication

'tructure d&une application


Aa"8age d$#'o(ab'e Com#osants !eb : Serv'et et JSA 9essour"es stati,ues *images+ C'asses 7ava *he'#er+ 4ibrairies Ges"ri#teurs de d$#'oiement *@eb:xm'+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%ecution d&une re u!te

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es param)tres

4es #aram?tres dHune re,u-te sont a""essib'es dans 'Hob7et *Htt#Serv'et9e,uest+re,uest


re,uest:getAarameter*J#aramnameJ+K

I' est #ossib'e de r$"u#$rer tous 'es noms des #aram?tres


re,uest:getAarameterNames*+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emples param)tres

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple P0'#

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple P0'# 1suite2

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a classe "ttp'er$let

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+-inter/ace "ttp'er$letRe uest


Iournit 'es informations sur 'a re,u-te du "'ient au serveur Arin"i#a'es m$thodes :
String getAarameter*String name+ Enumeration getAarameterNames*+
9etourne une $num$ration de tous 'es noms de #aram?tres

StringLM getAarameterVa'ues*+
9etourne un tab'eau "ontenant toutes 'es va'eurs des #aram?tres

String getHeader*String name+ Enumeration getHeaderNames*+


9etourne une $num$ration de tous 'es noms des #ro#ri$t$s du header

StringLM getHeaderVa'ues*+
9etourne un tab'eau de toutes 'es va'eurs du header

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es re uest headers

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+-inter/ace "ttp'er$letResponse
Bb7et fournissant 'es servi"es #our envo(er 'a r$#onse < un "'ient: 4es #rin"i#a'es m$thodes sont:
java.io.PrintWriter getWriter() getWriter
Aour r$"u#$rer un #rint!riter ,ui #ermet dHenvo(er du texte au "'ient

public void setContentLength(int len) setContentLength public void setContentType(java.lang.String type) setContentType
Positionne le Content-Length Header Position le Content-Type header (exemple text/html)

public void sendError(int sc, java.lang.String msg) throws sendError java.io.IOException public void setHeader(java.lang.String name, setHeader java.lang.String value)
Envoi un message d'erreur au client (cf code dans l'API)

Hafidi Imad -ENSA de Khouribga-Cours JAVA

web3%ml
4e fi"hier @eb:xm' donne des instru"tions sur 'e d$#'oiement du serv'et dans 'e "ontainer @eb-a##
4a des"ri#tion dHune !eb A##'i"ation

Serv'et
4a re'ation entre 'e nom du serv'et et 'a "'asse ,ui 'Him#'ante

Serv'et-ma##ing
4a re'ation entre 'e nom du serv'et et 'Hur' ,ui #ermet dH( a""$der

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es param)tres d-initialisation


4es serv'ets #euvent avoir des #aram?tres dHinitia'isation: Ces #aram?tres #euvent -tre "hang$s sans avoir < re"om#i'er 'Ha##'i"ation
Ninit-#aramO
N#aram-nameOtestVa'ueN0#aram-nameO N#aram-va'ueO)%N0#aram-va'ueO Ndes"ri#tionOune va'eur ,ue'"on,ueN0des"ri#tionO

N0init-#aramO

Ces #aram?tres #euvent -tre uti'is$s ave" 'a m$thode


7avax:serv'et:getInitAarameter*+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e ser$let mapping
Aermet de "onstruire 'a re'ation entre un serv'et et son &94
Nserv'et-ma##ingO
Nserv'et-nameO2estN0serv'et-nameO Nur'-#atternO02est0PN0ur'-#atternO

N0serv'et-ma##ingO

2ous 'es ur's "orres#ondant < htt#:00host:#ort0@eba##0ur'-#attern d$"'en"herons ';ex$"ution du serv'et Exem#'es
0P:do 02est 0"ours0test0P

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es lments du chemin de re u!te


ContextAath : 'e "hemin du "ontexte de d$#'oiement Serv'etAath : 'a se"tion du "hemin ,ui a d$"'en"h$ 'e ma##ing AathInfo : 'a #artie de 'a re,u-te ,ui n;est ni 'e ContextAath ni 'e Serv'etAath
9e,uest:getContextAath*+ 9e,uest:getServ'etAath*+ 9e,uest:getAathInfo*+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emples

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e c4cle de $ie d-un ser$let


2ous 'es serv'ets ont 'e m-me "("'e de vie
4e "ontainer "harge 'e serv'et
4a fon"tion init*+ est a##e'$e *initia'isation de variab'es= "onne"tion < des bases de donn$es+

4e serv'et r$#ond aux re,u-tes des "'ients 4e "ontaire d$truit 'e serv'et
4a fon"tion destro(*+ est a##e'$e *fermeture des "onne"tions+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

do5et et doPost
Server

HttpServlet subclass
doGet( )

Request

Service( )

Response

doPost( )

Key:

Implemented by subclass

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a $isibilit

*from 7>uru+
Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e 'er$let Conte%t
3aintien des donn$es #our toute ';a##'i"ation Iournit 'e re,uest dis#at"her Gonn$es d;initia'isations #our toute ';a##'i"ation 4og &n Serv'etContext #ar a##'i"ation et #ar JV3

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e 'er$letConte%t
Bb7et #ermettant au serv'et de "ommuni,uer ave" 'e serv'et "ontainer Bbtenu ave"
Serv'et:getServ'etContext*+

4es #rin"i#a'es m$thodes de Serv'etContext


Bb7e"t getAttribute*String name+
9etourne un attribut du "ontexte

Void setAttribute*String name= Bb7e"t va'ue+


A7oute ou rem#'a"e un ob7et dans 'e "ontexte

String getInitAarameter*String name+


9etourne un #aram?tre dHinitia'isation de 'Ha##'i"ation

Void 4og*String msg+


A7oute un message dans 'e 'og fi'e du serv'et "ontainer

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e 'er$let Conte%t

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e Re uestDispatcher
L'objet RequestDispatcher est utilis pour
Transfrer la requte un autre programme Inclure la rponse d'un autre programme

Pour obtenir le request dispatcher

+-utilisation du Re uestDispatcher
4a re,u-te #eut -tre transf$r$e
rd:for@ard*re,uest=res#onse+ 4Huti'isation "'assi,ue "onsiste < avoir un serv'et "ontrD'eur ,ui transmet 'es "ommandes < des serv'ets s#$"ia'is$s 4e "ontrD'e ne revient 7amais au serv'et

4a re#onse #eut -tre in"'use dans 'a r$#onse en "ours de "onstru"tion


rd:in"'ude*re,uest=res#onse+ I"i= on #eut im#'anter un e,uiva'ent de server side in"'ude:

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple d&utilisation

G$monstration Q

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es attributs du conte%t


Valeurs disponibles pour toute lapplication

+es 'essions
Comment maintenir ';$tat d;un "'ient au "ours d;une s$rie de re,u-tes d;un m-me uti'isateur #endant un tem#s donn$ R H22A est state'ess Comment identifier 'e "'ient R BC mettre 'es donn$es de 'a session R

Hafidi Imad -ENSA de Khouribga-Cours JAVA

'er$let et sessions
4a gestion des sessions uti'ise 'es te"hni,ues "'assi,ues
ur' re@riting Coo8ies Cham#s "a"h$s dans 'es formu'aires

4HAAI Htt#Serv'et fournit des fon"tions #our g$rer 'es sessions 4Him#'antation est trans#arente #our 'Huti'isateur

Hafidi Imad -ENSA de Khouribga-Cours JAVA

'ession 6 "ttp'er$letRe uest


CHest 'e #aram?tre re,uest ,ui maintient 'es informations sur 'a session 4es m$thodes sont
Htt#Session re,uest:getSession*boo'ean f'ag+
I'agStrue : retourne 'Hob7et session "ourant ou en "r$e un sHi' nH( en a #as: I'agSfa'se : 9etourne 'Hob7et session "ourant ou nu'' sHi' nH( en a #as

is9e,uestedSessionIdVa'id*+
Vrai si 'Hid de 'a session est va'ide dans 'e "ontexte "ourant

is9e,uestedSessionIdIromCoo8ie*+
Vrai si 'Hid de 'a session vient dHun "oo8ie

is9e,uestedSessionIdIrom&94*+
Vrai si 'Hid de 'a session vient dHun &94

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Cration de la session

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Re u!te dans la m!me session

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+-objet "ttp'ession
4Hob7et Htt#Session #ermet de "onserver des va'eurs entre des a##e's dHun "'ient 4es #rin"i#a'es m$thodes sont
Bb7e"t getAttribute*String name+
9$"u#?re 'a va'eur de 'Hattribut #ar son nom

Enumeration getAttributeNames*+
9etourne 'a 'iste de tous 'es attributs

Void setAttribute*String name= Bb7e"t va'ue+


A7oute un attribut < 'a session

String getId*+
9etourne 'Hidentifiant de 'a session

Void inva'idate*+
Inva'ide 'a session

4ong getCreation2ime*+ 4ong get4astA""essed2ime*+ 4ong get3axIna"tiveInterva'*+ Serv'etContext getServ'etContext*+


Hafidi Imad -ENSA de Khouribga-Cours JAVA

Con/iguration des sessions


I' est #ossib'e de fixer 'a dur$e dHune session #ar a##'i"ation *en minutes+
Nsession-"onfigO
Nsession-timeoutO3TN0session-timeoutO

N0session-"onfigO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

#erminer une session

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e conte%te
I' est #ossib'e dHavoir des #aram?tres dHinitia'isation du "ontexte
N"ontext-#aramO
N#aram-nameOdatabaseN0#aram-nameO N#aram-va'ueOtestGUN0#aram-va'ueO Ndes"ri#tionO'e nom de 'a baseN0des"ri#tionO

N0"ontext-#aramO

Ces #aram?tres #euvent -tre uti'is$s dans 'e serv'et ave" 'a m$thode
Javax:serv'et:Serv'etContext getInitAarameter*+ et Javax:serv'et:Serv'etContext:getInitAarameterNames*+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e 'er$letCon/ig
Bb7et uti'is$ #ar 'e "ontainer de serv'et #our #asser des va'eurs 'ors de 'Hinitia'isation du serv'et Bbtenu ave"
Serv'et:getServ'etConfig*+

Arin"i#a'es m$thodes
String getInitAarameter*String name+
9etourne 'a va'eur dHun #aram?tre dHinitia'isation du serv'et

Serv'etContext getServ'etContext*+
Aermet de r$"u#$rer 'Hob7et serv'et"ontext

String getServ'etName*+
9etourne 'e nom du serv'et "omme s#$"ifi$ dans 'e fi"hier de des"ri#tion:

Im#'ant$ #ar Htt#Serv'et

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a gestion des erreurs


I' est #ossib'e de d$finir 'es #ages < affi"her
En fon"tion dHerreurs htt# En fon"tion dHex"e#tions 7ava

Gans @eb:xm'

Aour une ex"e#tion 7ava

<error-page> <exception-type> cours.event.EventException </exception-type> <location>/erreur.html</location> </error-page>

Aour une erreur Htt#

<error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> Hafidi Imad -ENSA de Khouribga-Cours JAVA

J'P

Hafidi Imad -ENSA de Khouribga-Cours JAVA

7ais u-est ce ue c-est *


Standard #our "onstruire des a##'is !eb
Aortab'e En m$'angeant 'e H234 et des dire"tives Uas$ sur Java

E,uiva'ent AHA et ASA


A'us J#ro#reJ ,ue AHA A'us ind$#endant ,ue ASA

A'usieurs s#$"ifi"ations
JSA %:T S 'a derni?re

Ge nombreuses 'ibrairies : 'es 2ag4ibs


Hafidi Imad -ENSA de Khouribga-Cours JAVA

J'P et 'er$lets *
4es deux sont bas$s sur Java 4es Serv'ets sont #eu ada#t$ < 'a g$n$ration de "ontenu 4es JSA sont #eu ada#t$s < 'Hextension de fon"tions du serveur Note : 4e JSA engine ,ui inter#r?te 'es #ages JSA est un Serv'et 4es JSA sont un mo(en de "onstruire des Serv'et de faVon d$"'arative
&n #age JSA est transform$e en un #rogramme 7ava *serv'et+ #uis "om#i'$e et ex$"ut$e

Hafidi Imad -ENSA de Khouribga-Cours JAVA

J'P et 'er$lets

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Architecture

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e c4cle de $ie d&un J'P


Js#Init*+ Js#Servi"e
A""e#t re,uest >enerate res#onse

Js#Gestro(*+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

C4cle de $ie
User Request Server File Changed ? Create Source Compile Execute Servlet
Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a s4nta%e de base
4es dire"tives
Instru"tion #our 'e moteur JSA En"adr$es #ar NWX WO

4es d$"'arations
G$"'arations de variab'es ou de m$thodes uti'isab'es dans 'a #age En"adr$es #ar NWQ WO

4es ex#ressions
&n ex#ression est $va'u$e= transform$e en "haine et in"'use dans 'a #age En"adr$es #ar NWS WO

4es s"ri#'ets
3or"eau de "ode 7ava ex$"ut$ dans 'a #age En"adr$s #ar NW WO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es e%pressions
Une expression est une expression java dont la valeur est calcule, tranforme en String et insre dans la page.

+es dclarations
G$"'arations de variab'es et de fon"tions 'o"a'es < 'a #age *en 7ava+
NWQ int iK WO NWQ int iSTK String textK WO NWQ boo'ean f*int i+ Yreturn *iOT+KZ WO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es scriplets
Aeuvent "ontenir des fragments de "ode va'ide en 7ava I's sont ex$"ut$s ,uand 'a re,u-te est $va'u$e
NW if *"om#teOT+ Y WO 2u as en"ore des sousF NU9O NW Z e'se Y WO 2u es dans 'e rouge "ette fois NU9O NW Z WO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

J-oubliais les commentaires


4es "ommentaires sont 'es m-mes ,uHen E34
NW-- tagada --WO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es objets implicites


Bb7ets uti'isab'es sans d$"'aration dans 'es ex#ressions et 'es s"ri#'ets
re,uest *re,uest s"o#e+ : Htt#Serv'et9e,uest res#onse *#age s"o#e+ : Htt#Serv'et9es#onse #ageContext *#age s"o#e+ : AageContext
4Hob7et re#r$sentant 'e "ontexte de 'a #age

session *session s"o#e+ : Htt#Session


4Hob7et re#r$sentant 'e "ontexte de 'a session

#age *Sthis+ *#age s"o#e+ : Htt#JSAAage out *#age s"o#e+ : Js#!riter a##'i"ation *a##'i"ation s"o#e+ Serv'etContext "onfig *#age s"o#e+ : Serv'etConfig ex"e#tion *#age s"o#e+ : 2hro@ab'e
G$finit dans 'es #ages de traitement des erreurs

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple

+-inter/ace de PageConte%t
Iournit des m$thodes #our retrouver des attributs en suivant 'a visibi'it$
Bb7e"t findAttribute*String name+
9e"her"he un attribut en uti'isant 'Hordre suivant : #age= re,uest= session= a##'i"ation

Bb7e"t getAttribute*String name+


9etourne un attribut dans 'e "ontexte de 'a #age

Bb7e"t getAttribute*String name= in "tx+


9etourne un attribut dans 'e "ontexte donn$ *AAA4ICA2IBN[SCBAE= AA>E[SCBAE= 9E1&ES2[SCBAE= SESSIBN[SCBAE+

Int getAttributeS"o#e*String name+


9etourne 'e s"o#e dHun attribut

Iournit aussi des m$thodes #our retrouver toutes 'es informations du "ontexte dHex$"ution de 'a #age *session= 7s#!riter=re,uest= res#onse=F+
Cf AageContext AAI #our 'es d$tai's

Hafidi Imad -ENSA de Khouribga-Cours JAVA

'4nta%e 87+
Ge#uis JSA ):%
N7s#:ex#ressionOEx#ressionN07s#:ex#ressionO N7s#:s"ri#t'etO N7s#:de"'arationO

Aermet
4a va'idation 4es transformations 4;$dition

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple

Hafidi Imad -ENSA de Khouribga-Cours JAVA

jsp9/orward
Js#:for@ard #ermet de "hainer 'es re,u-tes #our invo,uer
&ne autre #age 7s# &n serv'et

N7s#:for@ard #ageSJAutreAage:7s#J0O N7s#:for@ard #ageSJ0Serv'et0"ontro'0O

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Irom 7>uru

Jsp9/orward a$ec param)tres


I' est #ossib'e dHa7outer des #aram?tres < 'a re,u-te: A""essib'es #ar re,uest:getAttribute*name+

<jsp:forward page="chaine.jsp"> <jsp:param name="name1" value="v1"/> <jsp:param name="name2" value="v2"/> </jsp:forward>

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Jsp9include
9edirige 'a re,u-te et in"'ut 'e r$su'tat < 'Hendroit oC se trouve 'Ha"tion
N7s#:in"'ude #ageSJ"he"8Uean:7s#J0O Cette a"tion est ex$"ut$e < "ha,ue fois

4Ha"tion ex$"ut$e ne #eut #as modifier 'e Header de 'a #age *#as de "oo8ie ni de t(#e de "ontenu+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es tags J'P 1ou actions2


4es tags sont des a"tions in"'uses dans une #age !eb suivant 'a s(ntaxe E34
Nmod:tag attrSJva'ueJO Nmod:tag attrSJva'ueJObod(N0mod:tagO

4es a"tions de base font #artie de 'a 'ibrairie 7s#:


N7s#:useUeanO N7s#:setAro#ert(O N7s#:getAro#ert(O N7s#:in"'udeO N7s#:for@ardO N7s#:textO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

.n Ja$aBean
Composant simple. Respecte des conventions dcriture

E%emple .seBean

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Autre e%emple

Ja$aBean et J'P
4es a"tion useUean= setAro#ert( et getAro#ert( #ermettent de mani#u'er des JavaUean sans #rogrammation
7s#:usebean #our nommer= "r$er ou d$signer un bean 7s#:getAro#ert( #our r$"u#$rer une #ro#ri$t$ dHun bean 7s#:setAro#ert( #our "hanger 'a va'eur dHune #ro#ri$t$:

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es directi$es
NWX dire"tive YattrSJva'ueJZP WO
3essages #ass$s au moteur de JSA

Aage : #ro#ri$t$s de 'a #age


e)tendsSJClassName"
4a #age est une sous-"'asse de 'a "'asse indi,u$e

importSJ7avax:7ms:P="our:test:uti'J
im#ort des t(#es ou des #a"8ages 4es #a"8ages 'ang= serv'et et 7s# sont im#ort$s #ar d$faut

sessionSJtrueJ ou Jfa'seJ *defautStrue+


4a #age #arti"i#e < une session

is*+read,afe bufferS)\8
2ai''e du buffer #ar d$faut #our 'e Arint!riter:

auto-lus+SJtrueJ ou Jfa'seJ
Vide 'e buffer automati,uement ,uand 'e buffer est #'ein

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es directi$es 1:2


Aage -'a suite
isErrorAageSJtrueJ ou Jfa'seJ 4a #age est une #age dHerreur errorAageSJ0error:7s#J Aage "harg$e en "as dHex"e#tion "ontent2(#eSJtext0htm'K"harsetS&2I-]J 2(#e du "ontenu de 'a #age et 7eu de "ara"t?res

In"'ude
Ii'eSJre'ative &94J Ins?re 'e fi"hier "orres#ondant dans 'e fi"hier JSA 4e fi"hier est $va'u$ et "om#i'$ #ageSJtest:htm'^ In"'ut 'a ressour"e sans 'Hinter#r$ter
Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a J'#+
Uut : Sim#'ifier 'H$"riture des #ages 4angage #our 'es auteurs de #ages In"'ut un 'angage dHex#ression #our $viter 'e "ode 7ava :
4angage dHex#ression #our "a'"u'er des va'eurs ContrD'e du f'ot dHex$"ution Va'idateur de 'ibrairie de tags
Aermet des "ontrD'er 'e st('e et 'es 'ibrairies uti'isab'es dans une #age

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+a J'#+
JS24S Java Standard 2ag 4ibrar(
Core tags
Sortie= gestion des variab'es= 'ogi,ue= bou"'es= im#ortation de texte

E34 tags
Aarsing= s$'e"tion= ES42= f'ot de "ontrD'e

Gatabase tags
Conne"tion= a""?s= re,u-tes= mises < 7our et transa"tions

Iormattage
4o"a'isation= internationa'isation

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+e langage d-e%pression
4e 'angage dHex#ression est invo,u$ #ar
${expr}

Ges ob7ets im#'i"ites #ermettent dHa""$der aux "ontextes de 'Henvironnement


page,cope= re.uest,cope= session,cope= application,cope donnent a""?s aux variab'es de 'Henvironnement param et paramValues donnent a""?s aux #aram?tres dHune re,u-te
${param["nom"]} donne 'a va'eur du #aram?tre nom dHune re,u-te htt# ${paramValues["nom"]} donne toutes 'es va'eurs asso"i$es au #aram?tre nom de 'a re,u-te htt# dans un tab'eau

page/onte)t donne a""?s aux va'eurs asso"i$es au "ontexte initParams donne a""?s aux #aram?tres dHinitia'isation +eaderValues donne a""?s aux #ro#ri$t$s du header

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple 9 acc)s au% param)tres

Beans et Collection
4Ha""?s aux #ro#ri$t$s dHun bean se fait #ar un notation #oint$e
_Y"d:titreZ _Y#ersonne:adresse:vi''eZ

Aour 'es "o''e"tions *3a#= 4ist= Arra(+ on #eut uti'iser 'a notation
mesCGLiM si mesCG est un tab'eau mesCGL"d:titreM si "Hest une 3a# ave" 'e titre "omme "'$

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es oprateurs
Bn dis#ose de tous 'es o#$rateurs "'assi,ues
=-=P=0= mod= SS ou e,= QS ou ne= N ou 't= O ou gt *#our $viter 'es sou"is ave" E34 em#t( #our v$rifier si une variab'e est nu''e ou vide

4es "onversions de t(#es sont automati,ues dans 'es ex#ressions en fon"tion des besoins

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es actions gnrales


":out #our g$n$rer du texte *$,uiva''ent du NWS WO
N":out va'ueS_Y#aram:nomZ defau'tSJN0AJ0O Affi"he 'a va'eur du #aram?ter ou N0A si e''e est vide

":set affe"te 'a va'eur dHune variab'e dans 'e "ontexte "ourant
N":set varSJtestJ va'ueSJ"a mar"he RJ s"o#eSJre,uestJ0O 4a va'eur #eut -tre aussi "a'"u'$e dans 'e bod( N":set varSJtest%O
Nex:"a'" #aram)SJ#ouetJ0O

N0":setO Aeut -tre aussi uti'is$ #our "hanger 'a va'eur dHune #ro#ri$t$ dHun bean N":set targetS_Y"dZ #ro#ert(SJtitreJ va'ueSJ3e``anineJ0O Aeut -tre aussi uti'is$ #our a7outer un $'$ment dans une "o''e"tion N":set targetS_Ym(CGZ #ro#ert(S_Y"d:titreZ va'ueS_Y"dZ0O

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es actions gnrales 1suite2


N":remove0O #ermet de su##rimer une variab'e
N":remove varSJtestJ s"o#eSJ#ageJ0O Su##rime 'a variab'e test de 'a #age

N":"at"h0O #ermet de "a#turer 'es ex"e#tions dans une #age


N":"at"h varSJex"e#tionJO
F some "ode

N0":"at"hO N":if testS^_Yex"e#tion QS nu''Z^O I' ( a eu un sou"i N0":ifO Attention Va ne rem#'a"e #as 'e traitement norma' des erreurs

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es conditionnelles
4es "onditions sim#'es
N":if testSJ_Y"d:anneeN)aaTZJO CHest un vieux dis,ue N0":ifO

4es "onditions ex"'usives


N":"hooseO
N":@hen testSJ_Y"d:auteurSSHbobHZJO
1ue''e daube

N0":@henO N":@hen testSSJ_Y"d:auteurSSHbi''HZJO


Ca s@ing

N0":@henO F N":other@iseO
Ueuh R

N0":other@iseO

N0":"hooseO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

+es ;terateurs
":forEa"h r$#$te une a"tion #our tous 'es $'$ments dHune "o''e"tion
Ntab'eO N":forEa"h varS^"d^ itemsS^_Ym(CGZ^O NtrONtdON":out va'ueS^_Y"d:titreZ^0ON0tdON0trO N0":forEa"hO N0tab'eO

Bn #eut aussi d$finir un interva'


N":forEa"h varS^i^ beginS^)TT^ endS^))T^O N":out va'ueS^_YiZ^0O N0":forEa"hO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Encore des itrateurs


":for2o8ens #ermet de #ar"ourir une "haine "ontenant des d$'imiteurs
N":set varSJ'isteJ va'ueSJa=b="=dJ0O N":for2o8ens varSJitemJ itemsSJ_Y'isteZJ de'imsSJ=JO
N":out va'ueSJ_YitemZJ0O

N0":for2o8ensO

Hafidi Imad -ENSA de Khouribga-Cours JAVA

7VC et applications web

Hafidi Imad -ENSA de Khouribga-Cours JAVA

7VC
3ode'
' ;a##'i"ation m$tier= 'es donn$esF "e ,ui est mani#u'$ #ar ' ;a##'i"ation:

Vie@
#r$sentation de ' ;$tat du mod?'e *g$n$ra'ement < un uti'isateur+

Contro''er
interfa"e d ;a"tion sur 'e mod?'e
*#ar exem#'e= #our 'es mises < 7our+

4 ;interfa"e uti'isateur= "om#os$e de vues= int$ragit ave" 'e "ontrD'eur:


Hafidi Imad -ENSA de Khouribga-Cours JAVA

Hafidi Imad -ENSA de Khouribga-Cours JAVA

7VC 7odel 1'er$let2


M VC Des ign Pattern 1
Reques t

(Controller) Servlet
te tia an st In

BROWSER
5
Res pons e

Redirect

(View) JSP

(M odel) Java Bean

Servlet Container

(EIS)

7odel
4e "ontro'eur #rend en "harge 'a re,u-te I' effe"tue 'es "ontrD'es et 'es a"tions I' s$'e"tionne 'a vue 4e serv'et sert de
Ii'tre *erreur= s$"urit$+ Contro'eur *dis#at"hing= a"tions= redire"tion+

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple simple

Hafidi Imad -ENSA de Khouribga-Cours JAVA

E%emple suite

Hafidi Imad -ENSA de Khouribga-Cours JAVA

Vous aimerez peut-être aussi