Почему метод Servlet.service () возвращает void, а не экземпляр ServletResponse? - PullRequest
4 голосов
/ 05 мая 2011

Почему метод service() в интерфейсе Servlet не возвращает экземпляр ServletResponse , а работает с объектом ServletResponse , предоставленным контейнером?

Проще говоря, почему метод обслуживания интерфейса Servlet такой:

public void service(ServletRequest request, ServletResponse response);

и НЕ как:

public ServletResponse service(ServletRequest request);

Ответы [ 2 ]

9 голосов
/ 05 мая 2011

Если объект ответа предоставлен контейнером сервлета, он может контролировать, как обрабатываются такие вещи, как буферизация. Например, предположим, что вы создали свой собственный ServletResponse - как контейнер будет управлять возможностью потоковой передачи ответа, если он превышает определенную длину, вместо буферизации данных?

2 голосов
/ 05 мая 2011

Он использует Response, который контейнер для него строит частично. Это не создает ответ из всей ткани. Это должно быть аргумент в любом случае.

...