org.apache.struts2.jasper.runtime

## Class PageContextImpl

- java.lang.Object
- - javax.servlet.jsp.JspContext
  - - javax.servlet.jsp.PageContext
    - - org.apache.struts2.jasper.runtime.PageContextImpl

-     public class PageContextImpl
      extends javax.servlet.jsp.PageContext

  Implementation of the PageContext class from the JSP spec. Also doubles as a VariableResolver for the EL.
  Author:
    Anil K. Vijendran, Larry Cable, Hans Bergsten, Pierre Delisle, Mark Roth, Jan Luehe, Jacob Hookom

- - ### Field Summary

    - ### Fields inherited from class javax.servlet.jsp.PageContext

      `APPLICATION, APPLICATION_SCOPE, CONFIG, EXCEPTION, OUT, PAGE, PAGE_SCOPE, PAGECONTEXT, REQUEST, REQUEST_SCOPE, RESPONSE, SESSION, SESSION_SCOPE`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `findAttribute(String name)`
    `void` | `forward(String relativeUrlPath)`
    `Object` | `getAttribute(String name)`
    `Object` | `getAttribute(String name, int scope)`
    `Enumeration<String>` | `getAttributeNamesInScope(int scope)`
    `int` | `getAttributesScope(String name)`
    `javax.el.ELContext` | `getELContext()`
    `Exception` | `getException()` Returns the exception associated with this page context, if any.
    `javax.servlet.jsp.el.ExpressionEvaluator` | `getExpressionEvaluator()` Provides programmatic access to the ExpressionEvaluator.
    `javax.servlet.jsp.JspWriter` | `getOut()`
    `Object` | `getPage()`
    `javax.servlet.ServletRequest` | `getRequest()`
    `javax.servlet.ServletResponse` | `getResponse()`
    `javax.servlet.Servlet` | `getServlet()`
    `javax.servlet.ServletConfig` | `getServletConfig()`
    `javax.servlet.ServletContext` | `getServletContext()`
    `javax.servlet.http.HttpSession` | `getSession()`
    `javax.servlet.jsp.el.VariableResolver` | `getVariableResolver()`
    `void` | `handlePageException(Exception ex)`
    `void` | `handlePageException(Throwable t)`
    `void` | `include(String relativeUrlPath)`
    `void` | `include(String relativeUrlPath, boolean flush)`
    `void` | `initialize(javax.servlet.Servlet servlet, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)`
    `javax.servlet.jsp.JspWriter` | `popBody()`
    `static Object` | `proprietaryEvaluate(String expression, Class expectedType, javax.servlet.jsp.PageContext pageContext, ProtectedFunctionMapper functionMap, boolean escape)` Proprietary method to evaluate EL expressions.
    `javax.servlet.jsp.tagext.BodyContent` | `pushBody()`
    `javax.servlet.jsp.JspWriter` | `pushBody(Writer writer)`
    `void` | `release()`
    `void` | `removeAttribute(String name)`
    `void` | `removeAttribute(String name, int scope)`
    `void` | `setAttribute(String name, Object attribute)`
    `void` | `setAttribute(String name, Object o, int scope)`

    - ### Methods inherited from class javax.servlet.jsp.PageContext

      `getErrorData`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### initialize

          public void initialize(javax.servlet.Servlet servlet,
                                 javax.servlet.ServletRequest request,
                                 javax.servlet.ServletResponse response,
                                 String errorPageURL,
                                 boolean needsSession,
                                 int bufferSize,
                                 boolean autoFlush)
                          throws IOException

      Specified by:
        `initialize` in class `javax.servlet.jsp.PageContext`
      Throws:
        `IOException`

    - #### release

          public void release()

      Specified by:
        `release` in class `javax.servlet.jsp.PageContext`

    - #### getAttribute

          public Object getAttribute(String name)

      Specified by:
        `getAttribute` in class `javax.servlet.jsp.JspContext`

    - #### getAttribute

          public Object getAttribute(String name,
                                     int scope)

      Specified by:
        `getAttribute` in class `javax.servlet.jsp.JspContext`

    - #### setAttribute

          public void setAttribute(String name,
                                   Object attribute)

      Specified by:
        `setAttribute` in class `javax.servlet.jsp.JspContext`

    - #### setAttribute

          public void setAttribute(String name,
                                   Object o,
                                   int scope)

      Specified by:
        `setAttribute` in class `javax.servlet.jsp.JspContext`

    - #### removeAttribute

          public void removeAttribute(String name,
                                      int scope)

      Specified by:
        `removeAttribute` in class `javax.servlet.jsp.JspContext`

    - #### getAttributesScope

          public int getAttributesScope(String name)

      Specified by:
        `getAttributesScope` in class `javax.servlet.jsp.JspContext`

    - #### findAttribute

          public Object findAttribute(String name)

      Specified by:
        `findAttribute` in class `javax.servlet.jsp.JspContext`

    - #### getAttributeNamesInScope

          public Enumeration<String> getAttributeNamesInScope(int scope)

      Specified by:
        `getAttributeNamesInScope` in class `javax.servlet.jsp.JspContext`

    - #### removeAttribute

          public void removeAttribute(String name)

      Specified by:
        `removeAttribute` in class `javax.servlet.jsp.JspContext`

    - #### getOut

          public javax.servlet.jsp.JspWriter getOut()

      Specified by:
        `getOut` in class `javax.servlet.jsp.JspContext`

    - #### getSession

          public javax.servlet.http.HttpSession getSession()

      Specified by:
        `getSession` in class `javax.servlet.jsp.PageContext`

    - #### getServlet

          public javax.servlet.Servlet getServlet()

    - #### getServletConfig

          public javax.servlet.ServletConfig getServletConfig()

      Specified by:
        `getServletConfig` in class `javax.servlet.jsp.PageContext`

    - #### getServletContext

          public javax.servlet.ServletContext getServletContext()

      Specified by:
        `getServletContext` in class `javax.servlet.jsp.PageContext`

    - #### getRequest

          public javax.servlet.ServletRequest getRequest()

      Specified by:
        `getRequest` in class `javax.servlet.jsp.PageContext`

    - #### getResponse

          public javax.servlet.ServletResponse getResponse()

      Specified by:
        `getResponse` in class `javax.servlet.jsp.PageContext`

    - #### getException

          public Exception getException()

      Returns the exception associated with this page context, if any.
      Added wrapping for Throwables to avoid ClassCastException: see Bugzilla 31171 for details.
      Specified by:
        `getException` in class `javax.servlet.jsp.PageContext`
      Returns:
        The Exception associated with this page context, if any.

    - #### getPage

          public Object getPage()

      Specified by:
        `getPage` in class `javax.servlet.jsp.PageContext`

    - #### include

          public void include(String relativeUrlPath)
                       throws javax.servlet.ServletException,
                              IOException

      Specified by:
        `include` in class `javax.servlet.jsp.PageContext`
      Throws:
        `javax.servlet.ServletException`
        `IOException`

    - #### include

          public void include(String relativeUrlPath,
                              boolean flush)
                       throws javax.servlet.ServletException,
                              IOException

      Specified by:
        `include` in class `javax.servlet.jsp.PageContext`
      Throws:
        `javax.servlet.ServletException`
        `IOException`

    - #### getVariableResolver

          public javax.servlet.jsp.el.VariableResolver getVariableResolver()

      Specified by:
        `getVariableResolver` in class `javax.servlet.jsp.JspContext`

    - #### forward

          public void forward(String relativeUrlPath)
                       throws javax.servlet.ServletException,
                              IOException

      Specified by:
        `forward` in class `javax.servlet.jsp.PageContext`
      Throws:
        `javax.servlet.ServletException`
        `IOException`

    - #### pushBody

          public javax.servlet.jsp.tagext.BodyContent pushBody()

      Overrides:
        `pushBody` in class `javax.servlet.jsp.PageContext`

    - #### pushBody

          public javax.servlet.jsp.JspWriter pushBody(Writer writer)

      Overrides:
        `pushBody` in class `javax.servlet.jsp.JspContext`

    - #### popBody

          public javax.servlet.jsp.JspWriter popBody()

      Overrides:
        `popBody` in class `javax.servlet.jsp.JspContext`

    - #### getExpressionEvaluator

          public javax.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator()

      Provides programmatic access to the ExpressionEvaluator. The JSP Container must return a valid instance of an ExpressionEvaluator that can parse EL expressions.
      Specified by:
        `getExpressionEvaluator` in class `javax.servlet.jsp.JspContext`

    - #### handlePageException

          public void handlePageException(Exception ex)
                                   throws IOException,
                                          javax.servlet.ServletException

      Specified by:
        `handlePageException` in class `javax.servlet.jsp.PageContext`
      Throws:
        `IOException`
        `javax.servlet.ServletException`

    - #### handlePageException

          public void handlePageException(Throwable t)
                                   throws IOException,
                                          javax.servlet.ServletException

      Specified by:
        `handlePageException` in class `javax.servlet.jsp.PageContext`
      Throws:
        `IOException`
        `javax.servlet.ServletException`

    - #### proprietaryEvaluate

          public static Object proprietaryEvaluate(String expression,
                                                   Class expectedType,
                                                   javax.servlet.jsp.PageContext pageContext,
                                                   ProtectedFunctionMapper functionMap,
                                                   boolean escape)
                                            throws javax.servlet.jsp.el.ELException

      Proprietary method to evaluate EL expressions. XXX - This method should go away once the EL interpreter moves out of JSTL and into its own project. For now, this is necessary because the standard machinery is too slow.
      Parameters:
        `expression` - The expression to be evaluated
        `expectedType` - The expected resulting type
        `pageContext` - The page context
        `functionMap` - Maps prefix and name to Method
        `escape` - enable escaping
      Returns:
        The result of the evaluation
      Throws:
        `javax.servlet.jsp.el.ELException` - in case of errors

    - #### getELContext

          public javax.el.ELContext getELContext()

      Specified by:
        `getELContext` in class `javax.servlet.jsp.JspContext`

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.