天天看點

response.getWriter().write()與out.print()的差別

response.getWriter().write()與out.print()的差別

1、首先介紹write()和print()方法的差別:

  (1)、write():僅支援輸出字元類型資料,字元、字元數組、字元串等

  (2)、print():可以将各種類型(包括Object)的資料通過預設編碼轉換成bytes位元組形式,這些位元組都通過write(int c)方法被輸出

2、介紹response.getWriter()和out的差別:

  (1)、out和response.getWriter的類不一樣,一個是JspWriter,另一個是java.io.PrintWriter。

  (2)、執行原理不同:JspWriter相當于一個帶緩存功能的printWriter,它不是直接将資料輸出到頁面,而是将資料重新整理到response的緩沖區後再輸出,

      response.getWriter直接輸出資料(response.print()),是以(out.print)隻能在其後輸出。 

  (3)、out為jsp的内置對象,重新整理jsp頁面,自動初始化獲得out對象,是以使用out對象是需要重新整理頁面的,

       而response.getWriter()響應資訊通過out對象輸出到網頁上,當響應結束時它自動被關閉,與jsp頁面無關,無需重新整理頁面

       形象的比喻:當我們調用response.getWriter()這個對象同時獲得了網頁的畫筆,這時你就可以通過這個畫筆在網頁上畫任何你想要顯示的東西。

  (4)、out的print()方法和println()方法在緩沖區溢出并且沒有自動重新整理時候會産生ioexception,

       而response.getWrite()方法的print和println中都是抑制ioexception異常的,不會有ioexception 

   out.println(""); 方法并不能也頁面布局換行,隻能領html代碼換行,要實作頁面布局換行可以:out.println("</br>");