zoukankan      html  css  js  c++  java
  • JSP学习(三)JSP中的九个内置对象

    JSP中的九个内置对象

    NO. 内置对象 类型
    1 pageContext javax.servlet.jsp.PageContext
    2 request javax.servlet.http.HttpServletRequest
    3 response javax.servlet.http.HttpServletResponse
    4 session javax.servlet.http.HttpSession
    5 application javax.servlet.ServletContext
    6 config javax.servlet.ServletConfig
    7 out javax.servlet.jsp.JspWriter
    8 page java.lang.Object
    9 exception java.lang.Throwable

    注意:page在开发中几乎不用,了解一下即可;

    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页面结束

    pageContext对象

    pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象(容器),可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。在jsp自定义标签开发中特别重要,可以将一些数据存储在pageContext对象中。

    通过pageContext获得其他对象

    • getException方法返回exception隐式对象
    • getPage方法返回page隐式对象
    • getRequest方法返回request隐式对象
    • getResponse方法返回response隐式对象
    • getServletConfig方法返回config隐式对象
    • getServletContext方法返回application隐式对象
    • getSession方法返回session隐式对象
    • getOut方法返回out隐式对象

    pageContext对象的常用方法

     public void setAttribute(java.lang.String name,java.lang.Object value)
     public java.lang.Object getAttribute(java.lang.String name)
     public void removeAttribute(java.lang.String name)
     public java.lang.Object findAttribute(java.lang.String name)

    pageContext对象中封装了访问其它域的方法

     public java.lang.Object getAttribute(java.lang.String name,int scope)
     public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
     public void removeAttribute(java.lang.String name,int scope)

    代表各个域的常量

     PageContext.APPLICATION_SCOPE
     PageContext.SESSION_SCOPE
     PageContext.REQUEST_SCOPE
     PageContext.PAGE_SCOPE

    PageContext引入和跳转到其他资源(用得不多,一般都使用请求转发或重定向或者jsp指令

      PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。
      方法接收的资源如果以“/”开头, “/”代表当前web应用。

    <%
        //使用pageContext的forward方法跳转到pageContextDemo05.jsp页面,/代表了当前的web应用
        pageContext.forward("/pageContextDemo05.jsp");
        //使用pageContext.forward(relativeUrlPath)替代RequestDispatcher.forward(relativeUrlPath)
        //使用RequestDispatcher的forward方法实现的跳转方式
        //pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);
    %>
    <%
        pageContext.include("/jspfragments/foot.jsp");
    %>
    <jsp:include page="/jspfragments/head.jsp"/>
  • 相关阅读:
    Python 杨辉三角形
    Python 输出由星号*组成的菱形图案
    Python 计算组合数C(n,i),即从n个元素中任选i个,有多少种选法
    Python 快速判断一个数是不是素数
    判断今天是今年的第几天
    Pyhon 输入若干个成绩,求所有成绩的平均分。每输入一个成绩后询问是 否继续输入下一个成绩,回答“yes”就继续输入下一个成绩,回答“no” 就停止输入成绩
    KMP算法
    递归实现求解幂集问题
    Python 用大量小矩形来画曲线
    Python 所谓的艺术操作2(带颜色)
  • 原文地址:https://www.cnblogs.com/huangdabing/p/9185589.html
Copyright © 2011-2022 走看看