|
|
Le JavaServer Pages ou JSP est une technologie basée sur Java qui permet aux développeurs de générer dynamiquement du code HTML, XML ou tout autre type de pages Web. La technologie permet au code Java et à certaines actions prédéfinies d'êtres ajoutés dans un contenu statique.
La syntaxe du JSP ajoute des balises XML, appelées actions JSP, qui peuvent être utilisées pour appeler des fonctions. De plus, la technologie permet la création de bibliothèques de balises JSP (taglib) qui agissent comme des extensions au HTML ou au XML. Les bibliothèques de balises offrent une méthode indépendante de la plate-forme pour étendre les fonctionnalités d'un serveur Web.
Les JSP sont compilées par un compilateur JSP pour devenir des Servlet Java. Un compilateur JSP peut générer un servlet Java en code source Java qui peut par la suite être compilé par le compilateur Java, ou peut générer le pseudo-code Java interprétable directement. Dans les deux cas, il est bon de comprendre comment le compilateur JSP transforme la page en servlet Java. À titre d'exemple, voyez un exemple de page JSP avec le servlet et la page HTML résultants.
| Table of contents |
|
1.1 Données statiques
2 Le modèle Model View Controller1.2 Directives JSP 1.3 Éléments de scripts JSP et variables 1.4 Bibliothèques de balises JSP 3 Liens externes |
Un JSP peut être séparé en plusieurs parties :
Les données statiques sont écrites dans la réponse HTTP exactement comme elles apparaissent dans le fichier source. Un fichier JSP sans code Java et sans action serait donc un fichier valide. Dans ce cas, les mêmes données seraient envoyées à chaque fois que la page serait demandée par le serveur Web. Bien sûr, l'intérêt des JSP est d'insérer des données dynamiques à l'intérieur de ce contenu statique.Syntaxe JSP
Données statiques
| Directive | Description et exemple d'utilisation | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| include | Cette directive indique au compilateur d'inclure un autre fichier dans la page. C'est comme si le contenu du fichier à inclure était directement copié dans le fichier courant. Cette fonctionnalité est similaire à celle offerte par le préprocesseur C.
<%@ include file="unAutreFichier" %> |
||||||||||
| page |
Il y a plusieurs options à cette directive :
<%@ page import="java.util.*" %> // import <%@ page contentType="text/html" %> // contentType <%@ page isErrorPage=false %> // pas une page d'erreur <%@ page isThreadSave=true %> //JSP sécuritaire aux threads |
||||||||||
| taglib | Directive qui indique qu'une bibliothèque de balises doit être utilisée. Elle requiert qu'un préfixe soit utilisé (comme un namespace en C++) et l'URI de la description de la bibliothèque.
<%@ taglib prefix="myprefix" uri="taglib/mytag.tld" %> |
Éléments de scripts JSP et variables
Variables de script standard
Les variables suivantes sont toujours disponibles dans une page JSP :
Éléments de script
Il y a trois types basiques d'éléments qui permettent d'insérer du code Java dans le servlet.
| Élément | Description et exemple |
|---|---|
| Déclaration (!) | Une déclaration permet d'insérer du code directement dans la classe du servlet. Elle peut être utilisée pour définir une variable globale à la classe ou pour créer des méthodes Java.
<%! int variableDeClasse = 0; %> |
| Scriptlet | Un Scriptlet est utilisé pour placer du code dans la méthode _jspService() du Servlet. C'est généralement l'élément utilisé pour placer tout code Java, sauf les méthodes et les variables de classe.
|
| Expression (=) | Cet élément sert à afficher une expression. Ce code est donc ajouté à la méthode _jspService(), comme paramètre à un appel out.print().
Voici une variable : <%= variable %> |
| Commentaire (--) | Utilisé pour faire un commentaire dans le code JSP. Le texte dans un commentaire JSP ne sera pas envoyé au client ni compilé dans le servlet.
<%-- Voici un commentaire JSP --%> |
En plus des actions JSP pré-définies, les développeurs peuvent ajouter leurs propres actions personnalisées en utilisant l'API d'extension de balises JSP (JSP Tag Exentesion API). Pour ce faire, il faut écrire une classe Java qui implémente une des interfaces de balises et écrire le fichier XML de description de balise qui donne les caractéristiques du marqueur et les classes qui l'implémentent.
Sun recommande l'utilisation du modèle de développement appelé Model View Controller ou MVC. Ce dernier sépare la présentation du traitement de la requête et du stockage des données. Un Servlet ou un fichier JSP séparé est utilisé pour traiter la requête. Après que le traitement soit fini, le contrôle est passé à une page JSP qui affiche les résultats. Ce JSP devrait contenir seulement du code HTML ou XML et soit des actions JSP pré-définies ou des bibliothèques de balises personnalisées. Le fichier JSP peut faire l'utilisation de Java beans pour obtenir les données à afficher.
Voir aussi :
Actions JSP
Les actions JSP sont des balises XML qui appellent des fonctions sur serveur Web. Les actions suivantes sont disponibles.
Action Description et exemple jsp:include
Agit de façon similaire à l'appel d'une sous-routine. Le contrôle est temporairement donné à une autre page, soit un autre fichier JSP, soit un fichier statique. Après le traitement de l'autre page, le contrôle est redonné au JSP en cours d'exécution. En utilisant cette fonctionnalité, le code Java peut être partagé entre deux pages plutôt que dupliqué.
jsp:param
Peut être utilisé dans un bloc jsp:include, jsp:forward ou jsp:params. Il indique un paramètre à être ajouté aux paramètres actuels de la requête. Pour un exemple, voir celui de jsp:include et jsp:forward.
jsp:forward
Donne le contrôle de la requête et de la réponse à une autre page JSP ou à un servlet. Le contrôle est définitivement donné.
jsp:plugin Les versions plus vieilles de Netscape et de Internet Explorer utilisaient différents types de balises pour ajouter une applet. Cette action génère le code nécessaire pour le navigateur utilisé par le client.
jsp:fallback Le contenu à montrer si le client ne supporte pas l'affichage d'applet (utilisé avec jsp:plugin). Pour un exemple, voir celui de jsp:plugin. jsp:getProperty Retrouve la valeur d'une propriété provenant d'un Java bean.
jsp:setProperty Règle la valeur d'une propriété d'un Java bean.
jsp:useBean Crée ou réutilise un Java bean déjà existant pour pouvoir l'utiliser dans la page.
Bibliothèques de balises JSP
Le modèle Model View Controller
Liens externes