# Link zusammensetzen



## meinereiner85 (19. Februar 2008)

Hallo,

ich habe aus einem Forumbeitrag eine Upload-Funktion für eine Datei zusammengebastelt (http://www.tutorials.de/forum/j2ee/224165-fileupload-mit-jarkata-commons.html).

Hier der Code meiner JSP/HTML-Datei:

```
<%@page contentType="text/html" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
    <head>
 	  <title>JSP Page</title>
    </head>
    <body bgcolor="#FFFFFF">
 	  <form enctype="multipart/form-data" action="uploadServlet" method="POST">
 		 Datei: <input name="uploadFile" type="file">
            User: <input type="text" name="user" size=9 maxlength=9><br>
            Passwort: <input type="text" name="pw" size=10 maxlength=10><br>
 		 <input type="submit" vaule="upload">
 	  </form>
    </body>
 </html>
```

Ich möchte jetzt gerne anstatt uploadServlet gerne einen HTTP-Request zusammenbasteln, den ich abschicken kann. Leider setzt er mir aber jeden Versuch direkt in einen String um, das heißt wenn ich sage Document... dann steht dies auch im Link drin. Sinngemäß soll der Link aber so aussehen:

uploadServlet?User=xx&Passwort=xx

Wo xx steht soll natürlich der entsprechende Eintrag des Textfeldes stehen.
Ich habe sonst immer mit onklick gearbeitet, jedoch funktionier dann die Funktion nicht mehr.

Kann mir jemand einen Tipp geben, wie ich meinen Link zusammengestzt bekomme und zwar so, dass ich meinen Quellcode nur ergänzen muss?

Würde mich über ein paar hilfreiche Tipps sehr freuen.

Gruß
meinereiner85


----------



## Sven Mintel (19. Februar 2008)

```
<input type="submit" value="upload" onclick="alert(this.form.action+'?User='+escape(this.form.user.value)+'&Passwort='+escape(this.form.pw.value))">
```


----------



## meinereiner85 (19. Februar 2008)

Hallo

und danke für deine schnelle Antwort.
Leider funktioniert das nicht so richtig. Er öffnet immernoch den zu kurzen Link der unter action aufgeführt ist.
Es funktioniert nur, wenn ich ein neues Fenster öffne allerdings berücksicht er dann Parameter wie "method" nicht die ich unbedingt benötige. 

Was mache ich falsch!


----------



## Sven Mintel (19. Februar 2008)

Naja...du hast da ein Formular...und ein Formular ist kein Link.

Auch wenn ich nicht genau weiss, warum du nun Daten zusätzlich per GET übermitteln willst, die eh schon per POST übermittelt werden, biddeschön:

```
<form enctype="multipart/form-data" action="uploadServlet" method="POST" onsubmit="return this.action='uploadServlet?User='+escape(this.user.value)+'&Passwort='+escape(this.pw.value);">
```


----------



## Gumbo (19. Februar 2008)

Datei-Upload-Formulare können nur per POST-Methode versendet werden. Zudem solltest du eine Benutzerauthentifizierung basierend auf Benutzername und -kennwort nicht per GET-Methode verschicken sondern nur per POST-Methode. Am besten auch noch nur verschlüsselt.


----------



## meinereiner85 (19. Februar 2008)

Hallo,

@ Sven:
Danke für den letzten Tipp, dieser hat funktioniert. Ich habe anders keine Parameter in der Post-Methode abfragen können. Warum weiß ich auch nicht. Aber mit der Zeile funktioniert es bestens!

@Gumbo:


> Zudem solltest du eine Benutzerauthentifizierung basierend auf Benutzername und -kennwort nicht per GET-Methode verschicken sondern nur per POST-Methode. Am besten auch noch nur verschlüsselt.


Kannst du mir sagen wie ich das machen kann? Ich komme in der Post-Methode einfach an keine Parameter der Form ran. Deswegen habe ich es mit Parametern gelöt, die ich aber in der Post-Methode rausziehe.
Wie geht es anders? 

Gruß
meinereiner85


----------



## Gumbo (19. Februar 2008)

Das ist dann wohl eine Java-Frage, die ich dir leider nicht beantworten kann.


----------

