Martin Jung: Parameter per Post-Request

Beitrag lesen

Hi,

connection ist vom Typ HttpURLConnection
und ist mit HttpURLConnection connection = (HttpURLConnection) url.openConnection(); erstellt worden
url ist dabei mein Servlet http://localhost:7001/unterverzeichnis/Servlet
output ist doch nur der Stream auf den ich schreibe!

Oder was möchtest du wissen?

Ich versuche zu verstehen, was Du machen möchtest und was Du wirklich machst.

Ich zitiere aus Deinem Erstposting:

Das kommt auch genauso beim Servelt an aber die Funktion getParameter liefert mir nix!
Wenn ich einen String über Browser an das Servlet schicke dann kann ich dort die Parameter auswerten! Im der EJB
setzte ich die RequestMethode auf POST!

Aus dem letzten Satz entnehme ich indirekt, dass der POST-Request funktioniert, wenn das Servlet auf standardisierte Weise, nämlich einen vermittelnden Servlet-Container, der vermutlich gleichzeitig als Web-Server dient (Tomcat?), aufgerufen wird. D.h., der Browser generiert einen offensichtlich validen POST-Request, der als solcher vom Servlet-Container erkannt _und_ prozessiert werden kann. Als Folge wird dann die .service() Methode des Servlets durch den Container aufgerufen, wobei ein HttpServletRequest- und ein HttpServletResponse-Objekt als Parameter vom Container (der diese Objekte zuvor natürlich generiert hat) übergeben werden.
Du sagtest, die Methode .getParameter(String name) 'liefert Dir nix' (ich vermute, sie gibt 'null' zurück). Diese Methode gehört zur Klasse HttpServletRequest, die einen prozessierten Client-Request (hier: POST) repräsentiert/kapselt. Wenn Du zusätzlich weißt, dass "user=test".getByte() 'auch genauso beim Servelt ankommt', ergeben sich für mich mehrere mögliche Ursachen:
a) ein Objekt vom Typ HttpURLConnection ist zwar prinzipiell geeignet (ich habe HttpURLConnection noch nicht verwendet), einen validen HttpServletRequest zu generieren, aber der Aufruf von .setRequestMethod() mit anschließendem direktem Schreiben der Request-Parameter in den Stream dazu alleine reicht nicht aus.

[..viele andere Auflistungspunkte nach nochmaligem Blick in die HttpURLConnection-API wieder gelöscht...]

Was passiert, wenn Du connection.setRequestProperty("user", "test") an Stelle von output.write(..) verwendest?

Viele Grüße,
Martin Jung