Portée de session Java

J'étudie la programmation comme passe-temps. J'ai commencé mes études parce que je voulais créer un site de vente de livres d'occasion, mais pour générer dynamiquement des pages Web et traiter des données sur le serveur, la connaissance de Java Servlet (Java Servlet) est nécessaire. J'ai commencé à étudier à ... (^ _ ^;) Si l'on considère le site de livres d'occasion comme exemple, le concept de session, qui contient les informations que le client a mises dans le panier, n'était pas facile à comprendre, j'ai donc écrit cet article !! ヾ ^ _ ^ ♪

--Session --Mécanisme pour maintenir le statut de chaque utilisateur

--Dans le servlet, manipulez à l'aide de l'interface javax.servlet.http.HttpSession

 CounterServlet.java


package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class CounterServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

		//1.Obtenir la session
		HttpSession session = request.getSession();

		//2.Récupérer des objets d'une session
		Integer count = (Integer)session.getAttribute("count");

		//3.Compteur+1
		if(count == null){
			count = new Integer(0);
		}
		count = new Integer(count.intValue() + 1);

		//4.Stocker des objets en session
		session.setAttribute("count", count);

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html><body>");

		//Afficher l'ID de session
		out.println("<p>sessionId=" + session.getId());

		//Afficher l'ID de session
		out.print("<p>count=" + count);

		//Afficher le lien vers ce servlet
		String linkurl = request.getRequestURI();
		out.println("<p><a href=\"" + linkurl + "\">RELOAD</a>");
		out.println("</body></html>");
	}

}
  1. Lors de la création de l'objet HttpSession, le serveur d'application attribue un identifiant unique "ID de session". L'identité de session semble être garantie par cet ID de session.
  2. Récupérez l'objet nommé "count" à partir des attributs de session et transtypez-le en type Integer. La première demande n'a pas d'objet nommé count enregistré dans les attributs de session, donc la valeur de count sera nulle.
  3. Comptez Puisqu'il est nul dans la première étape, remplacez 0.
  4. Dans la méthode setAttribute, enregistrez la valeur après avoir ajouté 1 dans l'attribut de session.

Passer des données dans la portée de la session Les données enregistrées dans l'étendue de la demande n'ont pas pu être transmises entre les demandes, mais les données enregistrées dans l'étendue de la session peuvent être transmises.

Méthodes de manipulation d'objets à portée de session

Object getAttribute(java.lang.String name)
Obtient l'objet spécifié par l'argument. Renvoie null s'il n'existe pas.
Étant donné que le type renvoyé est le type Object, il semble qu'il soit souvent utilisé en le castant de manière appropriée.

void setAttribute(java.lang.String name, java.lang.Object value)
Enregistrez l'objet spécifié par la valeur d'argument avec le nom du nom.

void removeAttribute(java.lang.String name)
Supprime l'objet spécifié par le nom de l'argument.

java.util.Enumeration getAttributeNames()
Renvoie une liste de noms enregistrés.

Expiration de la session Si vous ne supprimez pas les données de session, les données inutilisées resteront sur le serveur. Pour contourner ce problème, le serveur d'applications dispose d'un mécanisme pour vérifier le temps écoulé depuis le dernier accès du client et le supprimer.

web.xml


<session-config>
        <session-timeout>3</session-timeout>
</session-config>

Recommended Posts

Portée de session Java
Portée de la variable Java (portée)
Portée de la variable Java
Portée
Java
Java
Portée de la requête Java Servlet / JSP, partie 1
[Session d'étude interne] Gestion des exceptions Java (2017/04/26)
[Java] Syntaxe orientée objet --Classe / champ / méthode / portée
[Mémo de la session d'étude] Java Day Tokyo 2017
[Connaissance de base de Java] Portée des variables
Apprendre Java (0)
[Java] tableau
Résumé de la session d’étude interne des recrues [Java]
Java protégé
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
Tableau Java
[Java] ArrayDeque
java (méthode)
Journée Java 2018
Chaîne Java
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
java réfléchissant 获 获 举
java (interface)
Tableau Java
Étudier Java ―― 1
[Java] Array
[Java] Polymorphisme
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
[Java] Héritage
FastScanner Java
Fonctionnalités Java
java débutant 3
Mémo Java
java (encapsulation)
Héritage Java
[Java] Surcharge
Les bases de Java
Décompiler Java
note java
java débutant
interface [java]