为什么会有JSP内置对象
当调用JSP servlet时,JSP引擎将为JSP servlet传递和创建九个与web开发相关的对象。 JSP技术的设计者定义了九个相应的变量,以便于开发人员在创建JSP页时引用这些web对象。 开发人员可以在JSP页中使用这些变量来快速获取对这九个对象的引用
9个内置对象:
页面
康菲
APP
请求
响应
会话
出局
表达式
pageContext
out对象
out对象用于向浏览器输出数据,并与servlet的PrintWriter对象相对应,但该out对象的类型是JspWriter,而不是PrintWriter类型。
jsp输出的基础是response.getWriter ()。 这里需要说明的是jsp缓存和servlet缓存。 输出过程如下。
84710-2017022202031054-1615917490.png
在将JSP页转换为servlet后,使用的out对象是JspWriter类型,因此必须首先将要发送的数据存储在JSP输出缓存中,然后等待,直到JSP输出缓存自动更新到servlet输出缓存中除非手动out.flush ()。
图像. png
图像. png
分析:如果没有jsp缓存和servlet缓存,输出结果应该是abc,但输出的是bac。 为什么会这样呢? 根据上述原理分析,out对象首先输出到JSP缓存,所以a进入JSP缓存,response.getwriter(.print ) ' b )直接将b输出到servlet缓存,然后原因是您已手动将jsp缓存中的数据更新到servlet缓存中。
out对象的API
int getBufferSize ()【得到高速缓存大小】
int getRemaining ()【获得未使用的缓存的大小】
布尔is autoflush (
void println (
void flush () )
void close () )
void clearBuffer ()
void clear () )