Maison  >  Article  >  Java  >  Comment utiliser les cookies dans JSP ? (exemple de code)

Comment utiliser les cookies dans JSP ? (exemple de code)

青灯夜游
青灯夜游original
2019-02-11 12:53:032930parcourir

Un cookie est un petit élément d'information stocké sur l'ordinateur de l'utilisateur ; le serveur Web utilisera le cookie pour identifier l'utilisateur lors de sa prochaine visite. L'article suivant vous donnera une brève compréhension des cookies et vous expliquera comment utiliser JSP pour gérer les cookies. J'espère qu'il vous sera utile. [Recommandation du didacticiel vidéo : Tutoriel JSP]

Comment utiliser les cookies dans JSP ? (exemple de code)

Comment fonctionnent les cookies

Le cookie sera stocké sur l'ordinateur de l'utilisateur sous la forme d'une chaîne de paires [clé|valeur]. De plus, les cookies ont des propriétés telles que le domaine, le chemin et le délai d'attente.

Chaque fois qu'un utilisateur visite un site Web avec les cookies activés, le serveur Web ajoute des données supplémentaires aux en-têtes HTTP et répond au navigateur Web. Le navigateur Web enverra également le cookie dans l'en-tête de la requête HTTP au serveur Web la prochaine fois que l'utilisateur visitera à nouveau le même site.

Les utilisateurs peuvent également désactiver les cookies dans les navigateurs Web prenant en charge la fonction de désactivation des cookies, tels que Firefox, IE...

Comment utiliser les cookies dans JSP ?

JSP fournit une API qui permet une utilisation efficace des cookies via des objets de classe javax.servlet.http.Cookie. Présentons brièvement comment utiliser les cookies dans JSP.

1. Utiliser JSP pour définir Cookie

L'utilisation de JSP pour définir Cookie peut être divisée en trois étapes :

1) Créer un objet Cookie :

Vous devez appeler le constructeur Cookie, par exemple :

Cookie cookie = new Cookie("key","value");

Remarque : Les cookies existent sous la forme de paires clé-valeur, utilisez donc le nom et la valeur du cookie comme paramètres (ils sont toutes des chaînes).

Remarque : Les noms et valeurs des cookies ne peuvent pas contenir d'espaces ou les caractères suivants :

[ ] ( ) = , " / ? @ : ;

2), Définir la durée de validité

Les cookies ont leur propre cycle de vie, qui est appelée période de date d’expiration. Si le délai d'expiration du cookie n'est pas défini, il sera supprimé lorsque l'utilisateur fermera le navigateur Web.

Nous pouvons appeler la méthode setMaxAge() pour définir la période de validité du cookie, c'est-à-dire combien de temps (en secondes) il est valide.

Exemple : Pour définir la période de validité à 24 heures, vous pouvez la définir comme ceci

cookie.setMaxAge(60*60*24);

3), envoyer le cookie à l'en-tête de réponse HTTP

Vous vous devez appeler la méthode Response.addCookie() pour ajouter des cookies aux en-têtes de réponse HTTP. Exemple :

response.addCookie(cookie);

Exemple simple : envoyer un cookie à partir du serveur Web

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="javax.servlet.http.Cookie"%>
<!DOCTYPE html>
<html>
    <head>
        <title>设置Cookie</title>
    </head>
    <body>
<%
        // 编码,解决中文乱码   
       String str = URLEncoder.encode(request.getParameter("name"),"utf-8");
       // 设置 name 和 url cookie 
      Cookie cookie = new Cookie("php中文网","http://www.php.cn/);
       // 设置cookie过期时间为24小时。
      cookie.setMaxAge(60*60*24);
      // 在响应头部添加cookie
      response.addCookie(cookie);
        %>
    </body>
</html>

Lire le cookie à l'aide de JSP

Pour lire le cookie à partir d'une requête HTTP Pour lire les cookies, appelez d'abord la méthode getCookies() de l'objet de requête, qui renvoie la liste des cookies disponibles dans l'en-tête de la requête ; ou utilisez la méthode getName() et la méthode getValue() pour obtenir le nom et la valeur de chaque cookie. Tous ces cookies peuvent ensuite être parcourus. Voici un exemple d'utilisation de la méthode getCookies() pour lire les informations sur les cookies :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="javax.servlet.http.Cookie"%>
<html>
    <head>
        <title>读取Cookie</title>
    </head>
    <body>
        <%
            Cookie[] list = request.getCookies();
            if(list != null){
                for(int i = 0; i < list.length;i++){
                    out.println(list[i].getName() + ":" + list[i].getPath());
                }
            }
        %>
    </body>
</html>

Supprimez les cookies existants à l'aide de JSP

Si vous souhaitez supprimer le cookie qui a été envoyé au navigateur web. Pour un cookie existant sur le serveur, vous pouvez fixer sa date d'expiration à zéro à l'aide de la méthode setMaxAge() de l'objet cookie.

Les étapes sont les suivantes :

● Récupérez un cookie existant et stockez-le dans l'objet Cookie.

● Utilisez la méthode setMaxAge() pour définir la période de validité des cookies à 0.

Exemple : Ce qui suit est un exemple pour supprimer tous les cookies.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="javax.servlet.http.Cookie"%>
<!DOCTYPE html>
<html>
    <head>
        <title>删除cookie</title>
    </head>
    <body>
        <%
            Cookie[] list = request.getCookies();
            if (list != null) {
                for (int i = 0; i < list.length; i++) {
                    list[i].setMaxAge(0);
                    out.println("cookie:" + list[i].getName() + "已删除");
                }
            }
        %>
    </body>
</html>

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

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:
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