QU’est-ce que JSP? Introduction à JavaServer Pages

JavaServer Pages (JSP) est une technologie standard Java qui vous permet d’écrire des pages dynamiques basées sur les données pour vos applications Web Java. JSP est construit sur le dessus de la spécification de servlet Java. Les deux technologies fonctionnent généralement ensemble, en particulier dans les anciennes applications Web Java., Du point de vue du codage, la différence la plus évidente entre eux est qu’avec les servlets, vous écrivez du code Java, puis intégrez un balisage côté client (comme HTML) dans ce code, alors qu’avec JSP, vous commencez avec le script ou le balisage côté client, puis intégrez des balises JSP pour connecter votre page au backend Java.

JSP est également étroitement lié à JSF (JavaServer Faces), une spécification Java pour la construction D’applications Web MVC (model-view-controller). JSP est une technologie relativement plus simple et plus ancienne que JSF, qui est la norme pour les frameworks Web Java comme Eclipse Mojarra, MyFaces et PrimeFaces., Bien qu’il ne soit pas rare de voir JSP utilisé comme frontend pour les anciennes applications JSF, Facelets est la technologie de vue préférée pour les implémentations JSF modernes.

bien que JSP ne soit pas votre premier choix pour créer des pages web dynamiques, il s’agit d’une technologie Web Java de base. Les pages JSP sont relativement rapides et faciles à créer, et elles interagissent de manière transparente avec les servlets Java dans un conteneur de servlets comme Tomcat. Vous rencontrerez JSP dans les anciennes applications Web Java, et de temps en temps, vous pouvez le trouver utile pour créer des pages Web Java simples et dynamiques., En tant que développeur Java, vous devriez au moins être familier avec JSP.

Cet article sera une introduction rapide aux Pages JavaServer, y compris la JSP Standard Tag Library (JSTL). Des exemples vous montrent comment écrire une page HTML simple, intégrer des balises JSP pour se connecter à un servlet Java et exécuter la page dans un conteneur de servlet.

Voir les articles précédents de cette série pour en savoir plus sur les servlets Java et les Faces JavaServer.

Rédaction des pages JSP

Une simple page JSP (.jsp) se compose D’un balisage HTML intégré avec des balises JSP., Lorsque le fichier est traité sur le serveur, le code HTML est rendu en tant que vue d’application, une page web. Les balises JSP intégrées seront utilisées pour appeler du code et des données côté serveur. Le diagramme de la Figure 1 montre l’interaction entre HTML, JSP et le serveur d’applications web.

Matthew Tyson

Figure 1. JSP overview

la liste 1 montre une page JSP simple.

Liste 1., Une simple page JSP

<html> <body> <p>${2 * 2} should equal 4</p> </body></html>

dans la liste 1, vous voyez un bloc de HTML qui inclut une expression JSP, qui est une instruction au serveur Java écrite en utilisant Expression Language (EL). Dans l’expression « ${2 * 2}« , le »${}  » est la syntaxe JSP pour interpoler le code en HTML. Lorsqu’il est exécuté, le JSP affichera les résultats de l’exécution de tout ce qui se trouve à l’intérieur de l’expression. Dans ce cas, la sortie sera le nombre 4.

JSP dans le conteneur de servlet

les pages JSP doivent être déployées dans un conteneur de servlet Java., Afin de déployer une application Web Java basée sur JSP et servlets, vous empaqueterez votre.fichiers jsp, code Java et métadonnées d’application dans un .fichier de guerre, qui est un simple.fichier zip avec une structure conventionnelle pour les applications web.

Une fois que vous avez chargé le JSP dans votre conteneur de servlet, il sera compilé dans un servlet. Les JSP et les servlets Java partagent des caractéristiques similaires, notamment la possibilité d’accéder aux objets request et d’y répondre. Apache Tomcat 9x est l’implémentation de référence pour les spécifications Servlet 4.0 et JSP 2.3. (Notez que les mises à jour entre JSP 2.,2 et 2.3 sont relativement mineurs.)

exemple d’application pour JSP

Nous utiliserons un exemple d’application dans Tomcat pour vous aider à démarrer avec les Pages JavaServer. Si Tomcat n’est pas déjà installé, accédez à la page de téléchargement Tomcat et sélectionnez L’installation Tomcat pour votre système d’exploitation. Au moment d’écrire ces lignes, Tomcat 9 est la version actuelle, compatible avec Servlet 4.0 et JSP 2.3.

Vous pouvez installer Tomcat en tant que service Windows, ou l’exécuter à partir de la ligne de commande avec /bin/catalina.sh start ou /bin/catalina.bat., Quoi qu’il en soit, démarrez Tomcat, puis allez à localhost:8080 pour voir la page D’accueil Tomcat illustrée à la Figure 2.

Matthew Tyson

Figure 2. Page d’accueil Tomcat

objets implicites dans Tomcat

sur la page D’accueil Tomcat, cliquez sur le lien exemples, puis cliquez sur exemples JSP.

Ensuite, ouvrez les objets implicites exécuter l’application web. La Figure 3 montre la sortie pour cette application. Prenez une minute pour étudier cette sortie.

Matthew Tyson

Figure 3., Exemple de sortie JSP

paramètres de requête

Les objets implicites sont des objets intégrés accessibles via une page JSP. En tant que développeur de page web, vous utiliserez ces objets pour créer un accès à des éléments tels que les paramètres de requête, qui sont les données envoyées par le navigateur lors de l’émission d’une requête HTTP. Considérons L’URL du navigateur pour les objets implicites:

This example is a very simple introduction to using JSP tags to access server-side request parameters. In this case, the JSP page uses the built-in (implicit) object called param to access the web application’s request parameters. The param object is available inside the JSP expression syntax that you saw in Listing 1.

In that example, we used an expression to do some math: ${2 * 2}, which output 4.

In this example, the expression is used to access an object and a field on that object: ${param.foo}.

JSP in a web application

On the Implicit Objects page, click the back arrow, followed by the Source link. This will lead you to the JSP code for the Implicit Objects web app, which is shown in Listing 2.

Listing 2. JSP code for the Implicit Objects web app

JSP functions

A JSP function encapsulates a chunk of reusable functionality. In this case, the functionality is to escape XML. JSP offers a variety of functions, and you can also create functions yourself. To use a function, you import its library into your JSP page, then call the function.

In Listing 2, the escapeXML function is included with the line:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

la syntaxe est assez claire: elle importe les fonctions requises et leur attribue un préfixe (dans ce cas « fn ») qui peut être utilisé dans toutes les expressions suivantes.,

la bibliothèque de balises standard JSP (JSTL)

la ligneimportdans la liste des 2 appelstaglib, abréviation de bibliothèque de balises, ou (dans ce cas) bibliothèque de balises Standard JSP (JSTL). Les bibliothèques de balises définissent des bits de fonctionnalités réutilisables pour JSP. JSTL est la bibliothèque de balises standard, contenant une collection de balises qui sont livrées avec chaque implémentation de servlet et JSP, y compris Tomcat.

la bibliothèque « functions » n’est qu’un des taglibs inclus avec JSTL., Un autre taglib commun est la bibliothèquecore, que vous importez en appelant:

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

comme « fn », la désignation « c » est conventionnelle, et vous la verrez sur la plupart des pages JSP.

sécurisation des pages JSP

un exemple de balise de la bibliothèque principale est

<c:out value = "${'<div>'}"/> 

qui génère la<div> avec le XML déjà échappé. Cette fonction est importante car la sortie de contenu directement sur une page web via ${variable} ouvre la porte aux attaques par injection de script., Cette fonction simple est utilisée pour protéger les pages web de telles attaques.

la bibliothèque de base comprend également diverses balises pour l’itération et le contrôle de flux (comme la gestion IF / ELSE).

appel de taglibs dans les pages JSP

maintenant que vous avez une poignée sur les bases de JSP, apportons une modification à l’exemple d’application. Pour commencer, localisez L’Application objet implicite dans votre installation Tomcat. Le chemin est: apache-tomcat-8.5.33/webapps/examples/jsp/jsp2/el.,

d’Ouvrir ce fichier et recherchez la balise functions comprend:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

juste en dessous de cette ligne, ajoutez une nouvelle ligne:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

appuyez sur entrée pour ajouter une nouvelle ligne:

<c:out value = "${'This is a test of the JSTL Core Library'}"/>

Maintenant recharger la page http://localhost:8080/examples/jsp/jsp2/el/implicit-objects.jsp?foo=bar.

Vous devriez voir vos mises à jour reflétées dans la sortie.

mise en page d’une application web JSP

Tomcat suit la mise en page standard pour les servlets Java et les pages JSP., La structure générale est un dossier avec le nom de l’application, qui est déployé dans le répertoire /webapps de Tomcat.

Dans l’Implicite des Objets d’application, l’application est /examples. L’ouverture de ce dossier révèle trois enfants importants: le répertoire/WEB-INF, le fichierindex.html et un ensemble d’autres répertoires.

le répertoireWEB-INF contient des métadonnées qui indiquent à Tomcat comment exécuter L’application.

le reste du contenu, y compris l’index.,html, est directement accessible, tout comme il le serait dans un serveur web typique. De même, le implicit-objects.jsp est disponible pour l’affichage et est automatiquement géré comme une page JSP (pas une page HTML) par le serveur.

architecture Request-response

dans une application servlets / JSP typique, les servlets reçoivent des requêtes et interagissent avec les composants et services Côté Serveur (tels que la base de données) pour les exécuter. Une fois traité, le résultat de la demande est transmis à une page JSP, qui présente la réponse.,

un servlet utilise la syntaxe suivante lors de l’envoi d’une réponse de requête à une page JSP:

request.getRequestDispatcher("path/to/jsp.jsp").forward(req,res);

toutes les données que le servlet a insérées dans les différentes étendues JSP seront accessibles à JSP. Une portée est simplement une plage de vie pour un objet donné. Les objets Request et response ont une portée de requête, ce qui signifie qu’ils vivent pendant la durée de la requête. D’autres étendues incluent la portée de la page (vivant aussi longtemps que la page JSP) et la portée de la session (se terminant lorsque l’Utilisateur termine la session donnée).,

Conclusion

JavaServer Pages est une technologie bien connue et polyvalente pour développer des vues D’applications Web Java. Combinées aux servlets, les pages JSP sont très puissantes et permettent d’accéder à toute la gamme des fonctionnalités Java. Bien que JSP ne soit peut-être pas votre premier choix pour développer une application Web Java moderne, vous rencontrerez des pages JSP dans des applications héritées. C’est également un bon choix pour les applications plus simples, où vous souhaitez connecter rapidement votre interface HTML au code Java côté serveur., Les balises JSTL sont capables de gérer la plupart des exigences des applications web, et les bibliothèques tierces étendent cette fonctionnalité pour des technologies et des cas d’utilisation spécifiques.

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *