jsp中的九大隐式对象

 当jsp一页面在第一次被访问时,web容器都会把请求交给jsp引擎去处理,jsp引擎将惊悚片翻译成一个_jspServlet,然后按照servlet的调用方式进行调用。由于第一次访问时会翻译成servlet,所有会比较慢,但第二次访问时,jsp引擎发现jsp没有变化,则不会再次翻译,而是直接调用。jsp引擎在调用jsp对应的_jspServlet时,会传递或创建九个与web开发相关的对象供_jspServlet使用,在jsp页面开发中可以直接调用这些对象。
相对于servlet,jsp独有的两大隐式对象
1、out
类型为JspWriter,相当于一种带缓存功能的PrintWriter,设置Jsp页面的page指令的buffer属性可以调整大小,只有向out对象中写入了内容且满足如下任何一个条件时才会调用ServletRespinsegetWriter方法,并通过该方法返回的PrintWriter对象将out对象缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:1、设置page指令的buffer属性关闭了out对象的缓冲功能 2、out对象的缓冲区已满3、整个Jsp页面结束
在jsp中嵌入下面的java代码
<%
  out.write("aaa");
  response.getWriter().write("bbb");
%>
则在浏览器中的显示为bbb  aaa ,原因是out.write("aaa");执行后像JspWriter缓存中写入aaa,response.getWriter().write("bbb");执行后像response的缓冲区中写入bbb,当jsp页面结束时调用ServletRespinsegetWriter方法将aaa写入response中,因此在输出时会先输出bbb再输出aaa。
pageContext对象
封装了对其他8大对象的引用,它自身还是一个域对象可以用来保存数据,并且这个对象还封装了web开发中经常涉及的一些常用操作,例如引入和跳转其他资源,检索其它域对象中的属性等。封装的8大对象的引用用在自定义标签中。
pageContext类中定义了一个forward方法和两个include方法来分别简化和替代RequestDispatcher、forward方法和include方法


 

你可能感兴趣的:(jsp,web开发,servlet,buffer,include,引擎)