Pour chaque objet déclaré dans une page JSP, il est possible de lui spécifier une portée (appelé également la visibilité de l'objet), c'est-à-dire sa durée de vie. Par défaut sa durée de vie est réduite à la page JSP.
Imaginons par exemple un utilisateur demandant une page JSP, cette page sollicite la participation d'un bean pour formater l'heure et décider de la salutation à utiliser. La page demande au conteneur JSP de créer le bean, elle sollicite certaines méthodes de ce bean pour avoir l'heure actuelle et la salutation à afficher pour le client. Si la portée du bean est restreinte à la page, alors le bean est détruit par le conteneur JSP et le résultat de la page JSP est envoyé au client. Voyons maintenant les différentes portées disponibles :
Page | l'objet est accessible uniquement par un seul client et il est visible uniquement pour la page demandée
| request |
l'objet est accessible uniquement par un seul client et il est visible à toutes les pages qui participent à la satisfaction de la requête de l'utilisateur
| session |
l'objet est accessible uniquement par un seul client et il est visible à toutes les pages qui participent à la satisfaction de la session de l'utilisateur, c'est-à-dire à l'ensemble des requêtes émises par le client depuis son arrivée jusqu'à son départ. On peut imaginer un client arrivant sur un site marchand, choisit ses produits, les ajoutes dans le caddie, passe la commande, paye la commande et quitte le site
| application |
l'objet est accessible à tous les clients, à toutes les requêtes et à toutes les pages. On peut imaginer un site marchand qui utilise un objet pour contenir tous les produits avec leurs disponibilités de telle sorte à minimiser l'accès à la base de données
|
L'image ci-dessous schématise cette notion de portée des objets dans un conteneur JSP. Lorsque une page JSP dépend d'une autre cela signifie qu'il peut s'agit soit d'une inclusion soit d'une redirection.
|