Passer une url en paramètre d'une requete ?

el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 7 juin 2006 à 14:39
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 8 juin 2006 à 17:43
Bonjour,

je voudrais passer une url dans un paramètre de ma requête d'une page A vers une page B. Je veux qu'en cliquant sur le lien "lien vers B" de la page A, quand j'arrive sur la page B, je puisse récupérer l'url exacte de la page A qui l'a appelé.

Je rencontre un problème actuellement avec le caractère & qui se trouve dans mon url_A.ex d'url_A : http://localhost:8080/monsite/mapage.jsp?id1 & cle11

lorsque j'appelle l'url_B, en faisant un [<%= url_B + ">lien]
l'url_A vaut  : http%3A%2F%2Flocalhost%3A8080%2Fmonsite%2Fmapage.jsp%3Fid%3D1 %26 amp%3B
cle1%3D1
%3D -> =
%3F -> ?
%3A -> :
%2F -> /
%26 -> &
%3B -> ;
amp%3B -> &

l'url de la page B est donc :
http://localhost:8080/monsite/mapage.jsp?id=2&jsp=mapage2.jsp&url=http%3A%2F%2Flocalhost%3A8080%2Fmonsite%2Fmapage.jsp%3Fid%3D1%26amp%3B
cle1%3D1

quand je veux récupérer le paramètre "url" avec un request.getParameter("url"), l'url que je récupère a le code 'amp;' en trop a la suite de mon '&'

Comment faire pour encoder une url et la passer dans une requete ??

Merci d'avance

7 réponses

cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
7 juin 2006 à 14:56
Pour encoder une URL il faut utiliser URLEncoder, cf la javadoc pour les méthodes associées

<%String url = URLEncoder.encode(tonurl, "UTF-8");%>

puis apres pour la passer dans ta requete tu fais quelque chose comme :

[page?url=<%=url%> page]

A tester ...
voila @++

***  Kakol ***
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
8 juin 2006 à 09:38
Hmm, je crois que j'avais déjà essayer, mais je viens de (re)tester, et l'url que je décode est :

http://localhost:8080/mapage.jsp?valeur1=1&amp;id=2
alors que je devrais retrouver :
http://localhost:8080/mapage.jsp?valeur1=1&id=2

J'ai toujours un amp; en trop...
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
8 juin 2006 à 11:16
le caractère &amp; est le codage du caractère &.
si je comprends bien tu veux remplacer le &amp; dans ton url par & c'est bien ça?
dans se cas tu peux faire   tonurl = tonurl.replaceAll("&amp;", "&");
cela remplacera le caractère &amp; par le caractère &.
Essaie si ça marche ...

***  Kakol ***
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
8 juin 2006 à 11:21
mais je me pose une question. est-ce vraiment génant que tu aie un &amp; au lieu de & ? puisque celui-ci sera interprété de la même façon

***  Kakol ***
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
8 juin 2006 à 15:29
en fait, actuellement, la bidouille c'est que je fais un replaceAll("amp;","") car je veux que "&amp;" soit interprété en "&" tout court.
ah bah en fait, c la meme chose que ce que tu propose :) replaceAll("&amp;","&")

Concernant ta question, ca pose pb, car le but du truc est d'envoyer une url par mail, et quand je m'envoie l'url, et que je clique dessus pour ouvrir la page, bah il trouve pas la page, car il y a "amp;" en trop, logique.
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
8 juin 2006 à 16:04
ok je vois pour la question de l'envoie de l'url.
Mais ça marche en faisant le replaceAll? T'obtiens bien la bonne url? ou t'as encore une erreur?

***  Kakol ***
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
8 juin 2006 à 17:43
non, non, avec le replaceAll ca marche, mais c pas propre, car là je corrige le pb pour un seul caractère, donc si un jour; il faut que ca marche avec une url avec un autre caractère à la con, bah, l'url que j'enverrais dans le mail sera pas bonne, oups :-)

C'est pour ca, si quelqu'un lit ce message (ou plutôt cette bouteille à la mer), et connaît une solution, je suis toujours preneur,

merci :p
0
Rejoignez-nous