Outils pour utilisateurs

Outils du site


developpement:java:jsp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
developpement:java:jsp [2016/09/14 03:29] – [Introduction] sgariepydeveloppement:java:jsp [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
 Le principal avantage des JSP est la séparation entre, d'un coté, la conception et développement du contenu et, de l'autre, la conception et développement de la logique d'affaires.  Ces deux activités sont fortement couplées dans les servlets, ce qui ne favorise pas la maintenance des applications. Le principal avantage des JSP est la séparation entre, d'un coté, la conception et développement du contenu et, de l'autre, la conception et développement de la logique d'affaires.  Ces deux activités sont fortement couplées dans les servlets, ce qui ne favorise pas la maintenance des applications.
  
-Une page JSP est un fichier texte ayant l'extension ''jsp'' et contenant du code [[web:html|HTML]] (ou [[prog:general:xml|XML]]) mélangé avec trois types d'éléments :+Une page JSP est un fichier texte ayant l'extension ''jsp'' et contenant du code [[web:html3|HTML]] (ou [[developpement:general:xml|XML]]) mélangé avec trois types d'éléments :
   - des directives   - des directives
   - des éléments de script   - des éléments de script
Ligne 13: Ligne 13:
  
  
-Dans certaines technologies équivalentes, telles que les pages [[web:asp|ASP]], le code de la page est interprété à chaque fois que la page est demandée.  Contrairement aux pages [[web:asp|ASP]], les pages JSP sont préalablement compilées.  En effet, lorsqu'une page JSP est demandée pour la première fois, le conteneur web convertit la page JSP en servlet et la compile.  À partir de ce moment, les requêtes adressées à la page JSP sont dirigées vers cette [[prog:java:servlets|servlet]].+Dans certaines technologies équivalentes, telles que les pages [[web:asp|ASP]], le code de la page est interprété à chaque fois que la page est demandée.  Contrairement aux pages [[web:asp|ASP]], les pages JSP sont préalablement compilées.  En effet, lorsqu'une page JSP est demandée pour la première fois, le conteneur web convertit la page JSP en servlet et la compile.  À partir de ce moment, les requêtes adressées à la page JSP sont dirigées vers cette [[developpement:java:servlets|servlet]].
  
 Il est possible d'utiliser uniquement une ou l'autre des deux technologies, JSP ou [[servlets]], mais, en général, on combine les deux : Il est possible d'utiliser uniquement une ou l'autre des deux technologies, JSP ou [[servlets]], mais, en général, on combine les deux :
Ligne 21: Ligne 21:
 ====== Les éléments de script ====== ====== Les éléments de script ======
  
-Les éléments de script permettent d'inclure des instructions [[prog:java:toc|Java]] dans une page JSP.  Ces instructions peuvent être des déclarations, des expressions ou des scriptlets.+Les éléments de script permettent d'inclure des instructions [[developpement:java:toc|Java]] dans une page JSP.  Ces instructions peuvent être des déclarations, des expressions ou des scriptlets.
  
 ===== Les déclarations ===== ===== Les déclarations =====
Ligne 31: Ligne 31:
   %>   %>
  
-Ces variables et méthodes sont traduites en attributs et méthodes d'instance de la classe de la [[prog:java:servlets|servlet]] qui va être générée.  Leur portée s'étend donc à toute la page JSP, incluant la zone avant l'endroit de la déclaration.  Pour des raisons de lisibilité, on peut donc regrouper toutes les déclarations dans un seul bloc au début de la page JSP.+Ces variables et méthodes sont traduites en attributs et méthodes d'instance de la classe de la [[developpement:java:servlets|servlet]] qui va être générée.  Leur portée s'étend donc à toute la page JSP, incluant la zone avant l'endroit de la déclaration.  Pour des raisons de lisibilité, on peut donc regrouper toutes les déclarations dans un seul bloc au début de la page JSP.
  
-Une variable déclarée dans un bloc de déclaration devient un attribut d'instance de la [[prog:java:servlets|servlet]].  Comme c'est l'unique instance qui répond à toutes les requêtes adressées à la [[prog:java:servlets|servlet]], cet attribut va être partagé par tous les clients.  Il faut donc réfléchir à deux fois avant de déclarer une variable dans un bloc de déclaration.+Une variable déclarée dans un bloc de déclaration devient un attribut d'instance de la [[developpement:java:servlets|servlet]].  Comme c'est l'unique instance qui répond à toutes les requêtes adressées à la [[developpement:java:servlets|servlet]], cet attribut va être partagé par tous les clients.  Il faut donc réfléchir à deux fois avant de déclarer une variable dans un bloc de déclaration.
  
 Un bloc de déclaration ne doit pas contenir d'instruction d'écriture sur le flux de sortie vers le client. Un bloc de déclaration ne doit pas contenir d'instruction d'écriture sur le flux de sortie vers le client.
Ligne 43: Ligne 43:
 ===== Les scriptlets ===== ===== Les scriptlets =====
  
-Un scriptlet est un code [[prog:java:toc|Java]] placé dans une page JSP entre les balises ''<%'' et ''%>'' On peut avoir plusieurs scriptlets dans une même page JSP.  Le code des scriptlets est placé dans la méthode ''service()'' de la [[prog:java:servlets|servlet]] générée.+Un scriptlet est un code [[developpement:java:toc|Java]] placé dans une page JSP entre les balises ''<%'' et ''%>'' On peut avoir plusieurs scriptlets dans une même page JSP.  Le code des scriptlets est placé dans la méthode ''service()'' de la [[developpement:java:servlets|servlet]] générée.
  
 ===== Les commentaires ===== ===== Les commentaires =====
  
-On peut documenter un code [[prog:java:toc|Java]] inséré dans une page JSP.  Pour cela, on place des commentaires entre ''<%--'' et ''--%>'' Contrairement aux commentaires [[web:html|HTML]], ces commentaires ne sont pas envoyés au client.+On peut documenter un code [[developpement:java:toc|Java]] inséré dans une page JSP.  Pour cela, on place des commentaires entre ''<%--'' et ''--%>'' Contrairement aux commentaires [[web:html5:toc|HTML]], ces commentaires ne sont pas envoyés au client.
  
 ====== Les directives ====== ====== Les directives ======
Ligne 95: Ligne 95:
   * ''session'' -> de type ''HttpSession'' et représente l'objet session.  Il est créé automatiquement sauf si dans la directive page l'attribut session est à ''false'' Il est de portée session.   * ''session'' -> de type ''HttpSession'' et représente l'objet session.  Il est créé automatiquement sauf si dans la directive page l'attribut session est à ''false'' Il est de portée session.
   * ''application'' -> de type ''ServletContext'' Il représente le contexte de l'application web.  Il est de portée application.   * ''application'' -> de type ''ServletContext'' Il représente le contexte de l'application web.  Il est de portée application.
-  * ''page'' -> c'est l'instance de la classe de la [[prog:java:servlets|servlet]] correspondant à la page JSP. page est l'objet this de la page JSP courante.  Il est de portée page.+  * ''page'' -> c'est l'instance de la classe de la [[developpement:java:servlets|servlet]] correspondant à la page JSP. page est l'objet this de la page JSP courante.  Il est de portée page.
   * ''pageContext'' -> de type ''javax.servlet.jsp.PageContext'' Il contient les données utilisées dans toute la page.  Il est de portée page.   * ''pageContext'' -> de type ''javax.servlet.jsp.PageContext'' Il contient les données utilisées dans toute la page.  Il est de portée page.
   * ''config'' -> de type ''ServletConfig'' Il représente la configuration de la page.  Il est de portée page.   * ''config'' -> de type ''ServletConfig'' Il représente la configuration de la page.  Il est de portée page.
Ligne 149: Ligne 149:
 ===== L'action <jsp:include> ===== ===== L'action <jsp:include> =====
  
-Une ressource statique (une page HTML, par exemple) ou dynamique (page JSP ou [[prog:java:servlets|servlet]], par exemple) peut être incluse dans une page JSP. On utilise pour cela l'action ''<jsp:include>'' en spécifiant l'URL de la ressource à inclure.  La ressource demandée n'a cependant accès qu'au flux de sortie vers le client.+Une ressource statique (une page HTML, par exemple) ou dynamique (page JSP ou [[developpement:java:servlets|servlet]], par exemple) peut être incluse dans une page JSP. On utilise pour cela l'action ''<jsp:include>'' en spécifiant l'URL de la ressource à inclure.  La ressource demandée n'a cependant accès qu'au flux de sortie vers le client.
  
-Cette action fonctionne comme la méthode ''include()'' de ''RequestDispatcher'' utilisée dans la collaboration entre une [[prog:java:servlets|servlet]] et une autre ressource.+Cette action fonctionne comme la méthode ''include()'' de ''RequestDispatcher'' utilisée dans la collaboration entre une [[developpement:java:servlets|servlet]] et une autre ressource.
  
 La syntaxe se présente sous deux formes possibles : La syntaxe se présente sous deux formes possibles :
Ligne 186: Ligne 186:
 Lorsque cette action est rencontrée, l'exécution de la page JSP est interrompu et son buffer est vidé.  Ensuite, la requête est modifiée en intégrant les nouveaux paramètres spécifiés dans le corps de l'action à l'aide des actions ''<jsp:param>'' La requête est transmise vers la ressource. Lorsque cette action est rencontrée, l'exécution de la page JSP est interrompu et son buffer est vidé.  Ensuite, la requête est modifiée en intégrant les nouveaux paramètres spécifiés dans le corps de l'action à l'aide des actions ''<jsp:param>'' La requête est transmise vers la ressource.
  
-Le comportement de cette action est le même que la méthode ''forward()'' de ''RequestDispatcher'' utilisée dans la collaboration entre une [[prog:java:servlets|servlet]] et une autre ressource.+Le comportement de cette action est le même que la méthode ''forward()'' de ''RequestDispatcher'' utilisée dans la collaboration entre une [[developpement:java:servlets|servlet]] et une autre ressource.
  
 ===== L'action <jsp:plugin> ===== ===== L'action <jsp:plugin> =====
Ligne 233: Ligne 233:
 </code> </code>
  
 +====== Les extensions de balise ======
  
- 
-====== Les extensions de balise ====== 
 La spécification 1.1 des pages JSP a introduit une amélioration majeure dans l'architecture des JSP en offrant au programmeur la possibilité de définir des bibliothèques de balises personnalisées.  Ces balises fonctionnent comme les actions standards sauf que c'est le programmeur qui spécifie le code java qui sera exécuté lorsque la balise est rencontrée dans une page JSP.  La séparation entre la présentation et le traitement se trouve nettement améliorée puisque le programmeur peut encapsuler son code dans des blocs utilisables directement par le concepteur web. La spécification 1.1 des pages JSP a introduit une amélioration majeure dans l'architecture des JSP en offrant au programmeur la possibilité de définir des bibliothèques de balises personnalisées.  Ces balises fonctionnent comme les actions standards sauf que c'est le programmeur qui spécifie le code java qui sera exécuté lorsque la balise est rencontrée dans une page JSP.  La séparation entre la présentation et le traitement se trouve nettement améliorée puisque le programmeur peut encapsuler son code dans des blocs utilisables directement par le concepteur web.
  
Ligne 260: Ligne 259:
 ==== Création du descripteur de bibliothèque ==== ==== Création du descripteur de bibliothèque ====
  
-Créer le descripteur de la bibliothèque.  Celui-ci est un fichier [[prog:general:xml|XML]] qui décrit la bibliothèque et chacune de ses balises.  Par convention, le descripteur de déploiement porte l'extension ''tld'' Dans notre exemple, nous allons t'appeler ''mabiblio.tld'' Voici son contenu :+Créer le descripteur de la bibliothèque.  Celui-ci est un fichier [[developpement:general:xml|XML]] qui décrit la bibliothèque et chacune de ses balises.  Par convention, le descripteur de déploiement porte l'extension ''tld'' Dans notre exemple, nous allons t'appeler ''mabiblio.tld'' Voici son contenu :
  
 <code xml> <code xml>
Ligne 313: Ligne 312:
 </code> </code>
  
-{{  :prog:java:jsp_tags.jpeg  |}}+{{  :developpement:java:jsp_tags.jpeg  |}}
  
 Le gestionnaire d'une balise qui veut manipuler son corps doit implémenter l'interface ''BodyTag'', qui hérite de l'interface ''IterationTag'' Là aussi, l'API fournit la classe d'implémentation ''BodyTagSupport'' Il est plus simple de faire dériver son gestionnaire de ''BodyTagSupport'' plutôt que de lui faire implémenter l'interface ''BodyTag''. Le gestionnaire d'une balise qui veut manipuler son corps doit implémenter l'interface ''BodyTag'', qui hérite de l'interface ''IterationTag'' Là aussi, l'API fournit la classe d'implémentation ''BodyTagSupport'' Il est plus simple de faire dériver son gestionnaire de ''BodyTagSupport'' plutôt que de lui faire implémenter l'interface ''BodyTag''.
developpement/java/jsp.1473816590.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)