Les JSP permettent de séparer efficacement le codage HTML de la logique applicative des pages Web. Utilisez JSP pour accéder à des composants réutilisables, tels que des servlets, des JavaBeans et des applications compatibles avec le langage Java. JSP prend également en charge l'intégration de code Java en ligne dans les pages Web.
Il est possible d'accèder aux fichiers JSP de deux différentes manières :
Le fichier JSP accède à des beans ou à d'autres composants qui génèrent du contenu dynamique envoyé au navigateur. Le schéma suivant illustre ce modèle d'accès pour JSP.
Lorsque le serveur Web reçoit une requête pour un fichier JSP, le serveur envoie cette requête serveur d'application.Celui-ci analyse le fichier JSP et génère une source Java qui est compilée et exécutée en tant que servlet. La génération et la compilation de la source Java s'effectue uniquement au premier appel du servlet à moins que le fichier JSP d'origine ait été mis à jour. Dans ce cas, le serveur détecte ce changement et régénère et compile le servlet avant de l'exécuter.
Ce modèle d'accès facilite la séparation entre la génération du contenu et son affichage.
Les fichiers JSP présentent le suffixe .jsp. Un fichier JSP contient des combinaisons de balises HTML, de balises NCSA (balises spéciales qui ont constitué la première méthode d'implémentation de données intégrées côté client), de balises <SERVLET> et de syntaxes JSP.
JSP prend en charge toutes les balises HTML valides. Pour obtenir une description de ces balises, reportez-vous à votre documentation HTML.
L'utilisation de la balise <SERVLET> constitue une méthode d'intégration d'un servlet dans un fichier JSP. La syntaxe de la balise est :
<SERVLET NAME="nom_servlet" CODE="nom_classe_servlet" CODEBASE="URL_pour_chargement_distant" initparm1="valeur_initparm"> <PARAM NAME="nom_param" VALUE="valeur_param"> </SERVLET>
La syntaxe JSP est composée des éléments suivants :
Les directives JSP (comprises entre <%@ et %>) permettent d'indiquer :
Utilisez les balises <SCRIPT> et </SCRIPT> pour déclarer les variables et les méthodes de classes de la classe de servlet.
Vous pouvez incorporer du code Java en ligne valide dans un fichier JSP entre les balises <% et %>. Ce code incorporé s'appelle un scriptlet. Si vous n'indiquez pas de directive de méthode, le code généré devient le corps de la méthode de service.
Un avantage de l'incorporation de code dans des servlets en ligne dans des fichiers JSP réside dans le fait que le servlet n'a pas à être compilé à l'avance puis placé sur le serveur. Cela facilite le test rapide du codage du servlet.
Le modèle de syntaxe HTML donne une approche plus conviviale de l'ajout de zones de variables dans des pages HTML. Cette syntaxe est composée de deux balises :
Une seconde méthode d'ajout de données de variables est d'indiquer une expression Java résolue lors du traitement du fichier JSP. Utilisez les balises d'expressions JSP <%= et %>. L'expression est évaluée, convertie en une chaîne et affichée. Les types primitifs, tels que int et float, sont automatiquement convertis en représentation de chaîne.
La prise en charge de JavaBeans par JSP permet de réutiliser des composants dans votre site Web. Utilisez la balise <BEAN> pour créer une instance d'un bean auquel l'accès sera fait à un autre endroit du fichier JSP. Utilisez le modèle de syntaxe HTML pour accéder à ce bean.
Ce bean peut correspondre à un fichier classe, un bean sérialisé. Il peut être généré dynamiquement par un servlet. Il peut même être lui-même un servlet (c'est-à-dire, fournir un service). Si un servlet génère du contenu dynamique et le stocke dans un bean, ce bean peut alors être transmis à un fichier JSP afin d'être utilisé dans la page Web définie par le fichier.
Deux interfaces prennent en charge la technologie JSP. Ces API fournissent un moyen de séparer la génération du contenu (logique applicative) de la présentation de ce contenu (formatage HTML). Cette séparation permet aux servlets de générer du contenu et de le stocker (dans un bean par exemple) dans le contexte de la requête. Le servlet qui a généré le contexte génère une réponse en transmettant le contexte de la requête à un fichier JSP qui comporte le formatage HTML. La balise <BEAN> fournit l'accès à la logique applicative.
Les interfaces qui prennent en charge JSP sont :
Cette classe implémente l'interface javax.servlet.http.HttpServletRequest et une méthode setAttribute() pour définir des attributs définis par un nom.
Cette classe implémente l'interface javax.servlet.http.HttpServletResponse et ajoute une méthode callPage() qui permet aux servlets d'appeler des fichiers JSP et de transmettre optionnellement un contexte.