Direkter Zugriff auf Servlet- doPost

Generic1

Top Contributor
Hallo,

ich hätte eine Frage zum direkten Zugriff auf doPost eines Servlets und zwar hab ich bei meinem WebProjekt eine index.jsp mit einem Button, wenn ich den Button klicke, dann wird die Methode doPost aufgerufen und im Browser die URL http://localhost:8080/getData angezeigt.

Wenn ich diesen Link http://localhost:8080/getData aber direkt im Browser eingebe, wird die Methode doPost nicht aufgerufen.
Wie kann ich es machen, dass es auch ohne index.jsp funktioniert, so dass ich die URL im Browser eingeben kann und dann die Methode doPost aufgerufen wird?
 
M

maki

Gast
Wie kann ich es machen, dass es auch ohne index.jsp funktioniert, so dass ich die URL im Browser eingeben kann und dann die Methode doPost aufgerufen wird?
Gar nicht.

Den Unterschied zwischen einem GET und POST Request müsstest du eigentlich schon wissen, wenn nicht solltest du jetzt nachlesen.
 
M

maki

Gast
Wie ist das dann gemeint?
Was meinst du?
Was hat ein (wahrscheinlich fehlerhaftes, siehe vorletztes Kommentar) Flex Beispiel mit deiner Frage zu tun?

Interessant für dich ist nur diese Frage:
Was ist den Unterscheid zwischen einem GET Request und einem POST Request?
;)

Wenn du den Code in doPost aufrufen willst. musst du eben einem POST Request absetzen, keinen GET Request.
 

Generic1

Top Contributor
Hallo,

also es funktioniert jetzt mit dem unteren Flex- Code und ich erhalte die Daten vom Servlet,
ich habe jetzt als Methode "POST" ausgewählt, es funktioniert noch immer aber es wird auch noch immer die doGet- Methode des Servlets aufgerufen, Das ist mir nicht klar warum.

Die XML- Datei, die ich auf dem Server habe, hat eine unbestimmte Größe, wenn diese also zu groß ist, hab ich mit GET ein Problem, da das Ergebnis an die URL angehängt wird und nur eine bestimmte Größe haben darf.

Kann sich das jemand erklären, warum das POST im unteren Flex- Code keine wirkung zeigt?

Code:
<mx:HTTPService  id="myService"
		url="http://localhost:8080/FlexServletTest/FrontendServlet"
		resultFormat="e4x"
		result="onResult(event)"
		fault="onFault(event)"
		method="POST">
	</mx:HTTPService>
 

JanHH

Top Contributor
Vielleicht stell ich mir das zu einfach vor, aber normalerweise kann man get und post identisch behandeln.. indem die eine immer die andere aufruft:

Java:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
   doGet(request, response);
}
	
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
   ...
}
 

Generic1

Top Contributor
Das würde dann heißen, dass der Request per "GET" zum Server (Servlet -> doGet(...)) kommt, dieser Request dann zur Methode doPost weitergeleitet wird und ein response per "POST" an den Client gesendet wird?
Das kann ich mir jetzt nicht vorstellen, dass das so ist, oder?

Wie seht ihr die Problematik, wenn ich mit "GET" die XML- Datei abfrage und wenn diese XML- Datei zu groß wird, dass ich dann Probleme bekomme?

Und warum das "method="POST"" im unteren Code nicht anschlägt ist mir gänzlich ein Rätsel -> Bewirkt nämlich überhaupt nichts.

Java:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
   doPost(request, response);
}
	
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{ 
    final PrintWriter writer=response.getWriter();
    writer.println("<?xml version=\"1.0\"?>\n");
...
}

Code:
<mx:HTTPService  id="httpXmlDataService" url="http://localhost:8080/getData"
						resultFormat="e4x" result="resultHandler(event)" fault="faultHandler(event)"
						useProxy="false"
						method="POST">
	 	</mx:HTTPService>
 
Zuletzt bearbeitet:
M

maki

Gast
[quot6e]Wie seht ihr die Problematik, wenn ich mit "GET" die XML- Datei abfrage und wenn diese XML- Datei zu groß wird, dass ich dann Probleme bekomme?[/quote]
Genau, deswegen sollte man da auch ein POST Request nutzen :)

Und warum das "method="POST"" im unteren Code nicht anschlägt ist mir gänzlich ein Rätsel -> Bewirkt nämlich überhaupt nichts.
Mir auch, ist aber auch kein Java Problem ;)
Der Client entscheidet ob ein POST oder GET gesendet wird.

Nebenbei, ja, man kann POST und GET Requests in Java Servlets gleich behandeln, löst aber nicht die Probleme die man mit GET und großen Datenmengen bekommt.
 

mvitz

Top Contributor
...der Aufruf doGet in doPost, bedeutet eigentlich nur, dass POST und GET das selbe machen... was ja eigentlich immer der Fall ist...
Nicht, wenn man eine REST Architektur umsetzt ;)

Aber ansonsten hat ARadauer recht, wenn man in die doGet-Methode einen Aufruf an die doPost-Methode delegiert, dann machen halt beide Methoden dasselbe, der Request bleibt aber natürlich ein GET-Request.

EDIT: Zitat eingefügt zum besseren Verständis
 
Zuletzt bearbeitet:

Generic1

Top Contributor
per POST oder GET wird gar nix an den Client gesendet!
Das sind die Request Methoden und die gehen immer zum Server!
Hypertext Transfer Protocol ? Wikipedia

der Aufruf doGet in doPost, bedeutet eigentlich nur, dass POST und GET das selbe machen... was ja eigentlich immer der Fall ist...


Ok, das ist klar, da hab ich was verwechselt, also man kann dann sagen, dass es eine Einschränkung bei der Kommunikation zwischen Client und Server gibt, wenn der Client vom Server per "GET" etwas anfragt, da die Parameter mit GET an die URL angehängt werden,
das Versenden der Daten vom Server zum Client hat mit GET oder POST nichts zu tun und deshalb gibt es auch keine Einschränkung bezüglich der Datenmenge?

Ist das richtig formuliert?.
lg
 
G

Gelöschtes Mitglied 5909

Gast
1. Es gibt eine maximale länge der URL
2. Steht die längengröße mit sicherheit auch im Standard (HTTP 1.0/1.1)
3. Wie willst du mit get Binärdaten Übertragen (z.b. ein Bild)

Schau dir am besten mal die Header an
 
M

maki

Gast
1. Es gibt eine maximale länge der URL
2. Steht die längengröße mit sicherheit auch im Standard (HTTP 1.0/1.1)
3. Wie willst du mit get Binärdaten Übertragen (z.b. ein Bild)
1. Ja, aber die variiert
2. leider nein
3. per Base64

@ Generic1
Bei der Request Method handelt es sich eben um die Request-Methode, der Response wird vom Server geschickt, kann sonstwie kodiert sein.
 

Generic1

Top Contributor
Also zur Vollständigkeit, um den Thread zu vervollständigen, wenn man im ActionScript folgendes macht:

Code:
httpXmlDataService.method = "POST";
httpXmlDataService.contentType = "text/xml";  
httpXmlDataService.send("request");

dann schickt AS3 die Anfrage mit POST.
lg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Nativer bzw. direkter Zugriff auf Active Directory Allgemeines EE 4
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
G War zugriff auf Ejb in EAR Allgemeines EE 0
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
R RMI Zugriff zwischen zwei WAR Projekten Allgemeines EE 1
B Cookie beim erstem Zugriff auf Web-App ablegen Allgemeines EE 3
T JMX und ServiceMBean - Zugriff mittels Client Allgemeines EE 2
W JSP Zugriff auf RemoteInterfaces Allgemeines EE 2
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
Y Zugriff auf Files aus einer EAR Anwendung Allgemeines EE 8
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
J JSF: Zugriff auf message bundle Allgemeines EE 1
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
J geschützter Bean zugriff mit einem Rich-Client Allgemeines EE 2
T Zugriff auf EJB Allgemeines EE 3
L Zugriff auf Manager nur von localhost Allgemeines EE 11
S 1. ContrBean + Image zurück, 2. DB-Zugriff per utilityklasse Allgemeines EE 5
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
T Zugriff auf persistentes Set in einem Objekt Allgemeines EE 2
R Zugriff auf Dateien in Meta/Web-Inf Verzeichnis Allgemeines EE 7
R Zugriff auf Filter Servlet Allgemeines EE 10
R Zugriff auf Managed Bean aus einem Filter Allgemeines EE 2
N zugriff auf sämtliche navigation rules Allgemeines EE 6
A Zugriff auf Parameter im Deployment Descriptor Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
H Velocity: Zugriff auf Sessionvariable? Allgemeines EE 3
S Keystore Zugriff aus Web-Anwendung Allgemeines EE 2
S Alternative zu Properties/ Zugriff außerhalb der Locale Allgemeines EE 7
J In einem Bean zugriff auf ein SessionBean? Allgemeines EE 2
S Kein Zugriff auf Persistence Unit Allgemeines EE 4
K Zugriff auf Dateien beschränken Allgemeines EE 2
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
R Servlet/JSP zugriff auf Thumbnails ausserhalb Webroot Allgemeines EE 3
G Parameterübergabe u. -zugriff bei jsp:include Allgemeines EE 3
K [Tomcat 5.5.12+Axis] Datenbank Zugriff Allgemeines EE 2
K JSF - Zugriff auf Managed Beans Allgemeines EE 2
H JSP Zugriff auf JavaBean Allgemeines EE 4
S zugriff von jsp-seiten auf java klassen Allgemeines EE 3
L Wie bekomme ich denn einen Zugriff auf die EJB ??? Allgemeines EE 7
C [JSP] errorpage: Zugriff auf exception-Objekt Allgemeines EE 2
G Jakarta Servlet API 5.0 Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
E Servlet Servlet das richtige? Allgemeines EE 11
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
N Servlet zyklisch aktualisieren Allgemeines EE 2
zilti Verbindung Applet <-> Servlet Allgemeines EE 5
ARadauer Servlet Bild Rückgabe Allgemeines EE 2
I Über Formular Daten zu Servlet Allgemeines EE 36
H Servlet - Zwischenmeldung anzeigen bei längerer Berechnung Allgemeines EE 2
G Ordner mit Umlauten einlesen - Servlet Allgemeines EE 3
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
M Zwei Buttons in einem Servlet Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
B Servlet Allgemeines EE 3
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
K load-on-startup -> in der Servlet Klasse Allgemeines EE 6

Ähnliche Java Themen

Neue Themen


Oben