<%=
et
%>
. Elle est passée en argument de la méthode
out.print()
dans la méthode
_jspService()
de la servlet générée par Tomcat. Typiquement, Tomcat affiche le retour de la méthode
toString()
de cet objet sur la page HTML.
<%!
et
%>
. Tout ce qui se trouve entre ces tags est placé à l’extérieur de toute méthode, dans la classe générée. On peut donc entre autre déclarer des variables ou des méthodes par ce biais. Voyons ceci sur deux exemples.
Exemple 42. Scriplet de déclaration
<%! // déclaration d'une variable private String blm = "Bonjour le monde" ;%> ... <%! // déclaration d'une méthode private void setBlm (String s) { blm = s ; } %> ... <%= blm %>
request
: contient une référence sur l’objet de type
HttpServletRequest
qui contient la requête à cette page. Les en-têtes HTTP sont disponibles au travers de cet objet.
response
: référence sur le flux sortant de la servlet. Une JSP ne touche en général pas explicitement au flux sortant. Il est possible de modifier les en-tête HTTP via cet objet, y compris dans le corps de la page. On veillera toutefois à ne faire de telles modifications que si le buffer de sortie n’a pas déjà été vidé vers le client, même partiellement. Si tel était le cas, les modifications de l’en-tête ne seraient pas prises en compte.
out
: cette variable est de type
Writer
. C’est celle qui sert à envoyer les données vers le client. C’est une instance de la classe
JspWriter
, un
Writer
qui permet de modifier de façon dynamique la taille du buffer associé.
config
: il s’agit de la variable de type
ServletConfig
utilisée pour initialiser la page.
pageContext
: objet de type
PageContext
. Cette classe abstraite se trouve dans le package
javax.servlet.jsp
. Elle contient des méthodes qui permettent d’accéder à toutes les variables déclarées par défaut. Si l’on a besoin de passer toutes ces variables à une méthode, il est donc efficace de lui passer
pageContext
à la place.
session
: variable de type
Httpession
. On peut donc lui attacher des objets, puisqu’une JSP est une servlet. Cette variable représente la session dans laquelle se trouve la requête.
application
: variable de type
ServletContext
, à laquelle on peut aussi attacher des objets. Cette variable modélise l'application web dans laquelle on se trouve.
page
: variable qui modèlise la page dans laquelle on se trouve. Elle contient une référence sur
this
.
directive
peut prendre trois valeurs :
page
,
include
et
taglib
. Suivant la valeur prise, certains attributs peuvent être ajoutés ou non.
La directive
page
peut prendre douze attributs différents.
import
: cet attribut précise les packages ou les classes à importer pour la servlet qui sera générée.
language
: cet attribut précise dans quel langage de programmation la page est écrite. En fait, seule la valeur
java
est supportée
contentType
: indique quel est le type MIME de la page générée. La valeur peut être n’importe quel type MIME valide.
isThreadSafe
: cet attribut permet de générer une méthode
_jspService()
qui ne pourra être appelée que par un seul thread à la fois. Les valeurs prises sont
true
et
false
. La valeur par défaut est
false
.
session
: contrôle le fait qu’un objet de type
HttpSession
va être associé à cette page ou non. Les valeurs possibles sont
true
et
false
, qui est la valeur par défaut. Une bonne habitude est de le mettre à
false
si l’on n’a pas besoin d’accéder à la session courante dans cette page.
buffer
: spécifie la taille du buffer de sortie associé à la variable
out
. Les valeurs prises sont
none
ou
xxkb
, où
xx
est un nombre.
autoflush
: contrôle si le buffer doit être envoyé automatiquement au client ou pas. S’il devient plein, une exception sera jetée. Les valeurs acceptées sont
true
ou
false
, qui est la valeur par défaut. La valeur
false
est interdite si l’attribut
buffer
a été mis à
none
.
extends
: utilisé par les équipes qui développent des serveurs comme Tomcat. Le développeur de servlet n’a pas à l’utiliser.
info
: fixe la valeur de la chaîne de caractères renvoyée par la méthode
getServletInfo()
.
errorPage
: contient un lien vers une page JSP qui sera appelée pour traiter toute exception jetée mais non captée. Cette page d’erreur doit obligatoirement posséder l’attribut
isErrorPage
, positionné à
true
.
isErrorPage
: indique si la page courante est une page d’erreur ou pas. Si tel est le cas, une variable supplémentaire est disponible dans la méthode
_jspService()
:
exception
. Cette variable contient une référence sur l’exception qui a généré l’appel à cette page.
pageEncoding
: définit le codage de caractères qui doit être utilisé sur la page. La valeur par défaut est ISO-8859-1.
Exemple 44. Utilisation d'une directive
page
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.util.List"%>
include
permet d'insérer du contenu statique (HTML pur) ou dynamique (scriplets ou éléments JSP) au moment de la compilation de la servlet. Elle ne peut prendre qu'un seul attribut,
file
, qui pointe vers la ressource à inclure. Voyons un exemple.
taglib
dans la suite de ce document