原作者為 RioTian@cnblogs, 本作品采用 CC 4.0 BY 進行許可,轉載請注明出處。
本篇學習自:C語言中文網,部分內容轉載僅供學習使用。
out 對象是一個輸出流,用來向客戶端輸出數據,可以是各種數據類型的內容,同時,它還可以管理應用服務器上的輸出緩沖區,緩沖區的默認值是 8KB,可以通過頁面指令 page 來改變默認大小。
換句話來說,out 對象在Web應用中就等同 Java 的 Print 方法、動態的向JSP頁面輸出字符流,從而把動態的內容轉化成HTML形式來展示,這個對象在任何JSP頁面中都可以任意訪問。
out 對象是一個繼承自抽象類 javax.servlet.jsp.JspWriter 的實例,在實際應用中,out 對象會通過 JSP 容器變換為 java.io.PrintWriter 類的對象。
在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。數據輸出完畢后要及時關閉輸出流。下面介紹 out 對象的應用。下表列出了 out 對象常用的方法。
| 方法 | 說明 |
|---|---|
| void print(各種數據類型) | 將指定類型的數據輸出到 HTTP 流,不換行 |
| void println(各種數據類型) | 將指定類型的數據輸出到 HTTP 流,並輸出一個換行符 |
| void newline | 輸出換行字符 |
JSP out 對象全體方法解釋:Here
向客戶端輸出數據
在使用 print() 或 println() 方法向客戶端輸出時,由於客戶端是瀏覽器,因此可以使用 HTML 中的一些標記控制輸出格式。例如:
out.println("<font color=red> Hello </font>");
管理輸出緩沖區
默認情況下,服務端要輸出到客戶端的內容不直接寫到客戶端,而是先寫到一個輸出緩沖區中。使用 out 對象的 getBufferSize() 方法取得當前緩沖區的大小(單位是 KB),用 getRemaining() 方法取得當前使用后還剩余的緩沖區的大小(單位是 KB)。
JSP 只有在下面三種情況下,才會把緩沖區的內容輸出到客戶端。
- 該 JSP 網頁已完成信息的輸出。
- 輸出緩沖區己滿。
- JSP 中調用了
out.flush()或response.flushBuffer()。
另外,調用 out 對象的 clear() 方法,可以清除緩沖區的內容,類似於重置響應流,以便重新開始操作。如果響應已經提交,則會產生 IOException 異常。此外,另一種方法 clearBuffer() 可以清除緩沖區“當前”內容,而且即使內容已經提交給客戶端,也能夠訪問該方法。
【例1】用 out 對象管理輸出緩沖區,代碼如下:
<%@ page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>JSP - Hello World!</title>
</head>
<body>
<h2>out對象管理輸出緩沖區</h2>
<%
out.println("使用 out 對象管理緩沖區:<br>");
%>
<br>
緩沖大小: <%=out.getBufferSize()%><br>
剩余緩存大小: <%=out.getRemaining()%><br>
是否自動刷新: <%=out.isAutoFlush()%><br>
</body>
</html>

