There are always bufferes here and there to increase performance. Take a look at the jetty documentation and the configuration of jetty's connectors (send buffer). You also have ServletResponse.setBufferSize(). Take a look at Jetty's source code to see how it uses this buffer size.
It also somewhat depends on the client. If you do a HTTP 1.0 request and your servlet does not set a Content-Length header then the servlet container probably has to buffer the whole response in order to compute the Content-Length as this header is mandatory for HTTP 1.0. In case of HTTP 1.1 you don't have to set a Content-Length header but use chunked transfer encoding instead.
-- J.