为什么Servlet.service()方法返回void而不是ServletResponse的实例?

时间:2011-05-05 11:53:48

标签: java servlets containers lifecycle

为什么 Servlet 接口中的service()方法不返回 ServletResponse 的实例,而是处理 ServletResponse 对象由容器提供?

简单来说,为什么 Servlet 接口的服务方法如下:

public void service(ServletRequest request, ServletResponse response);

并不喜欢:

public ServletResponse service(ServletRequest request);

2 个答案:

答案 0 :(得分:9)

如果响应对象由servlet容器提供,它可以控制缓冲的处理方式。例如,假设您创建了自己的ServletResponse - 如果容器超过一定长度,容器如何管理响应流的能力,而不是缓冲数据?

答案 1 :(得分:2)

它使用容器为其部分构建的响应。它没有建立整个布料的响应。无论如何,它必须是一个论据。