web-dev-qa-db-fra.com

Quand utiliser doGet, doPost et le service

Je m'interrogeais sur ces méthodes de servlet. Je sais quelque chose à propos de ces méthodes comme

  • doPost n’a aucune limite quant au nombre de paramètres, alors que doGet l’a.
  • doGet est plus rapide que doPost.
  • doPost est sécurisé que doGet.

Et ma question est, comme ces méthodes prennent les mêmes paramètres et fait le processus que nous mettons en œuvre. alors quelle est la major difference entre ces méthodes et At which specific situation each of this method is used to process.

8
R9J

Il y a les différences techniques que vous avez mentionnées et il y a une partie où nous parlons de REST métaphères.

A côté de POST et de GET, il y a aussi PUT et DELETE. Vous devez utiliser GET pour les opérations qui ne modifient pas vos données, POST pour la création et PUT pour la mise à jour des données. DELETE est évidemment pour la suppression de données.

7
schlingel

doGet ():> Nous allons utiliser pour les contenus statiques, quand nous les utiliserons, nos paramètres de requête passent par l'en-tête du paquet http. Ou la taille de l'en-tête de paquet http est fixe Ainsi, seules des données limitées peuvent être envoyées. ou en cas de demande doGet (), les paramètres sont affichés dans la barre d'adresse, ou dans les données réseau envoyées comme du texte plan.

doPost ():> Nous allons utiliser pour les contenus dynamiques, quand nous les utiliserons, nos paramètres de requête passent par le corps du paquet http. Ou la taille du corps du paquet http n'est pas fixe. Donc, les données illimitées peuvent être envoyées. ou dans le cas de doPost (), les paramètres de requête ne sont pas affichés dans la barre d'adresse, ou dans les données de réseau envoyées comme du texte crypté.

service ():> Si nous allons le définir, nous devrons faire face à un problème de connectivité du serveur car son protocole est indépendant, de sorte que ce n'est pas une bonne approche. 

14
SatyamChaudhary

Je vais me concentrer sur les différences:

doService () : utilisez-le lorsque vous savez ce que vous faites, l'implémentation par défaut appelle doGet () ou doPost (). Par conséquent, si vous l'écrasez, aucune autre méthode ne sera appelée.

doGet () : par convention, une méthode GET ne devrait pas changer l'état interne de votre application (vous ne devriez pas faire de mises à jour ou autres)

doPost () : par convention, POST permet de modifier l'état interne de votre application (fait des insertions, des mises à jour, des suppressions).

5
morgano

doGet () et doPost (), doPut (), doDelete () sont appelés à différentes occasions avec quelques différences mineures.

Oui W3C étant donné certaines spécifications

GET:

Une représentation de l'objet est transférée au client. Certains URI font référence à des variantes spécifiques d'un objet et d'autres à des objets comportant de nombreuses variantes. Dans ce dernier cas, les représentations, codages et langues acceptables peuvent être spécifiés dans les champs de demande d’en-tête et peuvent affecter la valeur particulière renvoyée.

POST

Cette méthode de HTTP crée un nouvel objet lié et subordonné à l'objet spécifié. Le contenu du nouvel objet est inclus dans le corps de la requête.

And service () method reçoit les requêtes HTTP standard de la méthode de service public et les envoie aux méthodes doXXX définies dans cette classe.

4
Suresh Atta

GET devrait être idempotent, POST n'est peut-être pas. GET est lorsque vous voulez obtenir quelque chose du serveur, POST est de poster des données sur le serveur. La variable GET est idempotente signifie que la même opération appliquée plusieurs fois donne le même résultat. Dans le cas d'une variable POST, elle a des effets secondaires qui entraînent des sorties variées. Vous pouvez écrire une GET non idempotente, mais cela est contraire à la convention et vous pouvez vous retrouver avec des problèmes. Les demandes GET peuvent être marquées d'un signet. POST ne peut pas être favori. Les paramètres de requête doivent être limités dans GET, avec POST, vous pouvez même envoyer des fichiers à télécharger.

3
NINCOMPOOP

En termes simples, Word .. get sera utilisé lorsque vous souhaitez extraire quelque chose du serveur et que votre demande ne contient aucune information sensible, car son en-tête est visible dans l'URL. Post sera utilisé lorsque vous mettez à jour quelque chose sur le serveur et qu'il y a des données critiques, par exemple. mots de passe, numéro de compte, etc. dans votre demande. L’autre avantage de post est que ce n’est pas une taille fixe afin que vous puissiez envoyer des données illimitées et que les données ne seront visibles en aucun cas.

2
Ashish Sharma

La méthode de service est appelée par le conteneur Servlet pour gérer la demande et répondre avec une réponse appropriée. Chaque fois qu'une demande est faite, la méthode de service est appelée. Nous ne l'ignorons jamais car cela a déjà été fait en termes de:

  • doGet ()
  • doPost ()

doGet () - Il demande des informations. Cela ne change rien au serveur. La méthode doGet () est la méthode HTTPServletRequest par défaut.

doPost () - Il est utilisé pour fournir les informations nécessaires au serveur.

Je viens d'écrire la différence fondamentale, mais il existe d'autres différences de performances.

0
myk.

Je pense que vous devriez lire quelque chose sur les méthodes HTTP GET et POST. Vous pouvez commencer par exemple ici . Votre question ne concerne pas vraiment Java et Servlets mais les bases de la programmation Web.

0
Petr Mensik

Je m'interrogeais sur ces méthodes de servlet. Je sais quelque chose à propos de ces méthodes comme

• do Post n’a aucune limite quant au nombre de paramètres, contrairement à doGet.

• doGet est plus rapide que doPost.

• doPost est sécurisé que doGet

0
raj