辨析JspWriter和PrintWriter

JspWriter和PrintWriter的区别?

JspWriter相当于带缓冲的PrintWriter

 

如何控制out缓冲?

通过设置JSP页面page指令的buffer属性, 可以调整out缓冲大小, 或关闭缓冲.

 

out缓冲何时输出?

当满足下面其中一个条件时:

1)       关闭out的缓存功能时

2)       out缓冲已满

3)       JSP页面结束

 

同时使用out对象和PrintWriter输出数据的现象?

<%

         out.write(“aaa”);  // JspWriter

         response.getWrite(“bbb”)  // PrintWriter

%>

输出顺序:

bbb

aaa

 

原因? out对象工作原理图解:

 

如何在JSP页面获取字节流?

当JSP获取字节流后, 服务器一般会抛异常, 这是因为Servlet无法同时获得字节流和字符流, 如果我们真需要字节流, 那么就要控制JSP使用out对象输出, 那么如何控制out对象不输出呢?只要JSP页面没有模板内容(包括换行和空格), out对象就不会调用ServletResponse.getWriter()方法, 也就不会获得PrintWriter对象, 这样JSP翻译后的Servlet就不会同时存在字节流和字符流.

posted on 2018-08-25 21:36  ert999  阅读(327)  评论(0编辑  收藏  举报

导航