現(xiàn)象
1,內(nèi)容區(qū)顯示空白或部分頁面;
2,“查看源文件”,里面代碼不完整;

解決方式
1,在jsp第一行添加 "<%@ page buffer="108kb" autoFlush="true" %>",如果還是不行,增加108kb這個(gè)數(shù)值,一直到頁面出現(xiàn)jsp拋錯(cuò)的堆棧信息。
2,根據(jù)堆棧信息解決此問題。

原因以及本質(zhì)

 

服務(wù)端的輸出緩沖區(qū) 
缺省情況下:服務(wù)端要輸出到客戶端的內(nèi)容,不直接寫到客戶端,而是先寫到一個(gè)輸出緩沖區(qū)中.只有在下面三中情況下,才會(huì)把該緩沖區(qū)的內(nèi)容輸出到客戶端上: 


1
)該jsp網(wǎng)頁已完成信息的輸出 

2
)輸出緩沖區(qū)已滿 

3
)jsp中調(diào)用了out.flush()或response.flushbuffer() 

輸出緩沖區(qū)的大小可以用: 或response.setbuffersize()設(shè)置,如下: 

1)設(shè)置輸出緩沖區(qū)的大小為1kb。 或response.setbuffersize(1
); 

2)設(shè)置輸出緩沖區(qū)的大小為0,即不緩沖。 或response.setbuffersize(0
); 

用response.getbuffersize()或out.getbuffersize()可取的輸出緩沖區(qū)的大小,單位為字節(jié). 用response.iscommitted()可檢查看服務(wù)端是否已將數(shù)據(jù)輸出到客戶端. 如果返回值是true則已將數(shù)據(jù)輸出到客戶端,是false則還沒有. 

1,jsp代碼有bug[或者缺少相關(guān)配置文件,相關(guān)依賴類];
2,當(dāng)頁面buffer用得差不多的時(shí)候,這時(shí)候如果有運(yùn)行時(shí)異常,tomcat處理不了時(shí)就會(huì)將運(yùn)行時(shí)異常信息輸出到j(luò)sp頁面的buffer區(qū),導(dǎo)致有部分內(nèi)容還停留在buffer,而此時(shí)頁面在還未完成網(wǎng)頁輸出,緩沖區(qū)未滿,也未調(diào)用flush的情況下不會(huì)繼續(xù)處理后面的網(wǎng)頁信息輸出,tomcat將此時(shí)已經(jīng)處理的部分代碼返回給瀏覽器去解析,由于內(nèi)容不完整,導(dǎo)致了出現(xiàn) 空頁面或部分頁面。
3,可以調(diào)用 <%=out.getRemaining() %> 方法查看jsp的buffer剩余量。