pageContext有个方法 setAttribute...
据说它是javax.servlet.jsp.PageContext类的实例对象
但是在PageContext中没发现这个方法 package javax.servlet.jsp;import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.BodyContent;public abstract class PageContext extends JspContext
{
  public static final int PAGE_SCOPE = 1;
  public static final int REQUEST_SCOPE = 2;
  public static final int SESSION_SCOPE = 3;
  public static final int APPLICATION_SCOPE = 4;
  public static final String PAGE = "javax.servlet.jsp.jspPage";
  public static final String PAGECONTEXT = "javax.servlet.jsp.jspPageContext";
  public static final String REQUEST = "javax.servlet.jsp.jspRequest";
  public static final String RESPONSE = "javax.servlet.jsp.jspResponse";
  public static final String CONFIG = "javax.servlet.jsp.jspConfig";
  public static final String SESSION = "javax.servlet.jsp.jspSession";
  public static final String OUT = "javax.servlet.jsp.jspOut";
  public static final String APPLICATION = "javax.servlet.jsp.jspApplication";
  public static final String EXCEPTION = "javax.servlet.jsp.jspException";  public abstract void initialize(Servlet paramServlet, ServletRequest paramServletRequest, ServletResponse paramServletResponse, String paramString, boolean paramBoolean1, int paramInt, boolean paramBoolean2)
    throws IOException, IllegalStateException, IllegalArgumentException;  public abstract void release();  public abstract HttpSession getSession();  public abstract Object getPage();  public abstract ServletRequest getRequest();  public abstract ServletResponse getResponse();  public abstract Exception getException();  public abstract ServletConfig getServletConfig();  public abstract ServletContext getServletContext();  public abstract void forward(String paramString)
    throws ServletException, IOException;  public abstract void include(String paramString)
    throws ServletException, IOException;  public abstract void include(String paramString, boolean paramBoolean)
    throws ServletException, IOException;  public abstract void handlePageException(Exception paramException)
    throws ServletException, IOException;  public abstract void handlePageException(Throwable paramThrowable)
    throws ServletException, IOException;  public BodyContent pushBody()
  {
    return null;
  }  public ErrorData getErrorData()
  {
    return new ErrorData((Throwable)getRequest().getAttribute("javax.servlet.error.exception"), ((Integer)getRequest().getAttribute("javax.servlet.error.status_code")).intValue(), (String)getRequest().getAttribute("javax.servlet.error.request_uri"), (String)getRequest().getAttribute("javax.servlet.error.servlet_name"));
  }
}再看看它继承的JspContext 也没有 求解package javax.servlet.jsp;import java.io.Writer;
import java.util.Enumeration;
import javax.el.ELContext;
import javax.servlet.jsp.el.ExpressionEvaluator;
import javax.servlet.jsp.el.VariableResolver;public abstract class JspContext
{
  public abstract void setAttribute(String paramString, Object paramObject);  public abstract void setAttribute(String paramString, Object paramObject, int paramInt);  public abstract Object getAttribute(String paramString);  public abstract Object getAttribute(String paramString, int paramInt);  public abstract Object findAttribute(String paramString);  public abstract void removeAttribute(String paramString);  public abstract void removeAttribute(String paramString, int paramInt);  public abstract int getAttributesScope(String paramString);  public abstract Enumeration<String> getAttributeNamesInScope(int paramInt);  public abstract JspWriter getOut();  /** @deprecated */
  public abstract ExpressionEvaluator getExpressionEvaluator();  /** @deprecated */
  public abstract VariableResolver getVariableResolver();  public abstract ELContext getELContext();  public JspWriter pushBody(Writer writer)
  {
    return null;
  }  public JspWriter popBody()
  {
    return null;
  }
}