Maison  >  Article  >  Java  >  Comment JAVA exploite-t-il les variables de session dans JSP via Servlet ?

Comment JAVA exploite-t-il les variables de session dans JSP via Servlet ?

WBOY
WBOYavant
2023-05-02 17:34:131152parcourir

Utiliser Servlet pour contrôler la session

Le maintien de l'état de la session est un problème auquel il faut faire face lors du développement d'applications Web. Il existe de nombreuses façons de résoudre ce problème, comme l'utilisation de cookies, de champs de formulaire de type masqué ou la modification directe. les informations d'état sont ajoutées à l'URL, etc., et le servlet lui-même fournit une interface HttpSession pour prendre en charge la maintenance de l'état de session. Ici, nous introduisons principalement la gestion de l'état de session basée sur cette interface.

 La session a été inventée pour combler les limitations du protocole HTTP. Veuillez noter le fonctionnement du protocole HTTP : l'utilisateur fait une requête et le serveur répond. Cette connexion entre le client et le serveur est discrète et discontinue. Le protocole HTTP ne fournit pas de fonctionnalités permettant au serveur de suivre les demandes des utilisateurs. Une fois que le serveur a fini de répondre à la demande de l'utilisateur, il ne peut plus maintenir une connexion avec le navigateur. Du côté du serveur, chaque requête est indépendante, le protocole HTTP est donc considéré comme un protocole sans état. Lorsqu'un utilisateur bascule entre plusieurs pages d'accueil, le serveur ne peut pas connaître son identité. L’émergence de Session vise à compenser cette limitation. À l'aide de Session, vous pouvez enregistrer les informations d'un utilisateur lorsqu'il bascule entre plusieurs pages d'accueil. Cela rend beaucoup de choses qui étaient impossibles à faire auparavant et deviennent beaucoup plus faciles.

  Pendant la période allant de l'arrivée d'un visiteur sur une page d'accueil spécifique jusqu'à son départ, chaque visiteur recevra une session distincte.
 Java Servlet définit une interface HttpSession pour implémenter la fonction de Session. Le processus d'utilisation de Session dans Servlet est le suivant :
  
 (1) Utilisez la méthode getSession de HttpServletRequest pour obtenir la session actuellement existante s'il n'y a pas de session actuellement définie. , créez-en une nouvelle session, vous pouvez également utiliser la méthode getSession(true)

  (2) Écrivez la variable de session. Vous pouvez utiliser la méthode HttpSession.setAttribute(name, value) pour stocker une information dans la session. Vous pouvez également utiliser HttpSession.putValue(name, value), mais cette méthode est obsolète.

  (3) Lisez la variable Session. Vous pouvez utiliser la méthode HttpSession.getAttribute(name) pour lire la valeur d'une variable dans la session. Si name est une variable non définie, null est renvoyé. Il convient de noter que le type de variable lu depuis getAttribute est Object et qu'une conversion de type forcée doit être utilisée, telle que :
  String uid = (String) session.getAttribute("uid");
 Vous pouvez également utiliser HttpSession.getValue ( nom), mais cette méthode est également obsolète.

   (4) Fermez la session. Après avoir utilisé la session, vous pouvez utiliser la méthode session.invalidate() pour fermer la session. Mais ce n’est pas strictement obligatoire. Parce que le moteur Servlet ferme automatiquement la session après un certain temps.

 Ce qui suit est un exemple simple pour illustrer l'utilisation de session
   // SessionExample.java
  import java.io.*;
 import java.util.*;
 import javax.servlet.*;
 import javax.servlet. https. {
  response.setContentType(" text/html "); //Définir l'en-tête HTTP
   PrintWriter out = réponse.getWriter(); //Obtenir la sortie Writer
  HttpSession session = request.getSession(true);
               //Obtenir le objet de session
   //Imprimer Balise HTML
  out.println("");
  out.println("");
  out.println("");
 out.println("");
  out.println("");

  Date créé = new Date( session.getCreationTime());
          //Obtenir l'heure à laquelle l'objet de session a été créé
   Date accessed = new Date(session.getLastAccessedTime());
           //     out.print ln("ID " + session.getId()+" ");
          //Récupérer l'identifiant de la session et l'imprimer
   out.println("Created: " +created+" ");

                 out.println ("Créé : " + créé+" " ); st Accès : " + accès+" ");

      //Imprimer l'heure du dernier accès

   session.setAttribute("UID","12345678");
    //Ajouter une variable UID=12345678 en session
   session.setAttribute("Name","Tom");
     //Ajouter une variable Name=Tom en session


   Enumeration e = session.getAttributeNames();
     //Obtenir l'objet d'énumération du nom de la variable dans la session
   while (e.hasMoreElements()) { //Parcourir chaque variable
    String //Obtenir le nom en premier
   Valeur de chaîne = session.getAttribute (name).toString ( ); //Imprimer le balisage HTML
  out.println("");
   }
  }
 }



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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer