Académique Documents
Professionnel Documents
Culture Documents
Thierry Lecroq
(merci à Alexandre Pauchet (INSA Rouen))
Université de Rouen
FRANCE
1 Introduction
2 Fonctionnement
3 Inclusion/Délégation
hello.jsp
<%@ page c o n t e n t T y p e=" t e x t / h t m l ; c h a r s e t =u t f 8 " %>
< ! DOCTYPE html PUBLIC " −//W3C/ /DTD XHTML 1.0 S t r i c t / /EN" " h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d ">
<h t m l>
<h e a d>
< t i t l e >Ma p r e m i&e g r a v e ; r e page JSP</ t i t l e >
</ h e a d>
<b o d y>
<% String p r e n o m=r e q u e s t . g e t P a r a m e t e r ( " p r e n o m " ) ; %>
<h 1>B o n j o u r <%=(p r e n o m != n u l l && p r e n o m . l e n g t h ( ) ! = 0 ) ? p r e n o m : " b e l ( l e ) inconnu ( e
) "%></ h 1>
<% i f ( p r e n o m != n u l l && p r e n o m . e q u a l s ( " l e monde " ) ) { %>
<h 2>B i e n j o u&e a c u t e ; ! ! ! ! </ h 2>
<% } %>
<f o r m a c t i o n =" h e l l o . j s p " m e t h o d=" p o s t ">
< l a b e l >P r&e a c u t e ; nom : </ l a b e l >< i n p u t t y p e =" t e x t " name=" p r e n o m " s i z e =" 3 0 ">
<i n p u t t y p e =" s u b m i t " v a l u e =" e n v o y e r ">
</ f o r m>
</ b o d y>
</ h t m l>
Syntaxe
<%@ page directive %>
Exemples
<%@ page isThreadSafe="false" %>
<%@ page contentType="text/plain; charset=UTF-8" %>
<%@ page import="java.io.*, java.util.*" %>
erreur.html
< ! DOCTYPE html PUBLIC " −//W3C/ /DTD XHTML 1.0 S t r i c t / /EN" " h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d ">
<h t m l>
<h e a d>
<m e t a h t t p − e q u i v=" C o n t e n t −Type " c o n t e n t =" t e x t / h t m l ; c h a r s e t =UTF−8" />
< t i t l e >P a g e d ' e r r e u r </ t i t l e >
</h e a d>
<b o d y>
<h1> I l doit y avoir une erreur dans la JSP . . . < / h1>
</b o d y>
</ h t m l >
Syntaxe
<%
script
%>
Syntaxe
<%= expression %>
compteur.jsp
<%@ page i s T h r e a d S a f e=" f a l s e " %>
<%@ page c o n t e n t T y p e=" t e x t / p l a i n ; c h a r s e t =UTF−8" %>
<%@ page i m p o r t =" j a v a . i o . ∗ " %>
<%!
int c o m p t e u r =0;
String fichier ;
public void j s p I n i t () {
try {
f i c h i e r =g e t S e r v l e t C o n t e x t ( ) . g e t R e a l P a t h ( " / c o m p t e u r . t x t " ) ;
FileReader file = new FileReader ( f i c h i e r ) ;
BufferedReader reader = new BufferedReader ( f i l e ) ;
compteur = Integer . parseInt ( reader . readLine () ) ;
reader . close () ;
}
catch ( FileNotFoundException exception ) {}
catch ( IOException exception ) {}
catch ( NumberFormatException exception ) {}
}
...
compteur.jsp (n)
...
log.jsp
<%@ page c o n t e n t T y p e=" t e x t / h t m l ; c h a r s e t =UTF−8" %>
< ! DOCTYPE html PUBLIC " −//W3C/ /DTD XHTML 1.0 S t r i c t / /EN" " h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d ">
<h t m l>
<h e a d>
< t i t l e>E c r i t u r e dans le fichier l o g</ t i t l e >
</ h e a d>
<b o d y>
<%
String phrase = "" ;
i f ( r e q u e s t . g e t P a r a m e t e r ( " p h r a s e " ) != n u l l )
phrase = request . getParameter ( " phrase " ) ;
a p p l i c a t i o n . log ( phrase ) ;
%>
<f o r m a c t i o n =" l o g . j s p " m e t h o d=" g e t ">
< l a b e l >P h r a s e a ecrire dans le fichier log : </ l a b e l >< i n p u t t y p e =" t e x t "
name=" p h r a s e " s i z e =" 3 0 ">
<% o u t . p r i n t l n ( "< i n p u t t y p e =\" s u b m i t \ " v a l u e =\" e n v o y e r \">" ) ; %>
</ f o r m>
</ b o d y>
</ h t m l>
titre.txt
texte.jsp
parametre.jsp
Syntaxe
<jsp:forward page="fichier " />
ou
<jsp:forward page="fichier " />
<jsp:param name="nom " value="valeur "/>
...
</jsp:forward>
parametre.jsp
<%@ page c o n t e n t T y p e=" t e x t / h t m l ; c h a r s e t =UTF−8" %>
< ! DOCTYPE html PUBLIC " −//W3C/ /DTD XHTML 1.0 S t r i c t / /EN" " h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d ">
<h t m l>
<h e a d>< t i t l e > A f f i c h a g e d e l e g u e</ t i t l e ></ h e a d>
<b o d y>
<%
String nom = r e q u e s t . g e t P a r a m e t e r ( "nom" ) ;
o u t . p r i n t l n ( "<p>S a l u t " + nom + " ! </ p>" ) ;
%>
</ b o d y>
</ h t m l>
Denition (JavaBean)
Classe java respectant certaines conventions (API) faisant d'elle un
composant java réutilisable et facilement intégrable dans des applications.
UnMessage.java
package libMessage ;
import j a v a . beans . ∗ ;
import java . io .∗;
import java . text .∗;
import java . u t i l .∗;
LivreOr.java
package libMessage ;
import j a v a . beans . ∗ ;
import java . u t i l .∗;
import java . io .∗;
public LivreOr () { }
...
LivreOr.java (n)
...
p u b l i c Vector getMessages () {
r e t u r n messages ;
}
livredor.jsp
<%@ page c o n t e n t T y p e=" t e x t / h t m l " %>
<%@ page l a n g u a g e=" j a v a " i m p o r t =" l i b M e s s a g e . ∗ " %>
< ! DOCTYPE HTML PUBLIC " −//W3C/ /DTD HTML 4.01 T r a n s i t i o n a l / /EN">
<h t m l>
<h e a d>
< t i t l e>L i v r e d ' o r </ t i t l e >
</h e a d>
<b o d y>
<f o r m a c t i o n= ' l i v r e d o r . j s p ' m e t h o d= 'POST '>
< l a b e l >e m a i l : </ l a b e l >
<i n p u t t y p e= ' t e x t ' name= ' e m a i l ' s i z e = ' 5 0 ' />< b r />
<t e x t a r e a name= ' t e x t e ' r o w s= ' 1 0 ' c o l s = ' 8 0 '> S a i s i s s e z votre message i c i </
t e x t a r e a ><b r />
<i n p u t t y p e= ' s u b m i t ' name= ' s u b m i t ' v a l u e= ' E n v o y e r ' />
</f o r m >
...
<%
i f ( msg != n u l l && msg . g e t E m a i l ( ) != n u l l && ! msg . g e t E m a i l ( ) . e q u a l s ( " " ) ) {
l i v r e o r . a d d M e s s a g e ( msg ) ;
l i v r e o r . e n r e g i s t r e r () ;
}
</ b o d y>
</ h t m l>
Déploiement
Livredor
|_ src
| |_ LivreOr . java
| |_ UnMessage . j a v a
| _ WEB−INF
| |_ classes
| |_ libMessage
| |_ LivreOr . c l a s s
| |_ UnMessage . c l a s s
|_ livredor . jsp