java - servlet 响应何时提交或刷新?

标签 java jsp servlets forward requestdispatcher

根据 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.

当这个响应被提交或被刷新时我感到困惑?

这是在 printwriterprintln 中写的。

最佳答案

PrintWriter 上调用 flush() 提交响应。

forward 方法允许一个 servlet 对请求进行初步处理,并允许另一个资源生成响应。

转发前可以有很多out.write语句,但是不能在转发前调用flush。 喜欢

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

但是如果

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

关于java - servlet 响应何时提交或刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749730/

相关文章:

java - 使用 SXSSF 写入大 Excel 文件时出现内存不足异常

java - 获取用户输入并在java中更改它

javascript - 水平滚动的背景图像

java - 如何让嵌入式servlet引擎急切地实例化servlet?

java - 选择日志记录提供商

java - 没有 JSF 的 Facelets

java - 如何让JSP调用Servlet更安全?

javascript - 如何处理jsp页面中javascript中的单引号?

java - 如何使用单个 HTML 表单上传图像并通过单个提交按钮存储其详细信息?

java - Spring - 无法获取资源(405错误)