課程
/后端開發(fā)
/Java
/JAVA遇見HTML——JSP篇
既然有內(nèi)置對象out了,那PrintWrite是否有點多余?感覺PrintWrite并沒有相比于out優(yōu)越的地方。
2016-06-17
源自:JAVA遇見HTML——JSP篇 3-10
正在回答
這跟jsp的輸出原理有關(guān),JspWriter相當(dāng)于一個帶緩存功能的printwriter,它不是直接將數(shù)據(jù)輸出到頁面,而是將數(shù)據(jù)刷新到 response的緩沖區(qū)后再輸出。
response.getWriter()和out的區(qū)別:??(1)、out是JspWriter類,response.getWriter是java.io.PrintWriter類。??(2)、執(zhí)行原理不同:JspWriter相當(dāng)于一個帶緩存功能的printWriter,它不是直接將數(shù)據(jù)輸出到頁面,而是將數(shù)據(jù)刷新到response的緩沖區(qū)后再輸出,response.getWriter直接輸出數(shù)據(jù)(response.print()),所以(out.print)只能在其后輸出。???(3)、out為jsp的內(nèi)置對象,刷新jsp頁面,自動初始化獲得out對象,所以使用out對象是需要刷新頁面的, 而response.getWriter()響應(yīng)信息通過out對象輸出到網(wǎng)頁上,當(dāng)響應(yīng)結(jié)束時它自動被關(guān)閉,與jsp頁面無關(guān),無需刷新頁面,形象的比喻:當(dāng)我們調(diào)用response.getWriter()這個對象同時獲得了網(wǎng)頁的畫筆,這時你就可以通過這個畫筆在網(wǎng)頁上畫任何你想要顯示的東西。??(4)、out的print()方法和println()方法在緩沖區(qū)溢出且無自動刷新時會產(chǎn)生ioexception,而response.getWrite()方法的print和println中都是抑制ioexception異常的,不會有ioexception 。????? 另外:out.println(""); 方法并不能也頁面布局換行,只能將html代碼換行,要實現(xiàn)頁面布局換行可以:out.println("</br>");
可能有時需要輸出提前于內(nèi)置對象的輸出時用吧
舉報
Java Web入門級教程JSP,帶你輕松的學(xué)習(xí)JSP基礎(chǔ)知識
1 回答jsp中PrintWrite提示錯誤
1 回答關(guān)于Eclipse的問題
2 回答關(guān)于equals的問題
2 回答關(guān)于Connection的問題
1 回答關(guān)于端口的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-26
這跟jsp的輸出原理有關(guān),JspWriter相當(dāng)于一個帶緩存功能的printwriter,它不是直接將數(shù)據(jù)輸出到頁面,而是將數(shù)據(jù)刷新到 response的緩沖區(qū)后再輸出。
response.getWriter()和out的區(qū)別:
??(1)、out是JspWriter類,response.getWriter是java.io.PrintWriter類。
??(2)、執(zhí)行原理不同:JspWriter相當(dāng)于一個帶緩存功能的printWriter,它不是直接將數(shù)據(jù)輸出到頁面,而是將數(shù)據(jù)刷新到response的緩沖區(qū)后再輸出,response.getWriter直接輸出數(shù)據(jù)(response.print()),所以(out.print)只能在其后輸出。?
??(3)、out為jsp的內(nèi)置對象,刷新jsp頁面,自動初始化獲得out對象,所以使用out對象是需要刷新頁面的, 而response.getWriter()響應(yīng)信息通過out對象輸出到網(wǎng)頁上,當(dāng)響應(yīng)結(jié)束時它自動被關(guān)閉,與jsp頁面無關(guān),無需刷新頁面,形象的比喻:當(dāng)我們調(diào)用response.getWriter()這個對象同時獲得了網(wǎng)頁的畫筆,這時你就可以通過這個畫筆在網(wǎng)頁上畫任何你想要顯示的東西。
??(4)、out的print()方法和println()方法在緩沖區(qū)溢出且無自動刷新時會產(chǎn)生ioexception,而response.getWrite()方法的print和println中都是抑制ioexception異常的,不會有ioexception 。
???
?? 另外:out.println(""); 方法并不能也頁面布局換行,只能將html代碼換行,要實現(xiàn)頁面布局換行可以:out.println("</br>");
2016-06-18
可能有時需要輸出提前于內(nèi)置對象的輸出時用吧