Cours génie informatique JAVA les types des éléments de scripts, tutoriel & guide de travaux pratiques en pdf.
Correspondance JSP/Servlet
• JSP d‟origine
<h1>Time on server</h1>
<p><%= new java.util.Date() %></p>
• Servlet généré par Tomcat
public final class Clock_jsp
extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent{ public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws java.io.IOException, ServletException{
response.setContentType(« text/html »);
JspWriter out = response.getWriter();
// …
out.write(« <h1>Time on server</h1>\r\n »);
out.write(« <p> »);
out.print( new java.util.Date() );
out.write(« </p>\r\n »);
// … 7
}
Stratégie de conception
Limiter le code Java dans les JSP
• Deux options
– Ecrire 25 lignes de code directement dans une JSP
– Ecrire ces 25 lignes dans une classe Java à part et 1 ligne dans une JSP pour l‟invoquer
• Pourquoi la 2e option est vraiment meilleure?
– Développement. Ecriture de la classe dans un environnement Java et pas HTML
– Debogage. S‟il y a des erreurs, elles sont visible à la compilation
– Test. L‟accès à la classe Java facilite le test (ex: boucle de test de 100000 itérations sur un serveur…)
– Réutilisation. Utilisation de la même classe dans différentes pages JSP
Versions JSP
• Extensions de fichiers
– .jsp, page JSP standard
– .jspf, fragment de page JSP
– .jspx, page JSP compatible XML
• Deux syntaxes
– Standard (JSP 1.2)
– XML (JSP 2.0)
• Depuis la 2.0 : Extensible à travers des librairies de tag (fichier .tld) importés ou
personnels. 9
Syntaxe de base
• Texte HTML
– <h1>Blah</h1>
– Passé au client. Réellement traduit en servlet par le code
• out.print(« <h1>Blah</h1> »);
• Commentaires HTML
– <!– Commentaire –>
– Pareil que les autres éléments HTML: passés au client
• Commentaires JSP
– <%– Commentaires –%>
– Ne sont pas envoyés au client
• Echappement <%
– Pour obtenir <% dans la sortie, utiliser <\%
Types des éléments de scripts
• Expressions
– Format : <%= expression %>
– Evaluée et insérée dans la sortie du servlet Se traduit par out.print(expression)
• Scriptlets
– Format : <% code %>
– Inséré tel quel dans la méthode _jspService du servlet
• Déclarations
– Format : <%! code %>
– Pour déclarer une variable ou bien une fonction / procédure.
• Include / Import / …
− Format : <%@ directive … %>
− Ex :<%@ include file= »unAutreFichier » %> <%@ page import= »java.util.* » %>
<%@ taglib prefix= »myprefix » uri= »taglib/mytag.tld » %>11
Expressions JSP:
<%= valeur %>
Expressions JSP
• Format
– <%= Expression Java %>
• Résultat
– Expression évaluée, convertie en String, et placée dans la page HTML à la place qu‟elle occupe dans la JSP
– L‟expression est placée dans _jspService en paramètre du out.print()
• Exemples
– Heurecourante: <%= new java.util.Date() %>
– Hostname: <%= request.getRemoteHost() %>
• Syntaxe compatible XML (JSP 2.0)
– <jsp:expression> Java Expression </jsp:expression>
– On ne peut pas mixer les deux versions dans une même page. Il faut utiliser XML pour la page entière si on utilise jsp:expression.