FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://fr.wikipedia.org/wiki/JavaServer_Pages

Jakarta Server Pages — Wikipédia

Contents
    Éléments de scripts JSP et variables
        Variables de script standard
        Éléments de script
        Actions JSP
    Bibliothèques de balises JSP
Exemple
    Source
    Servlet Java créée par le compilateur
    Code HTML créé par le serveur
Voir aussi
    Liens externes

Pour les articles homonymes, voir JSP.

Jakarta Server Pages (anciennement , ou par les balises XML de la forme <jsp:directive.nom_directive … /> en JSP 2.0. Les directives suivantes sont disponibles :

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" %> ou en JSP 2.0 "}}'><jsp:directive.include file="unAutreFichier" />
page

Il y a plusieurs options à cette directive :

import Importe un paquetage (package) Java. Cette directive résulte en une instruction import dans la servlet.
contentType Définit le type de contenu de la page créée. Par exemple, ce peut être text/html pour du HTML.
errorPage Indique la page à afficher si une exception se produit pendant le traitement de la requête HTTP.
isErrorPage Si cette valeur est à true, la page est une page d'erreur.
isThreadSafe Indique si la servlet résultante est protégée pour les threads (fils d’exécution).
// import\n<%@ page contentType=\"text/html\" %> // contentType\n<%@ page isErrorPage=false %> // pas une page d'erreur\n<%@ page isThreadSafe=true %> //JSP sécuritaire aux threads"}}'><%@ page import="java.util.*" %> // import <%@ page contentType="text/html" %> // contentType <%@ page isErrorPage=false %> // pas une page d'erreur <%@ page isThreadSafe=true %> //JSP sécuritaire aux threads ou en JSP 2.0 // import\n<jsp:directive.page contentType=\"text/html\"\n isErrorPage=\"false\" isThreadSafe=\"true\" />"}}'><jsp:directive.page import="java.util.*" />// import <jsp:directive.page contentType="text/html" isErrorPage="false" isThreadSafe="true" />
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" %> ou en JSP 2.0 </jsp:root>"}}'><jsp:root xmlns:myprefix="urn://to/taglib" …></jsp:root>

Éléments de scripts JSP et variables

modifiermodifier le code

Variables de script standard

modifiermodifier le code

Les variables suivantes sont toujours disponibles dans une page JSP :

out
Le JSPWriter utilisé pour envoyer la réponse HTTP au client.
page
La servlet elle-même.
pageContext
Une instance javax.servlet.jsp.PageContext qui contient les données associées à la page entière. Une page HTML donnée peut être passée entre plusieurs JSP.
config
Objet de type javax.servlet.ServletConfig. Contient des paramètres de la servlet.
request
Objet représentant la requête HTTP.
response
Objet représentant la réponse HTTP.
session
Objet de type javax.servlet.http.HttpSession. La session HTTP, qui peut être utilisée pour conserver des informations relatives à un utilisateur d'une requête à une autre.
application
Objet de type javax.servlet.ServletContext. Peut Stocker des informations uniques pour toute la vie de l'application.

Éléments de script

modifiermodifier le code

Il y a 3 types basiques d'éléments qui permettent d'insérer du code Java dans la jsp.

Élément Description et exemple
Déclaration (!) Une déclaration permet d'insérer du code directement dans la classe de la servlet. Elle peut être utilisée pour définir une variable globale à la classe ou pour créer des méthodes Java. \n"}}'><%! int variableDeClasse = 0; %>

Ou

\n\tint variableDeClasse = 0; \n</jsp:declaration>\n"}}'><jsp:declaration> int variableDeClasse = 0; </jsp:declaration>
Scriptlet Un Scriptlet est utilisé pour placer du code dans la méthode _jspService() de la Servlet. C'est généralement l'élément utilisé pour placer tout code Java, sauf les méthodes et les variables de classe. \n"}}'><% int variable = 0; out.println("On peut aussi écrire des variables : " + variable); %>

Ou

\n\tint variable = 0;\n\tout.println(\"On peut aussi écrire des variables : \" + variable); \n</jsp:scriptlet>\n"}}'><jsp:scriptlet> int variable = 0; out.println("On peut aussi écrire des variables : " + variable); </jsp:scriptlet>
Expression (=) Cet élément sert à afficher une expression. Ce code est donc ajouté à la méthode _jspService(), comme paramètre à un appel out.print(). \n"}}'>Voici une variable : <%= variable %>

Ou

variable </jsp:expression>\n"}}'>Voici une variable : <jsp:expression> variable </jsp:expression>
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 la servlet. \n"}}'><%-- Voici un commentaire JSP --%>

Actions JSP

modifiermodifier le code

Les actions JSP sont des balises XML qui appellent des fonctions sur serveur HTTP. 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é à la JSP en cours d'exécution. En utilisant cette fonctionnalité, le code Java peut être partagé entre deux pages plutôt que dupliqué. <jsp:include page=\"pageÀInclure.jsp\" >\n\n<jsp:param name=\"paramètre\" value=\"valeur\" />\n\n</jsp:include>\n</nowiki>"}}'> <jsp:include page="pageÀInclure.jsp" > <jsp:param name="paramètre" value="valeur" /> </jsp:include>
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 à une servlet. Le contrôle est définitivement donné. Pour être appelée, aucune écriture ne doit avoir eu lieu sur la sortie (out) de la servlet. <jsp:forward page=\"pagePrenantContrôle.jsp\" >\n\n<jsp:param name=\"paramètre\" value=\"valeur\" />\n\n</jsp:forward>\n</nowiki>"}}'> <jsp:forward page="pagePrenantContrôle.jsp" > <jsp:param name="paramètre" value="valeur" /> </jsp:forward>
jsp:plugin Les versions plus anciennes de Netscape et de Internet Explorer utilisaient différents types de balises pour ajouter une applet. Cette action crée le code nécessaire pour le navigateur utilisé par le client. <jsp:plugin type=\"applet\" height=\"100%\" width=\"100%\"\n\ncodebase=\"/applets\"\n\ncode=\"MonApplet\" >\n\n<jsp:params>\n\n<jsp:param name=\"enableDebug\" value=\"true\" />\n\n</jsp:params>\n\n<jsp:fallback>\n\nVotre navigateur ne supporte pas les applets Java.\n\n</jsp:fallback>\n\n</jsp:plugin>\n</nowiki>"}}'> <jsp:plugin type="applet" height="100%" width="100%" codebase="/applets" code="MonApplet" > <jsp:params> <jsp:param name="enableDebug" value="true" /> </jsp:params> <jsp:fallback> Votre navigateur ne supporte pas les applets Java. </jsp:fallback> </jsp:plugin>
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 JavaBean. <jsp:getProperty name=\"nomDeBean\" property=\"derniereModif\" />\n</nowiki>"}}'> <jsp:getProperty name="nomDeBean" property="derniereModif" />
jsp:setProperty Règle la valeur d'une propriété d'un JavaBean. <jsp:setProperty name=\"nomDeBean\"\nproperty=\"derniereModif\" value=\"<%= new Date()%>\" />\n</nowiki>"}}'> <jsp:setProperty name="nomDeBean" property="derniereModif" value="<%= new Date()%>" />
jsp:useBean Crée ou réutilise un JavaBean déjà existant pour pouvoir l'utiliser dans la page. <jsp:useBean id=\"nomDeBean\" class=\"package.Bean\" scope=\"request\" />\n</nowiki>"}}'> <jsp:useBean scope="request" />

Bibliothèques de balises JSP

modifiermodifier le code

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 Extension 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.

Exemple

modifiermodifier le code

Voici un exemple de code source JSP, suivi du code source de la Servlet Java qui pourrait être créée par un serveur (par exemple Apache Tomcat) et de la page HTML qui en résulterait. Le code Java et HTML de cette page est celui créé par Apache Tomcat 4.

Source

modifiermodifier le code
\n<%@page contentType=\"text/html\"%>\n<%@page errorPage=\"erreur.jsp\"%>\n<%-- Importation d'un paquetage (package) --%>\n<%@page import=\"java.util.*\"%>\n<html>\n <head><title>Page JSP</title></head>\n <body>\n <%-- Déclaration d'une variable globale à la classe --%>\n <%! int nombreVisites = 0; %>\n <%-- Définition de code Java --%>\n <% //Il est possible d'écrire du code Java ici\n Date date = new Date();\n // On peut incrémenter une variable globale pour compter le nombre\n // d'affichages, par exemple.\n nombreVisites++;\n %>\n <h1>Exemple de page JSP</h1>\n <%-- Impression de variables --%>\n <p>Au moment de l'exécution de ce script, nous sommes le <%= date %>.</p>\n <p>Cette page a été affichée <%= nombreVisites %> fois !</p>\n </body>\n</html>\n"}}'><%-- Ceci est un commentaire JSP --%> <%@page contentType="text/html"%> <%@page errorPage="erreur.jsp"%> <%-- Importation d'un paquetage (package) --%> <%@page import="java.util.*"%> <html> <head><title>Page JSP</title></head> <body> <%-- Déclaration d'une variable globale à la classe --%> <%! int nombreVisites = 0; %> <%-- Définition de code Java --%> <% //Il est possible d'écrire du code Java ici Date date = new Date(); // On peut incrémenter une variable globale pour compter le nombre // d'affichages, par exemple. nombreVisites++; %> <h1>Exemple de page JSP</h1> <%-- Impression de variables --%> <p>Au moment de l'exécution de ce script, nous sommes le <%= date %>.</p> <p>Cette page a été affichée <%= nombreVisites %> fois !</p> </body> </html>

Servlet Java créée par le compilateur

modifiermodifier le code
\n\n"); out.write("\n"); out.write("\n\n"); out.write("\n"); //Il est possible d'écrire du code Java ici Datedate=newDate(); // On peut incrémenter une variable globale pour compter le nombre // d'affichages, par exemple. nombreVisites++; out.write("\n"); out.write("<h1>Exemple de page JSP"); out.write("</h1>\n"); out.write("\n"); out.write("<p>Au moment de l'exécution de ce script, nous sommes le "); out.print(date); out.write("."); out.write("</p>\n"); out.write("<p>Cette page a été affichée "); out.print(nombreVisites); out.write(" fois !"); out.write("</p>\n"); out.write("</body>\n"); out.write("</html>\n"); }catch(Throwablet){ out=_jspx_out; if(out!=null&&out.getBufferSize()!=0) out.clearBuffer(); if(pageContext!=null)pageContext.handlePageException(t); }finally{ if(_jspxFactory!=null)_jspxFactory.releasePageContext(pageContext); } } }

Code HTML créé par le serveur

modifiermodifier le code
\n<head><title>Page JSP</title></head>\n<body>\n\n<h1>Exemple de page JSP</h1>\n\n<p>Au moment de l'exécution de ce script, nous sommes le Sat Mar 26 19:31:28 EST 2016.</p>\n<p>Cette page a été affichée 5 fois !</p>\n</body>\n</html>\n"}}'><html> <head><title>Page JSP</title></head> <body> <h1>Exemple de page JSP</h1> <p>Au moment de l'exécution de ce script, nous sommes le Sat Mar 26 19:31:28 EST 2016.</p> <p>Cette page a été affichée 5 fois !</p> </body> </html>

Voir aussi

modifiermodifier le code

Liens externes

modifiermodifier le code
Java
Technologie
Général
Framework
Techniques
Langages de programmation

View original on Wikipedia | Back | FazBrowse Home