Pas obliger d'utiliser un bean -même si c'est aussi simple avec.
Il est existe plusieurs types de scopes sous JSP. Pour qu'un objet soit dans le scope voulu, il faut le placer dans la "liste" qui correspond, sous un nom d'attribut :
session.setAttribute("<nom_attribut>",valeur)
- "page" : visible dans toute la page
- "request" : visible entre les pages dans une même requête (un demande de la part d'un client Web)
- "session" : visible tand que le client web "navigue" de page en page. Cela permet de lier les requêtes. A noter que si l'opérateur ferme le client Web et ouvre un autre client -type d'arrête IE et tu ouvres un autre- tu obtiens 2 sessions distincts
- "application" : visible dans toutes les sessions. C'est pratique pour paraméter une application -ensemble de pages etc.- entière.
Il faut donc choisir le scope qui te convient le mieux.
Pour accéder à la "liste" du scope voulue, c'est simple :
sous JSP (deux syntax possibles, la 1ére est déroutante avec les concepts Java, à mon goût) :
1 2
| ${request.<nom_attribut>}
${request["<nom_attribut>"]} |
et dans un code Java à l'interieur de la JSP:
1 2 3
| <%
session.getAttribute("<nom_attribut>");
%> |
Le code que tu proposes
<%! String nom = "Toto!"; %>
est une déclaration: nom sera défini à la valeur "Toto" lors de la construction de la servlet issue de la JSP. Mais cela à lieu une fois... La valeur "Toto" ne sera pas forcement présente lors d'un 2iéme appel de la JSP.
Il serait dommage d'utiliser les bouts de scotch dans ta JSP.
Partager