# Request Parameter kopieren und setzen



## RoNa (14. Mai 2009)

Hallo,

wiess jemand wie man alle Parameter eines Request kopiert und in ein anderes Request-Objekt reinsetzt. 

Wenn man den RequestDispatcher#forward(...) benutzt, gehen die Parameter verloren.

Witzige Weise funktioniert unter Tomcat alles wunderbar, nur der WebSphere verhält sich anders ;-)

Oder weiss jemand, was man machen muss, damit WebSphere die Parameter nicht verliert.

Gruß,

Robert


----------



## SlaterB (14. Mai 2009)

einfache Lösung: Request-Parameter komplett ignorieren,
lies sie einmal am Anfang aus, wer immer als erster drankommt,
und speichere sie dann als Attribute im Request,

Attribute kannst du beliebig überschreiben/ forwarden doch auch hoffe ich mal,
notfalls gar in der Session ablegen


----------



## maki (14. Mai 2009)

> wiess jemand wie man alle Parameter eines Request kopiert und in ein anderes Request-Objekt reinsetzt.


Ähm.. gar nicht?

Hört sich zumindest sehr seltsam an, beschreib doch mal deinen Anwendungsfall genauer.


----------



## RoNa (14. Mai 2009)

Hi, hab in die Spec geschaut. 


Es ist so, dass der query String und damit query parameter bei einem forward nicht übergeben werden. Es wird ein Attribut javax.servlet.forward.query_string übergeben dass den Query String enthält (was dir aber nicht viel hilft...). 

Ich denke, am einfachsten ist sich aus dem Request einfach die ursprünglich uri+querystring zusammenzubauen, zu modifizieren und für den forward zu verwenden, z.B.  "/rest" +request.getRequestUri()+"?"+request.getQueryString().

Das funktioniert nur mit GET-Parametern. Ich arbeite mit REST und Jersey. Jersey Resorcen bekommen bei POST-Parameter com.sun.jersey.spi.container.servlet.Form und das enthält nur die POST-Parameter.

Kann mir jemand einen Tipp geben? 

Gruß,

Robert


----------

