Servlets: doGet, doPost und service

Status
Nicht offen für weitere Antworten.

T0M

Mitglied
Ich möchte ein Servlet schreiben, dass eine gesamte Webseite darstellt und das sich manchmal um Get- und Post-Anfragen kümmern muss, manchmal um beides und manchmal auch um keines davon. Welche Methode überschreibe ich dann, um die Seite anzuzeigen?
Ich verstehe ehrlichgesagt nichtmal den Unterschied zwischen den drei Funktionen, vom Namen abgesehen erscheinen sie mir völlig gleich. Die Post- und Get-Parameter bekomme ich ja schließlich eh bei allen als HttpServletRequest-Objekt, oder nicht?
 

HLX

Top Contributor
Die doGet-Methode wird automatisch dann ausgeführt wenn eine Anfrage über ein HTTP-GET erfolgt, z.B. wenn eine Seite per URL angefordert wird. Die doPost-Methode wird ausgeführt, wenn eine Anfrage über ein HTTP-POST erfolgt, also wenn Formular abgeschickt wird, z.B. per "Submit"-Button.

Die Service-Methode sollte nicht überschrieben werden. Sie unterscheidet die einzelnen HTTP-Methoden und ruft entsprechend die doGet, oder die doPost (oder die doHead...) auf.
 

T0M

Mitglied
Danke für deine Antwort, aber ganz klar ist es mir noch nicht. Denn oft sind doch Get- und Post-Anfragen gemischt, welche Methode wird dann aufgerufen? Oder werden beide Aufgerufen, dann wäre es ja ein Fehler, z.B. in der doPost-Methode die doGet-Methode aufzurufen, wie es in manchen Büchern empfohlen wird.
Wenn ich dich richtig verstanden habe, ist es jedenfalls eine Get-Anfrage, wenn ein Servlet im Browser ohne jegliche Parameter aufgerufen wird?
 

HLX

Top Contributor
DoPost und DoGet werden nicht gemischt aufgerufen.

Wenn ein Client via HTTP eine Anfrage an einen HTTP-Server schickt, verwendet er dazu immer eine HTTP-Methode, z.B. GET, POST, HEAD...

Die gebräuchlichsten sind GET und POST. Mit GET wird in der Regel eine Seite oder ein Inhalt angefordert. Man kann dabei auch Parameter über die URL übergeben. Das sieht man schonmal bei SessionIds, wenn Cookies ausgeschaltet sind. URL-Parameter können dann auf dem Server ausgelesen werden. Wenn man sich allerdings irgendwo anmelden muss, z.B. für einen Bestellvorgang, dann wäre es schon blöd, wenn das Kennwort in der URL zu lesen wäre. Hier kann man die HTTP-Methode POST verwenden. Dabei wird ein Datenblock mit Name/Wert-Paaren an die HTTP-Nachricht gehängt.

In einer HTML-Seite kann man über POST Formulare übertragen. Dazu definiert man ein Formular mit
Code:
<form method="POST"...>
...
</form>
Für das Formular definiert man dann einen "Absenden"-Button, der das Formular mit der HTTP-Methode POST an den Server leitet. Geht die Anfrage nun an dein Servlet, ruft die 'service'-Methode die Methode 'doPost' auf.

Manche denken 'doPost' wäre für´s senden vom Server zum Client gedacht. Das ist ein Irrtum. Die einzelnen do-Methoden behandeln ausschließlich die HTTP-Methoden, die der Client zur Kommunikation verwendet hat. Das Senden der Inhalte muss nicht weiter angestoßen werden.

EDIT:
Wenn man in der 'doPost'-Methode 'doGet' aufruft, will man sicherstellen, dass bei beiden HTTP-Methoden das gleiche im Servlet passiert.
 

T0M

Mitglied
Danke für die 2. Antwort. Ich werde in meinem Servlet dann die doGet-Methode von der doPost-Methode aus aufrufen und in der doGet-Methode die ganze Seite ausgeben. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Servlets Allgemeines EE 1
B Intellij + WebSphere, Servlets aufrufen Allgemeines EE 1
S JSP, JSF Servlets etc. Empfehlung Allgemeines EE 13
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
c_sidi90 Gute Bücher/Tutorials für Einstieg in JSP/Servlets Allgemeines EE 3
A Startseite bei Servlets Allgemeines EE 2
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
W Übliche Art "lokale" Parameter an Servlets zu über Allgemeines EE 2
D AJAX oder Servlets Allgemeines EE 6
J Sicherheit von Servlets Allgemeines EE 3
G Response bei Servlets Allgemeines EE 5
K Sriplets & Servlets: Offline Projekt auf Server realisie Allgemeines EE 2
M Servlets und Webcrawler Allgemeines EE 4
D JSP/Servlets Buchempfehlung Allgemeines EE 11
C Servlets in Eclipse ausführen Allgemeines EE 5
D Servlets richtig verstehen Allgemeines EE 23
A Servlets: Service-Methoden generell Allgemeines EE 2
I JBOSS IDE EJB 3.0 Servlets JSP Applikation --> JSF sinnvo Allgemeines EE 2
M Servlets | work - Klassen nicht im WAR File Allgemeines EE 5
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
M Hosting (inkl. Servlets) Allgemeines EE 25
P JSP Servlets/ Java Klassen für FTP FileUpload (Bilder) + DB Allgemeines EE 3
D Controller-Klassen eines Servlets testen mit JUnit Allgemeines EE 3
M Kommunikation zwischen zwei Servlets Allgemeines EE 5
S gibts ne spezielle möglichkeit applets mit servlets auszugeb Allgemeines EE 3
S aufrufende url bei servlets herausfinden Allgemeines EE 4
I Zusammenspiel Portlets, Servlets und JSPs Allgemeines EE 3
Z Property Datei in Servlets Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
S Umlaute und Servlets Allgemeines EE 5
F Servlets und JSP Allgemeines EE 6
P E-mails alias über Servlets einrichten bei Strato- Allgemeines EE 16
G Verständnisfrage zu EJB vs. Servlets Allgemeines EE 3
A Servlets bei Tomcat-Startup starten Allgemeines EE 5
L SVG & Servlets Allgemeines EE 9
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P Wie Log4J in JSP's, Beans und Servlets am besten einbinden Allgemeines EE 2
M Probleme beim Performancetuning des Servlets Allgemeines EE 2
C JSP funzt in Tomcat, Servlets nicht Allgemeines EE 5
G Servlets und Bilder Allgemeines EE 13
G JSP und Servlets (einfaches MVC-Modell) Allgemeines EE 2
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
T Grundlegendes Verständnis - Beans, JSP und Servlets Allgemeines EE 3
F Servlets aufrufen Allgemeines EE 5
thE_29 Allg. Frage zu JSP/Servlets Allgemeines EE 2
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
R Servlets in ECLIPSE programmieren Allgemeines EE 3
X servlets und character encoding Allgemeines EE 4
A Frage zu Servlets Allgemeines EE 5
M Cookies mit Servlets Allgemeines EE 6
J Servlets und PrintWriter Allgemeines EE 5
H Servlets nacheinander abarbeiten Allgemeines EE 3
B Servlets werden gemappt --- aus und schluß, so ist es! Allgemeines EE 4
M Fragen zu Servlets Allgemeines EE 5
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10
K Sun Application Server - Servlets laufen nicht Allgemeines EE 2
J Connectionpools mit BEA und Servlets Allgemeines EE 4
T Servlets und Dateizugriff auf dem Server Allgemeines EE 5
T Servlets in eclipse schreiben !! Allgemeines EE 5
S Servlets zum laufen bringen mit J2EE Allgemeines EE 3
A Leerzeilen in HTML-Seite, nach Erzeugen des Servlets Allgemeines EE 3
M doGet()-Methode wird nicht geladen Allgemeines EE 3
G Servlet doGet, doPost Allgemeines EE 3
G doPost ServletInputStream Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
F Servlet: DoPost wird zweimal aufgerufen Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben