2013-07-02 6 views
5

Ich frage mich über diese Servlet-Methoden. Ich weiß etwas über diese Methoden wieWann man doGet, doPost und Service verwenden sollte

  • doPost hat keine Beschränkungen für Paramater Zahlen während doGet hat.
  • doGet ist schneller als doPost.
  • doPost ist gesichert als doGet.

Und meine Frage ist, wie diese Methoden die gleichen Parameter nimmt und den Prozess, den wir implementieren. Was ist dann die major difference zwischen diesen Methoden und At which specific situation each of this method is used to process.

+1

Aber wo sollen wir unsere tägliche Aufnahme von UPs als bekommen? – schlingel

+1

@AshishAggarwal Wenn Google alle Antworten hätte, dann wäre SO nicht hier gewesen und hätte aufblühen müssen. – instinct

+1

In der Tat führt oft Google zu SO Anwers sowieso – cirko

Antwort

6

Da sind die technischen Unterschiede, die Sie erwähnt haben und es gibt einen Teil, wo wir über REST-Metaphern sprechen.

Neben POST und GET gibt es auch PUT und DELETE. Sie sollten GET für Operationen verwenden, die Ihre Daten nicht ändern, POST für die Erstellung und PUT für die Aktualisierung von Daten. DELETE ist offensichtlich für das Löschen von Daten.

0

Ich denke, Sie sollten etwas über HTTP GET und POST-Methoden lesen. Sie können zum Beispiel here starten. Ihre Frage ist nicht wirklich mit Java und Servlets verbunden, sondern mit den Grundlagen der Webprogrammierung.

3

GET sollte idempotent sein, POST kann nicht sein. GET ist, wenn Sie etwas vom Server erhalten möchten, POST ist, Daten auf dem Server zu buchen. Die GET ist idempotent bedeutet, dass die gleiche Operation angewendet mehrmals das gleiche Ergebnis, wo wie mit einem POST hat es Nebenwirkungen, die zu unterschiedlichen Ergebnissen führt. Sie können eine nicht-idempotente GET schreiben, aber das ist gegen Konvention und Sie können mit Problemen enden. GET Anfragen können mit einem Lesezeichen versehen werden. POST kann nicht mit einem Lesezeichen versehen werden. Abfrageparameter sollten in GET begrenzt sein, mit POST können Sie sogar Dateien zum Hochladen senden.

+2

Sie sind nicht. Das ist nur Konvention. – schlingel

+0

Alles ist eine Konvention, und Sie sollten entsprechend codieren. Man sollte die Menschen dazu erziehen, der Konvention zu folgen, um sie nicht zu hacken, um sich in Schwierigkeiten zu bringen. – NINCOMPOOP

+0

@schlingel, deshalb benutzt TheNewIdiot die Wörter "soll" und "darf", er sagt nicht "muss" – morgano

3

doGet() und doPost(), doPut(), doDelete() werden zu verschiedenen Anlässen mit kleinen Unterschieden aufgerufen.

Ja W3C given some specifications

GET:

Eine Darstellung des Objekts wird auf den Client übertragen. Einige URIs beziehen sich auf bestimmte Varianten eines Objekts, andere beziehen sich auf Objekte mit vielen Varianten. Im letzteren Fall können die akzeptablen Repräsentationen, Codierungen und Sprachen in den Kopfanforderungsfeldern angegeben werden und können den bestimmten Wert beeinflussen, der zurückgegeben wird.

POST

Diese Methode der HTTP erzeugt ein neues Objekt verknüpft und untergeordnet das angegebene Objekt. Der Inhalt des neuen Objekts ist als Hauptteil der Anfrage enthalten.

Und service() Methode empfängt Standard-HTTP-Anforderungen von der öffentlichen Dienstmethode und sendet sie an die in dieser Klasse definierten doXXX-Methoden.

3

Ich werde nur Fokus in den Unterschieden:

doService(): es verwenden, wenn Sie wissen, was Sie tun, die Standardimplementierung ruft doGet() oder doPost() so, wenn Sie es überschreiben , Sie werden nicht die andere Methode genannt bekommen.

doGet(): Vereinbarungsgemäß soll ein Verfahren GET nicht den internen Zustand der Anwendung ändern (Sie sollten nicht Updates tun oder dergleichen)

doPost(): vereinbarungs POST wird verwendet, um den internen Zustand Ihrer Anwendung zu ändern (tun Einsätze, Updates, löscht)

12

doGet():> Wir werden für statische Inhalte verwenden, wenn wir es verwenden, gehen unsere Anfrage Parameter HTTP-Paket-Header. Oder die Größe des HTTP-Paket-Headers ist festgelegt. Daher können nur begrenzte Daten gesendet werden. oder im Fall von doGet() Request-Parameter werden in der Adressleiste angezeigt, oder im Netzwerk senden Daten wie Ebenentext.

doPost():> Wir werden für dynamische Inhalte verwenden, Wenn wir es verwenden, durchlaufen unsere Anfrage Parameter HTTP-Paket Körper. Oder die Größe des HTTP-Pakets ist nicht festgelegt. So können unbegrenzt Daten gesendet werden. oder im Fall von doPost() Request Parameter werden nicht in der Adressleiste angezeigt, oder in Netzwerkdaten senden wie verschlüsselter Text.

service():> Wenn wir es definieren, dann müssen wir Server Konnektivität Problem gegenüberstellen, da sein Protokoll unabhängig, so ist es nicht ein guter Ansatz.

0

Ich frage mich über diese Servlet-Methoden. Ich weiß etwas über diese Methoden wie

• haben Post keine Beschränkungen auf Parameterzahlen während DoGet hat.

• doGet ist schneller als doPost.

• doPost gesichert ist als doGet

0

Die Service-Methode durch die Servlet-Container genannt wird, die Anfrage und antwortet mit einer richtigen Antwort zu handhaben. Jedes Mal, wenn eine Anfrage gestellt wird, wird die Service-Methode aufgerufen. Wir haben es nie außer Kraft setzen, wie es bereits in Bezug auf die getan worden ist:

  • doGet()
  • doPost()

doGet() - Es ist für die Informationen anfordert. Es ändert nichts auf dem Server. Die Methode doGet() ist die HTTPServletRequest-Standardmethode.

doPost() - Es wird verwendet, um die Informationen bereitzustellen, die der Server benötigt.

Ich habe gerade den grundlegenden Unterschied geschrieben, Ruhe gibt es andere Leistungsbasis Unterschiede.

1

In einfachem Wort .. get wird verwendet, wenn Sie etwas vom Server abrufen möchten und keine vertraulichen Informationen in Ihrer Anfrage verfügbar sind, da die Kopfzeile in URL sichtbar ist. Post wird verwendet, wenn Sie etwas im Server aktualisieren und es kritische Daten gibt, z. Passwörter, Kontonummer usw. in Ihrer Anfrage.anderer vorteil von post ist es nicht feste größe so können sie senden unbegrenzte daten und daten werden in keinem fall sichtbar sein.

Verwandte Themen