根据javadoc:
在-request.getRequestDispatcher("/Test").forward(request,response);
request.getRequestDispatcher("/Test").forward(request,response);
在将响应提交给客户端之前(在刷新响应主体输出之前)应调用forward。在转发之前,将自动清除响应缓冲区中未提交的输出。
提交或刷新此响应后,我会感到困惑吗?
这是写作println的printwriter。
println
printwriter
调用flush()上PrintWriter提交的响应。
flush()
PrintWriter
forward 该方法允许一个Servlet对请求进行初步处理,而另一种资源则可以生成响应。
forward
out.write转发之前可以有很多语句,但是flush转发之前不能调用。喜欢
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