2010-02-02 3 views
0

Laissez-moi le réécrire. J'écris un nouveau serveur http en utilisant des sockets en java-language (pas javascript) et je veux dire au client de mettre cookie. Je voudrais le faire en javascript (setin en lisant le cookie). Si ce n'est pas possible, existe-t-il d'autres solutions? Merci à tous.Définir et lire/Récupérer le cookie en utilisant javascript dans un fichier java (.java)

+0

S'il vous plaît reformuler votre question !! Etes-vous en train d'écrire un nouveau serveur ou simplement en utiliser un? Voulez-vous le code en javascript ou java? –

+0

Si vous écrivez le serveur en Java, et n'utilisez pas JavaScript, où le JavaScript pour gérer le cookie entre-t-il en jeu? Est-ce JavaScript côté client? Si c'est le cas, cela rend le serveur complètement hors de propos. – Quentin

Répondre

3

Votre question/exigence est extrêmement vague. Ne confondez-vous vraiment pas JavaScript avec Java lui-même ou peut-être JSP? Ou utilisez-vous JavaScript côté serveur? Pourquoi voudriez-vous faire cela pour un "serveur http"? Pourquoi voudriez-vous écrire un serveur HTTP plutôt que d'en utiliser un existant comme Apache HTTP Server ou Apache Tomcat?

Au moins, en JavaScript, vous pouvez gérer les cookies par document.cookie. En Java, cela dépend du contexte dans lequel vous parlez. Si le contexte est Servlet, utilisez HttpServletResponse#addcookie() et HttpServletRequest#getCookies(). Si dans le contexte JSP EL, utilisez ${cookie}. Si dans le contexte de streaming d'URL, utilisez URLConnection#addRequestProperty() et URLConnection#getHeaderFields(). Si dans le contexte Socket "brut", il suffit d'adhérer à la spécification de gestion d'état HTTP RFC 2965 et indirectement également à la spécification HTTP 1.1 RFC 2616 lors de l'écriture des données "brutes" via le socket. Mais vous devriez déjà savoir que vous avez l'intention de créer un serveur HTTP.

1

Si vous écrivez votre propre serveur HTTP, alors vous devriez être en mesure de définir l'en-tête HTTP directement:

HTTP/1.1 200 OK 
Content-type: text/html 
Set-Cookie: name=value 

Vous pouvez également envoyer javascript dans le navigateur pour le faire (en incluant votre script dans un Page HTML que vous donnez au client), mais je ne vois pas vraiment l'avantage de le faire de cette façon.

L'exemple a été prise à partir de la page wikipedia suivante:

http://en.wikipedia.org/wiki/HTTP_cookie

Questions connexes