jsp中的out是jspWriter对象,out.print("abc")和out.write("abc")是把abc写到response对象中呢?还是直接将abc输出到浏览器端?活着说out.print究竟做了什么事情.还有个问题,请说一下out.print与out.write的区别,谢谢
2 回答
![?](http://img1.sycdn.imooc.com/533e4d660001312002000200-100-100.jpg)
慕妹3146593
TA贡献1820条经验 获得超9个赞
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
哈士奇WWW
TA贡献1799条经验 获得超6个赞
out:JspWriter对象表示服务器端向客户浏览器输出的流,但是这个流会在response中进行缓冲,并不是直接向客户输出。在一个servlet中,所有的流写入语句执行完后,servlet会把这些语句的缓存内容打包成http响应返回给浏览器。有一个现象不知道你注意了没?有一个方法:setHeader(还是setHead我忘了),他是设置http响应头的。不管你多晚才执行了setHeader,setHeader之前有多少个out.print,最终返回给浏览器的数据中setHeader的内容肯定在out.print内容的前面,这可以证明out的内容会被先缓存。所以out的内容会被先缓存在response中,最后再一次性给浏览器。
对于print和write。除了字符集以外。这两个是没有多大区别的,因为JspWriter继承了Writer类,而这个类就实现了这两个方法。事实上System.out这个流也是一个Writer,Writer这个设计模式是一个历史遗留,是一个不好的模式,受到很多人的批评。所以这两个方法你不用管它。print默认使用本身字符集。
添加回答
举报
0/150
提交
取消