Pourquoi la méthode doGet () de la servlet a-t-elle la réponse en paramètre à la place de la valeur de retour?

Je n'ai jamais questionné cela auparavant, mais pourquoi

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{}

au lieu de

public HttpServletResponse doGet(HttpServletRequest request)
    throws ServletException, IOException{}

?

La seconde version n'aurait-elle pas plus de sens sémantique?

2
@BalusC Je n'ai pas l'intention de créer une servlet. J'ai juste trébuché sur un code Servlet aujourd'hui et cette question m'est venue à l'esprit.
ajouté l'auteur Lester, source
@BalusC Je n'ai pas réfléchi davantage à cela. Comme dit Orange c'est assez compliqué, je crois. Je ne suis pas sûr si cela a beaucoup de sens d'approfondir cette question. Principalement je voulais juste savoir pourquoi une méthode doGet() typique est construite comme elle est, au lieu de recevoir la requête en paramètre, de la traiter et de renvoyer la réponse, ce que je considérerais comme faire sémantiquement plus de sens. Mais l'explication d'Orange Dog e
ajouté l'auteur Lester, source
Comment avez-vous l'intention de le créer? Pourquoi n'utiliseriez-vous pas simplement le conteneur créé?
ajouté l'auteur BalusC, source
Je veux dire, comment avez-vous l'intention de créer une instance de HttpServletResponse ?
ajouté l'auteur BalusC, source
Peut-être que la réponse peut être envoyée de façon asynchrone au coup par coup dans un fil séparé, plutôt que d'avoir à attendre que tout le traitement du doGet se termine. Je ne peux pas dire que je suis sûr de ça.
ajouté l'auteur Jaydee, source

1 Réponses

HttpServletResponse is a rather complicated class, requiring you to know about connection sockets and such. If you had to return one, most of the code would be the same boilerplate to construct it. Instead the servlet container does this work for you, giving you a ready-to-use object with a variety of useful working methods.

Maintenant la question suivante est pourquoi ont-ils décidé de faire de HttpServletResponse un objet compliqué et pas seulement de retourner un simple POJO. Eh bien, pour une, cette architecture ne vous permettrait pas de faire des réponses en continu où vous commencez à écrire avant d'avoir toutes les données.

6
ajouté