﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-jidebingfeng</title><link>http://www.blogjava.net/jidebingfeng/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 02 May 2026 14:40:58 GMT</lastBuildDate><pubDate>Sat, 02 May 2026 14:40:58 GMT</pubDate><ttl>60</ttl><item><title>java分段输出（chunked）</title><link>http://www.blogjava.net/jidebingfeng/archive/2016/10/09/431873.html</link><dc:creator>jidebingfeng</dc:creator><author>jidebingfeng</author><pubDate>Sun, 09 Oct 2016 10:22:00 GMT</pubDate><guid>http://www.blogjava.net/jidebingfeng/archive/2016/10/09/431873.html</guid><wfw:comment>http://www.blogjava.net/jidebingfeng/comments/431873.html</wfw:comment><comments>http://www.blogjava.net/jidebingfeng/archive/2016/10/09/431873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jidebingfeng/comments/commentRss/431873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jidebingfeng/services/trackbacks/431873.html</trackback:ping><description><![CDATA[<div><span style="white-space:pre">		</span>//设置输出类容的类型，按照下面设置后flush()才会起作用</div><div><span style="white-space:pre">		</span>response.setContentType("text/html; charset=UTF-8");</div><div><span style="white-space:pre">		</span>request.setCharacterEncoding("UTF-8");</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>PrintWriter writer = response.getWriter();</div><div></div><div><span style="white-space:pre">		</span>for(int index = 0 ;index &lt; 5 ;index++){</div><div><span style="white-space: pre;">			</span></div><div><span style="white-space:pre">			</span>writer.write("你好！&lt;br /&gt;");</div><div><span style="white-space:pre">			</span>writer.flush();</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>try {</div><div><span style="white-space:pre">				</span>Thread.sleep(1000);</div><div><span style="white-space:pre">			</span>} catch (InterruptedException e) {<span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>writer.close();<br /><br />/***<br /><br />不设置ContentType直接使用flush()不会有作用。<br /><br />如果要flush()起作用，必须先向缓冲区填充一定的内容（测试为1024个字符）。<br />网上看到的原因是容器认为缓冲区的内容过少发送的效率不高。<br /><br /><br />设置了ContentType为text/html后，flush()就会立即起作用。<br />可能是因为动态生成Html的时候加载数据比较耗时，可以先返回后让浏览器解析样式。（个人猜想）<br /><br />上面的内容没有在任何的官方文档中看到。唯一在官方文档中看到和内容大小有关系的是关于Buffer大小的设置：<br /><h3>setBufferSize</h3><pre>public void <strong>setBufferSize</strong>(int&nbsp;size)</pre><dl style="font-family: Simsun; font-size: medium;"><dd>Sets the preferred buffer size for the body of the response. The servlet container will use a buffer at least as large as the size requested. The actual buffer size used can be found using&nbsp;<code>getBufferSize</code>.<p>A larger buffer allows more content to be written before anything is actually sent, thus providing the servlet with more time to set appropriate status codes and headers. A smaller buffer decreases server memory load and allows the client to start receiving data more quickly.</p><p>This method must be called before any response body content is written; if content has been written or the response object has been committed, this method throws an&nbsp;<code>IllegalStateException</code>.</p><p>&nbsp;</p></dd><dd><dl><dt><strong>Parameters:</strong></dt><dd><code>size</code>&nbsp;- the preferred buffer size</dd><dt><strong>Throws:</strong></dt><dd><code>java.lang.IllegalStateException</code>&nbsp;- if this method is called after content has been written</dd><dt><strong>See Also:</strong></dt><dd><a href="http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html#getBufferSize()"><code>getBufferSize()</code></a>,&nbsp;<a href="http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html#flushBuffer()"><code>flushBuffer()</code></a>,&nbsp;<a href="http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html#isCommitted()"><code>isCommitted()</code></a>,&nbsp;<a href="http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html#reset()"><code>reset()</code></a></dd></dl></dd></dl><br /><div>http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html#setBufferSize(int)</div><br /><br />***/</div><img src ="http://www.blogjava.net/jidebingfeng/aggbug/431873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jidebingfeng/" target="_blank">jidebingfeng</a> 2016-10-09 18:22 <a href="http://www.blogjava.net/jidebingfeng/archive/2016/10/09/431873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>