先说结论:
当jsp页面中所有代码执行完毕以后,会执行两个操作
1.执行out.flush()操作,会把out缓冲区的数据追加到response的缓冲区末尾
2.会执行response的刷新缓冲区操作,将全部数据传给客户端
看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>j</title>
</head>
<body>
<%
//使用响应对象的输出流输出和out输出的区别
response.getWriter().write("response.getWriter 1<br>");
response.getWriter().write("response.getWriter 1<br>");
out.write("out.write 1<br>");
out.write("out.write 2<br>");
%>
</body>
</html>
打开服务器
得到
response.getWriter 1
response.getWriter 1
out.write 1
out.write 2
我们再修改一下顺序
out.write("out.write 1<br>");
response.getWriter().write("response.getWriter 1<br>");
out.flush();//刷新缓冲区
response.getWriter().write("response.getWriter 2<br>");
out.write("out.write 2<br>");
按当前顺序来说,out.write 1应该在第一个,但是实际上在第二个