Bonjour a tous,
J'ai créé un serveur Java, grâce à la classe HTTPServer... Je voudrais savoir si c'est possible d'ouvrir une session pour chaque client qui se connecte ..
Si oui comment faire
Merci d'avance
Bonjour a tous,
J'ai créé un serveur Java, grâce à la classe HTTPServer... Je voudrais savoir si c'est possible d'ouvrir une session pour chaque client qui se connecte ..
Si oui comment faire
Merci d'avance
Salut,
Une session, c'est juste un conteneur d'informations. Et pour pouvoir l'associer à un "utilisateur", il te suffit de définir un identifiant, que cet "utilisateur" retournera dans ses requêtes à chaque appel, pour que le serveur soit capable de retrouver le bon conteneur associé (il en maintient une liste en mémoire). Ce que fait le JSESSIONID, un cookie placé par le serveur dans la première réponse à une requête sans ce cookie, et que le client lui renvoie, et qu'il renvoie au client ensuite... Il faut également prévoir un mécanisme qui permet de supprimer une session (expiration) de la mémoire du serveur.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Les JSESSIONID c'est pas quand on utilise des servlets?
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
J'arrive bien à mettre le cookie dans l'entête de ma réponse(il apparait quand j'affiche mon header) mais après dans les prochaines requête il ne me le renvoie pas
Pour ajouter le cookie à l'entête j'ai fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part responseEntete.add("Set-Cookie","ID=Utilisateur1")
Il est renvoyé par le client dans le header "Cookie", et c'est au serveur de le renvoyer systèmatiquement dans les headers sous le header Set-Cookie.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Je ne sais pas : sans voir tout le code qu'il y a derrière responseEntete.add("Set-Cookie","ID=Utilisateur1") et quand tu l'appelles, ni comment tu fais pour vérifier que ton client obtient bien le cookie, ni comment tu fais pour savoir que le client ne renvoie pas la session (dans le header "Cookie").
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
reponseEntête est déclaré de la façon suivante :
requeteEntete de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Headers reponseEntete = exchange.getResponseHeaders()
J'ajoute un cookie dans l'entête de ma réponse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Headers reponseEntete = exchange.getRequestHeaders()Pour afficher mon entête de réponse je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part reponseEntete.add("Set-Cookie","ID=Utilisateur1")Pareil pour la requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part requeteEntete.values()
Sa m'affiche tous les éléments des entêtes sous forme de ListArray(date,Accept-Encoding,Cache-control...)
Quand j'affiche mon ID=Utilisateur1 est bien dans reponseEntete mais pas dans requeteEntete.
Et après chaque requête envoyé j'ai bien ID=Utilisateur1 dans ma réponse quand je parcours les pages du serveur
J'ai aussi remarqué que Google Chrome n'affiche pas le cookie quand je fais "Inspecter l'élement" et ça que ce soit l'entête de la réponse ou l'entête de la requête
Je ne connais pas le code de la classe HttpServer que tu utilises, mais quand je vois
je me demande sur quelle responseEntete est fait le add() : sur celle déclarée dans le premier code, ou le second ?
Ensuite, ne connaissant pas le code de cette méthode, elles pourraient tout aussi bien être comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void add(String jemenfous, String jemenfousaussi) { // je ne fais rien et je ne m'en porte pas plus mal }
Ok, a priori, la réponse à mes 2 premières remarques est que tu ajoutes bien le header dans la réponse, et que c'est bien stocké quelque part. On ne sait pas si c'est vraiment envoyé dans la réponse.
Où ? Quand tu regardes les headers dans l'outil de développement de ton navigateur ?
Ah... donc c'est possiblement non envoyé dans la réponse. Tu devais te faire un petit sniffer http et l'utiliser en proxy, justement pour inspecter ce qu'il s'échange entre client et serveur...
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Voici la doc concernant la classe HttpServer : http://docs.oracle.com/javase/8/docs...ttpServer.html
Je me suis trompé il y a un Header qui s'appelle reponseEntete et l'autre requeteEntete.
La fonction add prend deux string (le premier le nom le deuxième la valeur)
C'est a dire si tu fais reponseEntete.add("Content-Type", "image/png"), il va ajouter la ligne "Content-Type : image/png" à l'entête de réponse. C'est une méthode de la classe HTTPServer
Les entêtes de requête/réponse s'affiche dans la console de Eclipse grâce a System.out.println(reponseEntete.values()) par exemple
Bah, déjà c'est une abstraction cette classe. Ensuite, tu ne devrais pas utiliser des classes de com.sun. Elles ne font pas parties du JDK standard.
Et puis, elles sont où les méthodes getResponseHeaders() et getRequestHeaders(), dans cette classe ?
ça ne garantit absolument pas que c'est écrit dans le flux de la réponse.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
getResponseHeader et geRequestHeader font parti de la classe HttpExchange (voir doc : https://docs.oracle.com/javase/7/doc...pExchange.html)
Tu suis bien le cycle de vie indiquée dans la documentation de cette classe :
En particulier le point 5, avant le point 6...Envoyé par javadoc
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
mERci je n'avais pas tout mis dans le bon ordre
Partager