Académique Documents
Professionnel Documents
Culture Documents
Java Pour Le Développement D'applications Web: Java EE: Java Server Pages (JSP)
Java Pour Le Développement D'applications Web: Java EE: Java Server Pages (JSP)
Java Pour Le Développement D'applications Web: Java EE: Java Server Pages (JSP)
Creative Commons
Contrat Paternité
Partage des Conditions Initiales à l'Identique
2.0 France
keulkeul.blogspot.com
http://creativecommons.org/licenses/by-sa/2.0/fr
Réponse HTTP
2 helloJSP.jsp Phase de traduction
Requête HTTP
3 HelloServlet.java
keulkeul.blogspot.com
1 Compile
Génère 4
6
Phase de traitement
5 de la requête
out.println("</html>");
}
}
...
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
h Tag de déclaration :
Éléments de scripts
h <%! … %>
h Tag de Scriplet :
keulkeul.blogspot.com
h <% …%>
h Tag d’expression :
h <%= … %>
JSP - M. Baron - Page 8
Directives JSP
Le fichier corps.jsp
keulkeul.blogspot.com
Le fichier
piedpage.html
JSP - M. Baron - Page 11
Directives JSP : page
h isErrorPage : vaut true si la page est une erreur et false pour une
page normale
<%@ page isErrorPage=false %>
JSP - M. Baron - Page 12
Éléments de scripts JSP : commentaire
%>
scriplets ne sont ...
jamais utilisées,
préférez l’utilisation
Méthode déclarée par l’élément Ne pas oublier le ;
des balises
personnalisées de scripts déclaration
(Taglib) précédent
JSP - M. Baron - Page 15
Éléments de scripts JSP : expression
%>
Le <%= i %> ème nom est <%= noms[i] %> Ne pas ajouter de ; à
<% } %> la fin d'un élément
...
script expression
Éléments de scripts
JSP : expression JSP - M. Baron - Page 16
Éléments de scripts JSP : bilan
}
<body>
<%! String contenu[] = {"raoul","john","nicolas"}; %>
<%
for (int i = 0; i <contenu.length; i++) {
%> Expression
Le <%= i+1 %> ème nom est <%= contenu[i] %> <p>
<% } %>
</body>
</html>
JSP - M. Baron - Page 17
Éléments de scripts JSP : scriplet et objets implicites
<html>
<head>
<title>Informations du client</title>
</head>
<body bgcolor="white">
Protocol : <%= request.getProtocol() %><br>
Scheme : <%= request.getScheme() %><br>
ServerName : <%= request.getServerName() %><br>
ServerPort : <% out.println(request.getServerPort()); %><br>
RemoteAddr : <% out.println(request.getRemoteAddr()); %><br>
RemoteHost : <% out.println(request.getRemoteHost()); %><br>
Method : <%= request.getMethod() %><br>
</body>
</html>
keulkeul.blogspot.com
<body>
<%! public void jspInit() {
compteur = 23;
} %>
<%! String compteur; %>
La valeur du compteur est <%= compteur %>
</body>
</html>
<html>
<head><title>Page avec un compteur</title></head>
<body bgcolor="white">
Cette page a été visitée : <%= ++global_counter %> fois depuis le <%=
start_date %>.
</body></html>
Lancement d'une
exception possible dans le Possibilité de transmettre des
keulkeul.blogspot.com
h Une page JSP est définie comme une page erreur par la
directive page et l'attribut isErrorPage
<%@ page isErrorPage=true %> Quand false il s'agit
... code JSP traitant l'erreur d'une page standard,
true une page erreur
h Possibilité de manipuler l'exception qui a été lancée par
l'objet implicite exception (Exception)
h exception.getMessage() : renvoie le message d'erreur décrivant
l'exception
h exception.printStackTrace() : retourne la liste des appels de méthodes
ayant conduit à l'exception
keulkeul.blogspot.com
La référence exception
Une page erreur doit n'est utilisable que dans les
être obligatoirement éléments de scripts Scriplet
une page JSP et Expression
JSP - M. Baron - Page 23
Technique de gestion des erreurs
<html>
<head>
<title>Page avec une erreur</title>
</head>
<body bgcolor="white">
<body bgcolor="white">
J'ai vu passer une erreur qui est <%=
exception.getMessage() %>
</body>
</html>
ou
propriétés
return vitesse;
}
public int getPuissance() { Propriété Puissance visible en
return puissance; lecture uniquement
}
}
<%
La classe Voiture
ma_voiture.setDemarree(true); doit être placée
ma_voiture.setVitesse(21.2); dans le répertoire
%> Modification des WEB-INF\classes
propriétés du Bean
<html> Voiture par Scriplet
<head>
<title>Page pour lecture d'information</title>
</head>
<body bgcolor="white">
La voiture a-t-elle démarré: <%= ma_voiture.getDemarree() %><br>
La vitesse de la voiture est de : <jsp:getProperty
name="ma_voiture" property="vitesse" /> km/h<br>
Interrogation par
keulkeul.blogspot.com
<html>
<head>
<title>Page pour écriture d'information</title>
</head>
<body bgcolor="white">
Après<br>
mon_bean1 = <jsp:getProperty name="mon_bean1" property="name" /><br>
mon_bean2 = <jsp:getProperty name="mon_bean2" property="name" /><br>
mon_bean3 = <jsp:getProperty name="mon_bean3" property="name" /><br>
</body>
</html>
keulkeul.blogspot.com
h Partage d’information
h Utilisation du contexte pour transmettre des attributs
keulkeul.blogspot.com
h Partage du contrôle
h Utilisation des tags action JSP include et forward
JSP - M. Baron - Page 35
Partage d’information
Objet implicite
JSP - M. Baron - Page 39
Collaboration de Servlets et JSP : architecture MVC
5 Java
JavaBean
Bean et accès
aux
Client WEB données
Serveur Web
4 Modèle (SGBD)
JSP
JSP
Réponse
Vue JSP - M. Baron - Page 40
Collaboration de Servlets et JSP : architecture MVC
h Le modèle est géré par les Beans (ne connaît pas le contrôle ni la vue)
ou
<% monpackage.MonBean idbean = (monpackage.MonBean)request.getAttribute("idbean"); %>
keulkeul.blogspot.com
En générale pas de
package monpackage; sortie sur la réponse
de la Servlet
keulkeul.blogspot.com