Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3900 connectés 

 


Dernière réponse
Sujet : [java][jsp][servlet] Pb de perte d'ID de session entre servlet et jsp
darklord

Deepcore a écrit a écrit :

Ouais mais en fait je suis un Boolay moi  :D  
Crétin que je suis, j'ai pas pensé qu j'avais une page intermediaire qui, elle, ne récrit pas l'URL. Donc forcément, mon ID était perdu en cour de route. Putain je suis strop con...




 
 
 :sarcastic:


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
darklord

Deepcore a écrit a écrit :

Ouais mais en fait je suis un Boolay moi  :D  
Crétin que je suis, j'ai pas pensé qu j'avais une page intermediaire qui, elle, ne récrit pas l'URL. Donc forcément, mon ID était perdu en cour de route. Putain je suis strop con...




 
 
 :sarcastic:

deepcore Ouais mais en fait je suis un Boolay moi  :D  
Crétin que je suis, j'ai pas pensé qu j'avais une page intermediaire qui, elle, ne récrit pas l'URL. Donc forcément, mon ID était perdu en cour de route. Putain je suis strop con...
 
Merci quand même  :jap:
darklord mais tu t'en fous de transmettre ou pas transmettre ton ID. C'est complètement transparent pour toi. Si ta JSP est invoquée comme ca
 
http://site.com/jsp/majsp.jsp?jses [...] therparams ..
 
tu auras accès de manière transparente à l'objet session. Et j'ai répondu à te question, en ce sens qui si tu proposes des liens sur ta page JSP ils doivent etre encodées via encodeURL sinon tu perdras ta session si le user clique sur le lien
 
Pour etre sur que ca marche, tu peux faire ca dans ta servlet

Code :
  1. HttpSession s = request.getSession(); // pour etre sur que la session est crée
  2. // ajout d'un machin bidon
  3. s.setAttribute("toto", new String("coucou" ));
  4. URL dest = res.encodeURL("/jsp/page.jsp" )
  5. System.out.println("URL encodée : "+dest);
  6. RequestDispatcher dispatcher = context.getRequestDispatcher(dest);
  7. dispatcher.forward(req, res);


 
et dans ta jsp
 

Code :
  1. <%= session.getAttribute("toto" ) %>


 
A+

 

[jfdsdjhfuetppo]--Message édité par DarkLord--[/jfdsdjhfuetppo]

deepcore Désolé, j'ai mal cherché  :jap: , mais tu ne réponds pas vraiment à ma question car je parle de encodeRedirectURL(). encodeURL() ne marche pas dans mon cas (ou je l'utilise mal, ou je sais pas...), je vois pas trop comment faire avec ca:
 
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher(res.encodeURL("/jsp/
page.jsp" ));
System.out.println(req.getRequestedSessionId());
dispatcher.forward(req, res);
 
là, c'est ok j'ai mon ID dans ma console, et là (page.jsp):
 
<%
 System.out.println("Body.jsp---> " + request.getRequestedSessionId());
 url = response.encodeURL("http://localhost:8080/Monitor/servlet/Controler?case=1" ); %>  
 
<form method="post" action="<%=url%>" target=_parent>
 
Et j'ai null dans ma console cette fois-ci.
 
Alors je vois donc pas trop comment faire transmettre l'ID avec encodeURL et mon RequestDispatcher.
darklord bin c'est justement à ca que ca sert gros malin. Tu ne fais pas de gestion de session en URL rewritting tant que tu n'appelles pas cette méthode pour réécrire toutes tes URL "locales"
 
Tu as regardé la javadoc avant dire que tu ne trouves rien?

Citation :


encodeURL
public java.lang.String encodeURL(java.lang.String url)Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. For example, if the browser supports cookies, or session tracking is turned off, URL encoding is unnecessary.  
For robust session tracking, all URLs emitted by a servlet should be run through this method. Otherwise, URL rewriting cannot be used with browsers which do not support cookies.
 
Parameters:
url - the url to be encoded.
Returns:
the encoded URL if encoding is needed; the unchanged URL otherwise.


 
quite straigthforward ...

 

[jfdsdjhfuetppo]--Message édité par DarkLord--[/jfdsdjhfuetppo]

deepcore Ben voila:
J'ai une servlet qui appelle une JSP avec RequestDispatcher, jusque là tout va bien.
Pb: je fais une gestion des sessions avec réécriture d'URL et ma session est perdue entre ma serlet et ma JSP.
Là je me demande si encodeRedirectURL() pourraît pas me servir mais impossible de trouver de la doc qui m'indique à quoi ça sert exactement.
 
Enfin bon, j'ai presque plus de cheuveux à force de me les arracher, alors si vous pouviez m'aider.... :cry:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)