Maison >interface Web >tutoriel HTML >Quelles sont les quatre principales portées de jsp
Portée de l'objet intégré JSP
application : valable dans toutes les applications, c'est-à-dire tant que le site Web est en cours d'exécution, cette portée est valide, cela fait référence à le processus d'exécution du programme.
session : valable dans la session en cours, c'est-à-dire à partir du navigateur accédant au serveur, cela fait référence à un processus d'accès de l'utilisateur, c'est-à-dire du début à la fin de cette session
requête : dans la session en cours Valable dans la requête, responsable du partage d'informations entre plusieurs servlets, c'est-à-dire en mettant les informations dans la requête, elle est valide pendant toute la phase de requête, c'est-à-dire que les données peuvent être obtenues à cette étape de la
page d'accès de l'utilisateur : Valable sur la page en cours, c'est-à-dire valide sur une page jsp.
Tout d'abord, il faut déclarer que ce qu'on appelle le « portée » est le « portée du partage d'informations », c'est-à-dire le champ dans lequel une information peut être efficace.
L'unité la plus élémentaire de l'interaction Web est la requête HTTP. Le processus allant de l'entrée au site Web à la sortie du site Web pour chaque utilisateur est appelé une session HTTP. Lors du fonctionnement d'un serveur, plusieurs utilisateurs y accéderont, ce qui correspond à plusieurs sessions HTTP. La portée est expliquée ci-dessous.
application : La période entre le démarrage du serveur et son arrêt.
session : La période allant du début à la fin de la session HTTP.
requête : La période allant du début à la fin de la requête HTTP.
page : Le temps entre l’ouverture et la fermeture de la page en cours.
1. Champ d'application
Le champ d'application est toute la période allant du démarrage à l'arrêt du serveur. Les informations définies dans ce champ peuvent être utilisées par toutes les applications. Le transfert d'informations sur la portée de l'application est implémenté via ServletContext, et les principales méthodes qu'il fournit sont les suivantes :
Object getAttribute (String name) : Obtenez des informations de l'application.
void setAttribute(String name, Object value) : définit les informations sur la portée de l'application.
2. Portée de la session
La portée de la session est plus facile à comprendre. Le même navigateur visite le serveur plusieurs fois et transfère des informations entre ces multiples visites. de la portée de la session. La session est implémentée via l'interface HttpSession et les principales méthodes qu'elle fournit sont les suivantes.
Object HttpSession.getAttribute(String name) : obtenez des informations sur la session.
void HttpSession.setAttribute(String name, Object value) : enregistre les informations dans la session.
HttpSession HttpServletRequest.getSession() : Récupère l'objet de session où se trouve la requête en cours.
L'heure de début de la session est relativement facile à déterminer. La session démarre lorsque le navigateur envoie la première requête HTTP. Mais il est difficile de juger de l'heure de fin, car le serveur ne sera pas averti lorsque le navigateur est fermé, elle ne peut donc être jugée que par la méthode suivante : si le client ne répond pas dans un certain délai, la session est considéré comme terminé. La valeur par défaut de Tomcat est de 120 minutes, mais cette valeur peut également être définie via la méthode setMaxInactiveInterval(int interval) de HttpSession. Si vous souhaitez mettre fin activement à la session, par exemple lorsque l'utilisateur clique sur le bouton « Déconnexion », vous pouvez utiliser la méthode de HttpSession. invalidate() Méthode utilisée pour mettre fin de force à la session en cours.
3. Portée de la requête
Le traitement d'une requête HTTP peut nécessiter la coopération de plusieurs servlets, et les informations peuvent être transmises entre ces servlets d'une manière ou d'une autre. les informations ne sont plus valides une fois la demande terminée.
Le partage d'informations entre servlets est réalisé grâce à deux méthodes de l'interface HttpServletRequest.
void setAttribute(String name, Object value) : enregistrez la valeur de l'objet dans la portée de la demande avec name comme nom.
Object getAttribute (String name) : récupère les informations du nom spécifié à partir de la portée de la requête.
Le premier paramètre des méthodes doGet() et doPost() dans JSP est l'objet HttpServletRequest. Utilisez la méthode setAttribute() de cet objet pour transférer des informations.
Donc, après avoir défini les informations, comment transmettre les informations aux autres servlets ? Cela nécessite l'utilisation de la méthode forward() de l'interface RequestDispatcher, via laquelle la requête est transmise aux autres servlets.
RequestDispatcher ServletContext.getRequestDispatcher (String path) : obtenez le Dispatcher pour le transfert. path est le servlet de destination pour le transfert.
void RequestDispatcher.forward (demande ServletRequest, réponse ServletResponse) : transférer la demande et la réponse.
Par conséquent, il vous suffit de définir les attributs correspondants via la méthode setAttribute() dans le servlet actuel, puis d'utiliser la méthode forward() pour sauter, et enfin d'utiliser la méthode getAttribute() dans le servlet sauté. Le transfert d'informations peut être réalisé.
Les programmeurs PHP peuvent ne pas très bien comprendre ce paragraphe, car il n'y a pas de concept de transfert en PHP. Une requête ne peut être traitée que par un seul fichier PHP, il n'y a donc pas de concept de portée de requête en PHP. Les servlets sont différents. Les requêtes peuvent être transmises arbitrairement dans l'application, de sorte que la portée de la requête est utilisée pour transférer des informations entre différents servlets.
À noter deux points :
La redirection n'est pas une redirection, la redirection se fait au sein de l'application web. PHP prend en charge les redirections mais pas le transfert.
Le transfert est transparent pour le navigateur, c'est-à-dire que quelle que soit la manière dont il est transféré sur le serveur, l'adresse du servlet d'origine est toujours affichée dans la barre d'adresse du navigateur. L'adresse du navigateur redirigé change.
4. Portée de la page
La portée de l'objet page est limitée à la page actuelle demandée par l'utilisateur. La référence à l'objet page sera supprimée après le. La réponse est renvoyée au client Libéré, ou libérée après que la demande a été transmise ailleurs. Une référence à l'objet page est généralement stockée dans l'objet pageContext.
La portée de l'introduction ci-dessus est de plus en plus petite. Les cycles de vie de la requête et de la page sont de courte durée. La différence entre eux est la suivante : une requête peut contenir plusieurs pages (inclure, transférer et filtrer).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!