Table des matières
1. Cookie
1. Le concept de cookie
2. Création de cookies
3 Obtenez le cookie
4 Modifiez le cookie
5. le cookie
6. cookie.setPath();
1. de session
session est une technologie de session qui est créée et maintenue sur le serveur et enregistrée côté serveur
Obtenez l'objet de session via request.getSession()
Q :
4、session的常用方法
4.1、session存在域对象的数据
4.2、设置session的时效
4.3、强制使session失效
5、session的钝化和活化
三、cookie和session的区别
Maison Java javaDidacticiel Comment utiliser les cookies et la technologie de session en Java

Comment utiliser les cookies et la technologie de session en Java

Apr 23, 2023 pm 06:55 PM
java cookie session

    Solution au protocole http sans état :

    HTTP est un protocole sans état. Les protocoles sans état n'exigent pas que le serveur conserve des informations ou des états sur chaque utilisateur lors de plusieurs requêtes.

    Mais certaines applications Web peuvent devoir suivre la progression de l'utilisateur d'une page à une autre, par exemple lorsque le serveur Web doit personnaliser le contenu de la page Web pour l'utilisateur. Les solutions à ces situations incluent :

    • Utilisation de cookies HTTP.

    • Session côté serveur.

    • Variable cachée (lorsque la page actuelle contient un formulaire)

    • Réécriture d'URL à l'aide de paramètres codés en URI, par exemple /index.php?session_id=some_unique_session_code.

    La raison pour laquelle le protocole a été rendu apatride est que le serveur n'a pas besoin de suivre l'état de plusieurs requêtes, et non qu'il ne puisse pas le faire s'il le souhaite. Cela simplifie le contrat entre le client et le serveur et, dans de nombreux cas (comme par exemple la fourniture de données statiques via un CDN), minimise la quantité de données à transférer. Si le serveur doit maintenir l'état d'accès client, la structure permettant d'émettre et de répondre aux demandes sera plus complexe. En fait, la simplicité du modèle est l’une de ses plus grandes caractéristiques.

    Le cookie est une technologie de session qui est créée et maintenue sur le serveur mais enregistrée côté navigateur

    Scénarios d'application de cookies : mémorisez le nom d'utilisateur et le mot de passe, pas besoin de vous connecter. pendant sept jours

    2. Création de cookies

    //创建cookie
    Cookie cookie = new Cookie("username", "admin");
    //将cookie响应到浏览器
    response.addCookie(cookie);
    Copier après la connexion

    Comment les cookies sont représentés dans les messages :

    Si un cookie est créé sur le serveur et répond au navigateur, le message de réponse apparaîtra : Set-Cookie: username=admin

    Après cela, chaque fois que le navigateur enverra une requête au serveur, il transportera ce cookie, et il apparaîtra dans le message de demande : Cookie : username=admin

    Après avoir répondu au cookie du navigateur, il sera stocké dans la mémoire courante du navigateur, lorsque le navigateur est fermé, la mémoire courante du navigateur sera libérée, les cookies seront donc effacés. Par conséquent, la durée de validité par défaut de la session va du moment où le navigateur est ouvert jusqu'au moment où le navigateur est fermé

    //获取浏览器发送请求所携带的所有cookie
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for (Cookie cookie : cookies) {
            System.out.println(cookie.getName() + "," + cookie.getValue());
        }
    }
    Copier après la connexion

    a> format de valeur, il vous suffit d'en créer des différents avec la même clé. Si vous répondez au navigateur, la valeur du cookie correspondant sera écrasée

    b>Utilisez cookie.setValue()

    /*Cookie cookie = new Cookie("username", "root");
    response.addCookie(cookie);*/
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for (Cookie cookie : cookies) {
            if(cookie.getName().equals("username")){
                cookie.setValue("zhangsan");
                response.addCookie(cookie);
            }
        }
    }
    Copier après la connexion

    Après avoir répondu au cookie du navigateur, il sera enregistré dans la mémoire courante du navigateur, lorsque le navigateur est fermé, la mémoire courante du navigateur sera libérée, le cookie sera donc effacé. Par conséquent, la durée de validité par défaut de la session va du moment où le navigateur est ouvert jusqu'au moment où le navigateur est fermé

    Mais la durée de validité du cookie peut être définie via cookie.setMaxAge()

    a> time est un entier négatif, il n'y a aucun effet, c'est-à-dire la durée de validité Ouvrez le navigateur pour fermer le navigateur

    b> Lorsque la durée de validité définie est 0, cela signifie que le cookie est immédiatement supprimé

    c> la durée de validité définie est un entier positif

    Si la durée de validité est inférieure à une session, le cookie a expiré. Après la durée spécifiée, il sera automatiquement supprimé de la mémoire en cours d'exécution

    Si la durée effective est supérieure à une session, lorsque le navigateur est fermé, les données du cookie seront enregistrées sur le disque. Lorsque le navigateur sera à nouveau ouvert, les données du disque seront restaurées dans la mémoire courante

    Lorsque le cookie est créé et répondu au navigateur, le cookie avec le chemin effectif est défini, uniquement lors de l'accès au chemin spécifié. Le cookie sera transporté

    Session

    1. de session

    session est une technologie de session qui est créée et maintenue sur le serveur et enregistrée côté serveur

    Scénarios d'application de session : enregistrement du statut de connexion de l'utilisateur

    2, Observez les changements dans le message lors de l'obtention de la session

    Obtenez l'objet de session via request.getSession()

    Lorsque request.getSession() est accédé pour la première fois dans cette session pour obtenir l'objet de session, une clé apparaîtra dans le message de réponse. Il s'agit d'un cookie JSESSIONID

    Chaque chaque fois qu'une requête est envoyée au serveur via le navigateur, elle transportera ce cookie JSESSIONID

    Même lors de l'accès au serveur, utilisez request.getSession() pour obtenir à nouveau l'objet de session, tant qu'il y a JSESSIONID dans le cookie du message de requête , ce cookie n'apparaîtra plus dans le message de réponse

    3. Le principe de la séance

    Q :

    Le principe de la séance ?

    Quelle est la relation entre la session et les cookies ?

    Pourquoi obtient-on les mêmes séances en une seule séance ?

    Réponse :

    Lorsque la session est obtenue via request.getSession(), le cookie avec la clé JSESSIONID dans le message de requête sera obtenu

    S'il n'y a pas de cookie avec la clé JSESSIONID dans le message de requête, cela signifie. que la session en cours vient de démarrer, c'est la première fois que l'on obtient l'objet de session dans la session en cours. À ce moment, l'objet de session sera créé à l'intérieur du serveur, et un cookie sera créé avec la clé JSESSIONID et la valeur une séquence aléatoire d'UUID, puis l'objet de session créé sera stocké dans une collection de cartes maintenue par le serveur. avec la séquence aléatoire UUID comme clé, en utilisant l'objet de session comme valeur, et répond enfin au cookie de JSESSIONID au navigateur

    若请求报文中存在键为JSESSIONID的cookie,此时获取该cookie的值,即UUID随机序列,以UUID随机序列为键,从服务器所维护的map集合中就可以获取唯一的session对象

    4、session的常用方法

    4.1、session存在域对象的数据

    void setAttribute(String name, Object value);

    Object getAttribute(String name);

    void removeAttribute(String name);

    4.2、设置session的时效

    session的时效指在指定时间内,若没有对session进行任何的操作,此时session会自动失效

    a>通过web.xml设置,单位是分钟

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    Copier après la connexion

    b>通过session.setMaxInactiveInterval()设置,单位是秒

    session.setMaxInactiveInterval(1800);
    Copier après la connexion
    4.3、强制使session失效

    session.invalidate()

    5、session的钝化和活化

    session的钝化指服务器关闭,但是浏览器没有关闭,此时session中的数据会被序列化到磁盘上

    session的活化指服务器启动,并且浏览器仍然没有关闭,此时会将序列化到磁盘上的数据重新加载到内存中

    注意:若session中存储的是实体类对象,此时若要钝化,则该实体类和该实体类的成员变量也都要实现序列化的接口

    三、cookie和session的区别

    1、cookie存储在浏览器端,session存储在服务器端,因此cookie相对而言不安全

    2、cookie只能存储字符串类型的键值对,session可以存储任意类型的数据,因此若存储相同的数据,cookie可能会产生大量的cookie

    3、由于每次浏览器发送请求都会携带cookie,若有大量的cookie,就会造成网络负担

    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 de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Article chaud

    <🎜>: Dead Rails - Comment apprivoiser les loups
    4 Il y a quelques semaines By DDD
    Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    <🎜>: Grow A Garden - Guide de mutation complet
    2 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Sujets chauds

    Tutoriel Java
    1662
    14
    Tutoriel PHP
    1261
    29
    Tutoriel C#
    1234
    24
    Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

    Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

    PHP: un langage clé pour le développement Web PHP: un langage clé pour le développement Web Apr 13, 2025 am 12:08 AM

    PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

    PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

    PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

    PHP vs autres langues: une comparaison PHP vs autres langues: une comparaison Apr 13, 2025 am 12:19 AM

    PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

    PHP vs Python: fonctionnalités et fonctionnalités de base PHP vs Python: fonctionnalités et fonctionnalités de base Apr 13, 2025 am 12:16 AM

    PHP et Python ont chacun leurs propres avantages et conviennent à différents scénarios. 1.PHP convient au développement Web et fournit des serveurs Web intégrés et des bibliothèques de fonctions riches. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et une bibliothèque standard puissante. Lors du choix, il doit être décidé en fonction des exigences du projet.

    Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

    Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

    Impact de PHP: développement Web et au-delà Impact de PHP: développement Web et au-delà Apr 18, 2025 am 12:10 AM

    PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

    PHP: la fondation de nombreux sites Web PHP: la fondation de nombreux sites Web Apr 13, 2025 am 12:07 AM

    Les raisons pour lesquelles PHP est la pile technologique préférée pour de nombreux sites Web incluent sa facilité d'utilisation, son soutien communautaire solide et son utilisation généralisée. 1) Facile à apprendre et à utiliser, adapté aux débutants. 2) Avoir une énorme communauté de développeurs et des ressources riches. 3) Largement utilisé dans WordPress, Drupal et d'autres plateformes. 4) Intégrez étroitement aux serveurs Web pour simplifier le déploiement du développement.

    See all articles