Maison >Java >javaDidacticiel >Comment implémenter l'état de session de Session en JAVA

Comment implémenter l'état de session de Session en JAVA

WBOY
WBOYavant
2023-05-11 13:10:06702parcourir

La session a été inventée pour combler les limitations du protocole HTTP. Veuillez noter le fonctionnement du protocole HTTP : l'utilisateur fait une demande et le serveur répond. La connexion entre le client et le serveur est discrète et non continue. 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, qui implémente 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 si la session n'est pas actuellement définie. , créez-en une nouvelle, vous pouvez également utiliser la méthode getSession(true)
(2) pour écrire 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) Lire la variable de 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, par exemple :
String uid = (String) session.getAttribute("uid");
HttpSession.getValue(name) peut également être utilisé, 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
//97色色SessionExample.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet .http .*;
//Importer les packages logiciels nécessaires
public class SessionExample extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse réponse)
lance IOException, ServletException //Implémenter la méthode doGet
{
response.setContentType( "text/ html"); //Définissez l'en-tête HTTP
PrintWriter out = réponse.getWriter(); //Obtenez la sortie 97gan
HttpSession session = request.getSession(true);
//Obtenez l'objet de session
// Imprimez le balisage HTML
out. println("");
out.println("");
out.println("");
out.println("");
out.println("");
Date de création = nouvelle Date(session. getCreationTime());
/ /Obtenir l'heure à laquelle l'objet de session a été créé
Date accessed = new Date(session.getLastAccessedTime());
//Obtenir l'heure à laquelle l'objet de session a été accédé pour la dernière fois
out.println(" ID " + session.getId()+"< br>");
//Obtenir l'identifiant de session et imprimer
out.println("Created: " +created+"
");
//Imprimer le heure de création de la session
out.println("Last Accessed : " + accessed+"
");
//Imprimer l'heure du dernier accès
session.setAttribute("UID","12345678");
//Ajouter une variable UID=12345678 dans session
session.setAttribute(" Name", "Tom");
//Ajouter la variable Name=Tom dans la session
Enumeration e = session.getAttributeNames();
//Obtenir l'objet d'énumération du nom de la variable dans la session
while (e.hasMoreElements()) { //Parcourez chaque variable
String name = (String)e.nextElement(); //Obtenez d'abord le nom
String value = session.getAttribute(name). toString();
//Obtenir la valeur de 97gan par nom
out.println(name + " = " + value+"
"); //Imprimer
}
out.println(" "); //Imprimer la balise 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