2011-06-11 3 views
2

J'écris un petit serveur web en Java, en utilisant HttpCore pour la plupart des requêtes/réponses Http etc.
Maintenant je voudrais pouvoir créer, stocker et charger des cookies. Je ne trouve rien dans HttpCore et je ne suis pas familier avec les autres bibliothèques. Existe-t-il une bibliothèque existante (de préférence avec un exemple de travail) pour gérer les cookies?Création et chargement de cookies en Java

Modifier: Je vois que j'étais un peu confus concernant l'utilisation des cookies. Je ne suis pas complètement sûr de comment cela fonctionne, mais je veux garder une session, et accéder aux variables de session du serveur Web. Comment puis-je faire ceci? Si le navigateur enregistre des cookies, les envoie-t-il au serveur? Comment puis-je y accéder?

+0

J'espère que vous avez lu à propos de ["What HttpCore is NOT"] (http://hc.apache.org/httpcomponents-core-ga/tutorial/html/preface.html#d4e39). Un serveur ne créera, ne chargera et ne conservera pas les cookies à moins qu'il ne lui soit dit de le faire. Vous devrez créer une API pour votre serveur qui sera appelée par un développeur (par exemple). Jetez un oeil au fonctionnement sous-jacent de Tomcat, si vous avez besoin d'aide. –

+0

Eh bien, alors j'apprécierais que vous m'indiquiez dans la direction d'une bibliothèque qui manipule des biscuits. –

+0

J'ai modifié mon commentaire. Jetez un oeil à un conteneur de servlet, qui est le moyen le plus facile de comprendre comment cela fonctionne. Évitez de regarder HttpClient car cela vous donne la vue côté client du scénario. –

Répondre

2

La prise en charge de session dans un serveur est généralement générée à l'aide d'un magasin d'objets. Un simple magasin d'objets serait une carte ou un ensemble. Les objets dans ce magasin (les valeurs dans le cas de la carte) ont un mappage un-à-un avec le concept d'une session logique, c'est-à-dire pour chaque session créée par le serveur, il y aura un article dans le magasin.

Les sessions gérées par le magasin peuvent autoriser l'association d'attributs. La liste de ces attributs peut ne pas être connue auparavant, vous aurez donc besoin d'une autre carte à cette fin; les clés seraient les noms d'attribut, et les valeurs seraient des valeurs d'attribut.

En ce qui concerne la gestion du magasin de sessions, vous devez créer une nouvelle session dans le magasin, lorsqu'un appel API est effectué sur votre serveur. En termes plus simples, si une application Web décide qu'elle a besoin de créer une session, l'API du serveur doit fournir l'interface nécessaire pour le faire. Créer l'objet session seul ne suffit pas; Vous aurez également besoin d'écrire l'ID de session en tant que cookie lors de la création de la session. L'API doit permettre d'écrire la réponse appropriée dans un tel cas. Vous pouvez jeter un oeil à l'API Servlet, spécifiquement pour les classes HttpServletRequest et HttpSession, et à une implémentation de conteneur de servlets à cette fin. En ce qui concerne l'accès aux cookies à partir d'une requête, vous devrez analyser les en-têtes des requêtes HTTP entrantes pour vérifier les cookies envoyés par le navigateur. Les navigateurs et autres clients HTTP doivent utiliser l'en-tête de demande Set-Cookie à cette fin. Vous devez vous assurer qu'un objet de session peut être renvoyé à l'application Web uniquement lorsqu'un cookie valide est fourni dans la demande.