您的位置:首页 > Web前端 > JavaScript

jsp用于输出的out与PrintWrtier差别

2014-03-01 19:53 330 查看
首先大家先看下一段jsp的代码:

<body>
<%
out.write("我先输出");
response.getWriter().write("我后输出");
%>
</body>

然后,我们再来访问这一段jsp,我们预期的效果应该是 “我先输出”在前面,“我后输出”在后面,但是其实真实的效果却是。。。



其实它们的功能几乎都是一样的,但是这里为什么是这种情况呢?这是因为out是JspWriter对象,我们先往JspWriter对象中输出内容保存在JspWriter的缓冲区,接着又往response的缓冲区中输出内容。大家都知道我们往浏览器输出数据时是靠response对象来输出数据的,在浏览器展示之前JspWriter的缓冲区的内容会先写到response中,这样response中的内容肯定是先把“我后输出”写在前面,之后又把out缓冲区中的内容添加到后面。所以导致我们看的结果是这样的。如果看不懂,我下面随便花了张图,帮助理解下(画的难看,能说明意思就行)



所以导致了我们看到的结果,大家可以理解了吧。所以建议尽量在jsp中需要输出的时候,直接使用out对象输出就可以了,不然会混乱的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息