out隐式对象
*
out隐式对象用于向客户端发送文本数据
*
out对象是通过pageContext对象的getOut()方法返回的,其作用与ServletResponse.getWriter方法返回
的PrintWriter对象非常相似。
*
jsp页面的out隐式对象类型为JspWriter,JspWriter相当于一种带有缓存功能的
PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至可以关闭它的资源
*
只有向out对象写入了内容,且满足如下的一个条件的时候,out对象才去调用ServletResponse.getWriter方法,
并通过该方法返回的PrintWriter对象将out对象的缓冲区的内容真正写到Servlet引擎的缓冲区中:
---
设置page指令的buffer属性关闭了out对象的缓存功能。
----
out对象的缓冲区已满
---
整个jsp页面结束
注意点:
out.print("123"
);
response.getWriter().write(456+""
);
结果为456123
原因是:JspWriter对象有缓冲区,首先将123写入该缓冲区,然后将456写入response的缓冲区,jsp程序结束后,将
JspWriter缓冲区的内容写到response缓冲区中
pageContext对象:
*
这个对象不仅封装了对其他8大内置对象的引用,它自身也是一个域对象,可以用来保存数据。
并且这个对象还封装了web开发中经常涉及到的一些应用操作,例如引入和跳转其他资源,
索引其他域对象中的属性等
*
通过pageContext获得其他8个对象:用在自定义标签开发技术中
*
pageContext对象中还封装了访问其他域的方法:
例如:request
request.setAttribute("data","data"
);
out.println(pageContext.getAttribute("data"
,pageContext.REQUEST_SCOPE));
findAttribute(name)方法查找的顺序page->request->session->
Application
EL表达式${data}内部执行的时候就相当于pageContext。findAttribute("data"
);
*
四个域
pageContext:page域-->
作用于整个页面范围内
request域:请求范围内
session域:会话范围内
ServletContext域(称之为application域)应用程序范围内
*pageContext还定义了一个forward("URI")和include()方法(<jsp:include page="relativeURL"/>和PageContext.include("")都属于态包含)
转载请注明原文地址: https://mac.8miu.com/read-508528.html