andy: URL mit mehreren Parametern auslesen und weiterleiten

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&param2=test2&param3=test3

String sParam = request.getParameter("param");

//in dem Fall ware sParam = http://www.myhost.de/search.jsp?param1=test1
// und alle weiteren Parametern &param2=test2&param3=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&param2=test2&param3=test3

Danke für ein Antwort

  1. Schau mal hier nach.
    http://de.selfhtml.org/javascript/objekte/string.htm#split

    Versuch mal den Querystring zu zerlegen...

    Gruss Stefan

    1. 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#split

      Versuch mal den Querystring zu zerlegen...

      Gruss Stefan

  2. Hallo Andy,

    die aufgerufene URL lautet:
    http://www.hostname.de/test.jsp?sParam=http://www.myhost.de/search.jsp?param1=test1&param2=test2&param3=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

    --
    Kritzeln statt texten:
    Scribbleboard
  3. 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&param2=test2&param3=test3

    String sParam = request.getParameter("param");

    //in dem Fall ware sParam = http://www.myhost.de/search.jsp?param1=test1
    // und alle weiteren Parametern &param2=test2&param3=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