JSP out和printwriter的区别

本文探讨了JSP中的out与write方法的输出顺序,解释了缓冲区的工作原理。通过示例代码展示了write先于out输出的原因,并提供了通过设置buffer属性为'none'来改变输出顺序的方法。理解这一机制有助于优化JSP页面的输出性能。
摘要由CSDN通过智能技术生成

代码示例: 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>输出</title>
</head>
<body>
<%
out.println(" 你好!");

PrintWriter out1 = response.getWriter();
out.write("你好?");
%>
</body>
</html>

输出结果: 

 你好? 你好!   

 可以看到write先输出,然后才是out

原因如下:

out是隐式对象,使用时会先将数据写入到JSPWrite的缓存区当中,只有调用到getWriter()方法时,才会将数据从缓存区中取出,进入到Servlet的缓存区中

write时直接调用getwrite方法,servlet缓存区是按照顺序输出的,write的数据先进入到缓存区

 r如果想先输出out里的数据,可以通过改变缓存区的大小,如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" buffer="none"%>

只需要将buffer改为零即可 

输出结果: 

你好! 你好?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值