Maison  >  Article  >  développement back-end  >  Développement backend Java : gestion de l'état du client API à l'aide des cookies de servlet Java

Développement backend Java : gestion de l'état du client API à l'aide des cookies de servlet Java

WBOY
WBOYoriginal
2023-06-17 10:27:09845parcourir

Avec le développement continu d'Internet, le développement d'applications réseau est devenu de plus en plus important. Dans ce processus, la gestion de l’état est extrêmement importante pour les applications. Qu'il s'agisse de la connexion de l'utilisateur, du panier, de l'historique de navigation ou d'autres statuts, ils doivent être gérés.

Sous l'architecture de séparation front-end et back-end, l'API RESTful est devenue la méthode de développement côté serveur principale. Dans les clients API, les cookies constituent la méthode de stockage d'état la plus courante. Cet article explique comment utiliser Java Servlet Cookie pour la gestion de l'état du client API.

  1. Qu'est-ce qu'un cookie

Le cookie est un petit fichier texte qui peut être stocké sur le client (généralement un navigateur) pour le stockage lié à l'application informations sur l'état. Lorsqu'un utilisateur accède à une application Web, l'application peut envoyer un cookie au navigateur de l'utilisateur via un en-tête de réponse HTTP, et le navigateur enregistre le cookie localement. La prochaine fois que l'utilisateur visitera l'application, le navigateur enverra automatiquement le cookie qui lui est associé et l'application pourra lire les informations d'état du cookie.

Les cookies ont les caractéristiques suivantes :

  • Les cookies sont stockés sous forme de paires clé-valeur
  • Chaque cookie possède un nom et valeur correspondante ;
  • Les données stockées dans le cookie seront envoyées au serveur avec la requête HTTP
  • Vous pouvez définir le nom de domaine et le chemin d'envoi ; cookie à ; #🎜🎜 #
  • Vous pouvez définir le délai d'expiration du cookie, les attributs de sécurité, etc.
Par conséquent, les cookies sont devenus un moyen très pratique de gérer l'état. Les applications peuvent utiliser des cookies pour stocker des informations d'état telles que les identifiants de session et les valeurs des clés utilisateur.

    Utilisation des cookies dans les servlets Java
Dans les servlets Java, les objets Cookie sont utilisés pour gérer les cookies. L'utilisation de cookies pour stocker des informations d'état nécessite les étapes suivantes :

    Création d'un objet Cookie
Vous pouvez utiliser le code suivant pour créer un objet Cookie :#🎜🎜 #
Cookie cookie = new Cookie("cookie_name", "cookie_value");

Parmi eux, "cookie_name" est le nom du cookie, et "cookie_value" est la valeur du cookie.

Ajouter un cookie à l'en-tête de réponse HTTP
  1. response.addCookie(cookie);
Obtenir un cookie à partir de l'en-tête de requête HTTP
    #🎜 🎜#
    Cookie[] cookies = request.getCookies();
  1. Lire les données du cookie
    for (Cookie cookie : cookies) {
        if (cookie.getName().equals("cookie_name")) {
            String cookieValue = cookie.getValue();
            // Do something with cookieValue
        }
    }
  1. Lorsque le client envoie une requête HTTP, le navigateur enverra le cookie stocké localement au côté serveur. Utilisez la réponse.addCookie(cookie) du Servlet pour ajouter le cookie à l'en-tête de réponse. Lorsque le navigateur reçoit la réponse, il stockera le cookie localement et l'enverra au serveur via l'en-tête lors de la prochaine requête.
Ce qui suit est un exemple de mise en œuvre spécifique.

Exemple d'implémentation d'une gestion de session

  1. Ce qui suit est un exemple de gestion de session Java Servlet simple. Dans cet exemple, nous utilisons des Cookies. Pour stocker l'ID de session utilisateur afin d'obtenir l'effet de gestion de l'état du client.
  2. import javax.servlet.ServletException;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.Optional;
    import java.util.UUID;
    
    public class SessionServlet extends javax.servlet.http.HttpServlet {
        private static final long serialVersionUID = -3436700273785948283L;
        private static final String SESSION_COOKIE_NAME = "session_id";
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setContentType("text/html");
            resp.setCharacterEncoding("UTF-8");
    
            Optional<Cookie> sessionCookie = getSessionCookie(req);
            sessionCookie.ifPresent(cookie -> {
                resp.getWriter().write(String.format("Found session cookie with value %s
    ", cookie.getValue()));
            });
    
            if (!sessionCookie.isPresent()) {
                String sessionId = generateSessionId();
                Cookie newSessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId);
                resp.addCookie(newSessionCookie);
                resp.getWriter().write(String.format("No session cookie found, created session with id %s
    ", sessionId));
            }
        }
    
        private String generateSessionId() {
            return UUID.randomUUID().toString();
        }
    
        private Optional<Cookie> getSessionCookie(HttpServletRequest req) {
            Cookie[] cookies = req.getCookies();
            if (cookies != null) {
                for (Cookie cookie : cookies) {
                    if (cookie.getName().equals(SESSION_COOKIE_NAME)) {
                        return Optional.of(cookie);
                    }
                }
            }
            return Optional.empty();
        }
    }
Dans le code ci-dessus, nous vérifions d'abord si le client possède déjà un ID de session. Sinon, générons-en un, enregistrez-le dans Cookie et renvoyez-le au client. Si l'ID de session existe déjà, il est envoyé au client.

Cet exemple montre comment utiliser Java Servlet Cookie pour la gestion de l'état.

Conclusion

  1. Cet article explique comment utiliser Java Servlet Cookie pour gérer le statut du client API. Dans les applications Web, la gestion de l'état est très importante et les cookies sont un moyen très courant de gestion de l'état. Dans Java Servlet, l'utilisation de cookies nécessite la création d'un objet Cookie, son ajout à l'en-tête de réponse HTTP, l'obtention du cookie à partir de l'en-tête de requête HTTP et la lecture des données du cookie. En implémentant un exemple simple de gestion de session, nous montrons comment utiliser les cookies de servlet pour la gestion des états.

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