jsp-九大内置对象

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("")都属于态包含)

 

posted @ 2016-04-22 09:02  戒。  阅读(90)  评论(0编辑  收藏  举报