1. 程式人生 > 其它 >JSP | out 物件詳解

JSP | out 物件詳解

原作者為 RioTian@cnblogs, 本作品採用 CC 4.0 BY 進行許可,轉載請註明出處。

本篇學習自:C語言中文網,部分內容轉載僅供學習使用。


\[QAQ \]

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 只有在下面三種情況下,才會把緩衝區的內容輸出到客戶端。

  1. 該 JSP 網頁已完成資訊的輸出。
  2. 輸出緩衝區己滿。
  3. 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>

The desire of his soul is the prophecy of his fate
你靈魂的慾望,是你命運的先知。