when is servlet response committed or flushed?

99封情书 提交于 2019-12-06 10:05:15

问题


According to javadoc:

in-request.getRequestDispatcher("/Test").forward(request,response);

forward should be called before the response has been committed to the client (before response body output has been flushed).Uncommitted output in the response buffer is automatically cleared before the forward.

I am getting confused when this response is committed or been flushed?

is this writing in println of printwriter.


回答1:


Calling flush() on the PrintWritercommits the response.

forward method allows one servlet to do preliminary processing of a request and another resource to generate the response.

You can have many out.write statements before forwarding but you can't call flush before forwarding. like

PrintWriter out = response.getWriter();
out.write("forwarding...\n");
rd.forward(request, response); //this is good

but if

out.write("forwarding...\n");
 out.flush();
 rd.forward(request, response); //this throws an exception



回答2:


No it's not. Just when you flush it manually in your code like

response.flush().

Normally the servlet container do it for you after "your" method.



来源:https://stackoverflow.com/questions/30749730/when-is-servlet-response-committed-or-flushed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!