URL mit mehreren Parametern auslesen und weiterleiten
andy
- java
0 Stefan0 andy
0 Maxx0 Axel Richter
Hallo,
Ich möchte einen Parameter, was als value einen URL beinhaltet, mit der methode request.getParameter() holen und dann mit response.sendRedirect() weiterleiten.
Das Problem ist, dass die URL selbst vile Parametern enthaltet und alle Parametern von dem URL werden abgeschnitten.
hier das Beispiel:
die aufgerufene URL lautet : http://www.hostname.de/test.jsp?sParam=http://www.myhost.de/search.jsp?param1=test1¶m2=test2¶m3=test3
String sParam = request.getParameter("param");
//in dem Fall ware sParam = http://www.myhost.de/search.jsp?param1=test1
// und alle weiteren Parametern ¶m2=test2¶m3=test3 werden abgeschnitten
// und man wird nicht in der richtigen Seite weitergeleitet.
response.sendRedirect(sParam);
wie kann ich es schaffen, dass ich alle parametern in der richtigen reichenfolge
hole??z.B http://www.myhost.de/search.jsp?param1=test1¶m2=test2¶m3=test3
Danke für ein Antwort
Schau mal hier nach.
http://de.selfhtml.org/javascript/objekte/string.htm#split
Versuch mal den Querystring zu zerlegen...
Gruss Stefan
danke euch allen!
genauso habe ich es gemacht, den string mit dem request.getQueryString() geholt und dann mit dem split abgeschnitten.
Hat super funktioniert.
Danke nochmals,
Gruss, Andy!
Schau mal hier nach.
http://de.selfhtml.org/javascript/objekte/string.htm#splitVersuch mal den Querystring zu zerlegen...
Gruss Stefan
Hallo Andy,
die aufgerufene URL lautet:
http://www.hostname.de/test.jsp?sParam=http://www.myhost.de/search.jsp?param1=test1¶m2=test2¶m3=test3
http://www.hostname.de/test.jsp?sParam=http://www.myhost.de/search.jsp%3Fparam1=test1%26param2=test2%26param3=test3
String sParam = request.getParameter("param");
sollte dir dann den gesamten Querystring
http://www.myhost.de/search.jsp%3Fparam1....%26param3=test3 liefern.
Und natürlich brauchst du noch ein URLDecode für die Weiterverarbeitung.
HTH
Jochen
Hallo,
Ich möchte einen Parameter, was als value einen URL beinhaltet, mit der methode request.getParameter() holen und dann mit response.sendRedirect() weiterleiten.
Das Problem ist, dass die URL selbst vile Parametern enthaltet und alle Parametern von dem URL werden abgeschnitten.hier das Beispiel:
die aufgerufene URL lautet : http://www.hostname.de/test.jsp?sParam=http://www.myhost.de/search.jsp?param1=test1¶m2=test2¶m3=test3
String sParam = request.getParameter("param");
//in dem Fall ware sParam = http://www.myhost.de/search.jsp?param1=test1
// und alle weiteren Parametern ¶m2=test2¶m3=test3 werden abgeschnitten
Das wundert Dich? Das Zeichen "&" ist nun mal in einem URI-Query-Part reserviert, hat also eine besondere Bedeutung, nämlich die, einzelne Parameter zu trennen. Soll das Zeichen selbst als Parameter-Wert gelten, muss es URI-encodiert werden. Das Gilt übrigens genau so für die Zeichen ";", "/", "?", ":", "@", "=", "+", ",", und "$".
Die aufgerufende URI sollte also lauten:
http://www.hostname.de/test.jsp?sParam=http%3A%2F%2Fwww.myhost.de%2Fsearch.jsp%3Fparam1%3Dtest1%26param2%3Dtest2%26param3%3Dtest3
Wenn Dein test.jsp immer nur mit dem einen Parameter sParam aufgerufen werden kann, könntest Du es auch mit .getQueryString() versuchen und dann bei "sParam=" abschneiden.
Nachteil ist dann aber, dass nur der eine Parameter möglich ist. Wie sollen die einzelnen Parameter nämlich auseinandergehalten werden, wenn das dafür vorgesehene Zeichen "&" als Wertinhalt erlaubt ist?
viele Grüße
Axel