1.jsp-out和response输出的区别

jsp中代码:

out.write("out输出1 <br/>");
out.write("out输出2 <br/>");

response.getWriter().write("response输出1 <br/>");
response.getWriter().write("response输出2 <br/>");

out缓冲区

out输出1
out输出2

response缓冲区

response输出1
response输出2

在客户端呈现的结果是:

response输出1
response输出2
out输出1
out输出2

发现在jsp代码中原本在response之前的out,在客户端展示时,变成了其后面。原因是:

当jsp页面中所有代码执行完成之后,会做以下两个动作:
1、执行out.flush()操作,会把out缓冲区中的数据追加到response缓冲区末尾
2、执行response的刷新操作,把全部数据写给客户端

由于jsp翻译之后,底层源代码都是使用out来进行输出,所以一般情况下,在jsp页面中统一使用out来进行输出。避免打乱页面输出内容的顺序。

而对于out输出的方法,又有两种:

out.write():该方法对字符串输出有效
out.print():该方法对任意数据类型输出都有效
源码中,print是将其他几种数据类型都转换成字符串类型,然后调用write()输出的;而write()中,对于整型的输出,他是先转换成字符型,放入其缓冲数组中,然后再输出,此时输出的就是该数值对应的ASCII码的字符。

posted @ 2021-04-17 17:00  Forrestyu  阅读(209)  评论(0)    收藏  举报