日期:2014-05-20  浏览次数:21452 次

PageContext
pageContext有个方法 setAttribute...
据说它是javax.servlet.jsp.PageContext类的实例对象
但是在PageContext中没发现这个方法 
Java code

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 也没有 求解
Java code

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;
  }
}