【Java.Web】JSP —— 语法基础 —— PageContext抽象类

public abstract class PageContext
extends JspContext


PageContext类的应用场合主要包括:

  • JSP文件中的Java程序片段
  • JSP文件中的自定义标签的处理类


PageContext类中的方法可以分为以下几种:

  • 用于向各种范围内存取属性的方法

    • getAttribute(String name)返回页面范围内的特定属性的值
    • getAttribute(String name, int scope)返回参数scope指定的范围内的特定属性的值
    • setAttribute(String name,Object value, int scope)向参数scope指定的范围内存放属性
    • removeAttribute(String name, int scope)从参数scope指定的范围内删除特定属性
    • findAttribute(String name)一次从页面范围,请求范围,会话范围和Web应用范围内寻找参数name指定的属性,如果找到,就立即返回该属性的值;如果在所有的范围内都不存在该属性,就返回null
    • getAttributeScope(String name)返回参数指定的属性所属的范围,如果在所有的范围内都不存在该属性,就返回0


        scope参数指定属性的范围,可选值为PageContext类的4个静态常量:

    • PageContext.PAGE_SCOPE —— 实际取值为1,表示页面范围。
    • PageContext.REQUEST_SCOPE —— 实际取值为2,表示请求范围
    • PageContext.SESSION_SCOPE —— 实际取值为3,表示会话范围
    • PageContext.APPLICATION_SCOPE —— 实际取值为4,表示Web应用范围
       

        PageContext对象有Servlet容器负责创建,JSP文件可以直接通过隐含变量pageContext来引用PageContext对象。


  • 用于获得由Servlet容器提供的其他对象的引用的方法

             PageContext类的以下方法用于获得由Servlet容器提供的ServletContext, HttpSession, ServletRequest和ServletResponse对象:

    • getPage()返回当前JSP对应的Servlet实例
    • getRequest()返回ServletRequest对象
    • getResponse()返回ServletResponse对象
    • getServletConfig()返回ServletConfig对象
    • getServletContext(0返回ServletContext对象
    • getSession()返回HttpSession()对象
    • getOut()返回一个用于输出响应正文的JspWriter对象


在JSP文件中的Java程序片段中,可以直接通过application, request, response变量来引用ServletContext, ServletRequest, ServletResponse对象。

而在自定义的JSP标签的处理类中,无法使用隐含变量,此时就需要依靠PageContext类的相关方法得到这些对象。


  • 用于请求转发和包含的方法

            PageContext类的一下方法用于请求转发和包含:

    • forward(String relativeUrlPath) 用于把请求转发给其他Web组件
    • include(String relativeUrlPath) 用于包含其他Web组件


在JSP文件中可以使用专门的JSP标记<jsp:forward>和<jsp:include>,来进行请求转发和包含操作。

而在自定义的JSP标签的处理类中,无法使用JSP标记,此时就需要依靠PageContext类的相关方法来进行请求转发和包含操作。








你可能感兴趣的:(java,Web)