javaee-ServletRequest 种相关源代码解析

javaee-ServletRequest 类相关源代码解析

1.ServletRequest接口源代码

 

 

package javax.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;

public abstract interface ServletRequest
{
  public abstract Object getAttribute(String paramString);

  public abstract Enumeration getAttributeNames();

  public abstract String getCharacterEncoding();

  public abstract void setCharacterEncoding(String paramString)
    throws UnsupportedEncodingException;

  public abstract int getContentLength();

  public abstract String getContentType();

  public abstract ServletInputStream getInputStream()
    throws IOException;

  public abstract String getParameter(String paramString);

  public abstract Enumeration getParameterNames();

  public abstract String[] getParameterValues(String paramString);

  public abstract Map getParameterMap();

  public abstract String getProtocol();

  public abstract String getScheme();

  public abstract String getServerName();

  public abstract int getServerPort();

  public abstract BufferedReader getReader()
    throws IOException;

  public abstract String getRemoteAddr();

  public abstract String getRemoteHost();

  public abstract void setAttribute(String paramString, Object paramObject);

  public abstract void removeAttribute(String paramString);

  public abstract Locale getLocale();

  public abstract Enumeration getLocales();

  public abstract boolean isSecure();

  public abstract RequestDispatcher getRequestDispatcher(String paramString);

  /**
   * @deprecated
   */
  public abstract String getRealPath(String paramString);

  public abstract int getRemotePort();

  public abstract String getLocalName();

  public abstract String getLocalAddr();

  public abstract int getLocalPort();
}
 

 

2.HttpServletRequest接口继承了ServletRequest接口,源代码如下

 

 

package javax.servlet.http;

import java.security.Principal;
import java.util.Enumeration;
import javax.servlet.ServletRequest;

public abstract interface HttpServletRequest extends ServletRequest
{
  public static final String BASIC_AUTH = "BASIC";
  public static final String FORM_AUTH = "FORM";
  public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";
  public static final String DIGEST_AUTH = "DIGEST";

  public abstract String getAuthType();

  public abstract Cookie[] getCookies();

  public abstract long getDateHeader(String paramString);

  public abstract String getHeader(String paramString);

  public abstract Enumeration getHeaders(String paramString);

  public abstract Enumeration getHeaderNames();

  public abstract int getIntHeader(String paramString);

  public abstract String getMethod();

  public abstract String getPathInfo();

  public abstract String getPathTranslated();

  public abstract String getContextPath();

  public abstract String getQueryString();

  public abstract String getRemoteUser();

  public abstract boolean isUserInRole(String paramString);

  public abstract Principal getUserPrincipal();

  public abstract String getRequestedSessionId();

  public abstract String getRequestURI();

  public abstract StringBuffer getRequestURL();

  public abstract String getServletPath();

  public abstract HttpSession getSession(boolean paramBoolean);

  public abstract HttpSession getSession();

  public abstract boolean isRequestedSessionIdValid();

  public abstract boolean isRequestedSessionIdFromCookie();

  public abstract boolean isRequestedSessionIdFromURL();

  /**
   * @deprecated
   */
  public abstract boolean isRequestedSessionIdFromUrl();
}
 

      这些方法多数一目了然,下载附件中的例子就可以自己试试。

 

 

2.1 HttpServletRequest对象所想描述的结构如下(http请求格式图):

 

javaee-ServletRequest 种相关源代码解析

 

     PS: 附件 是对《深入体验Java_Web开发内幕-核心基础\》部分源代码的重新整理了javaee-ServletRequest 种相关源代码解析

……

 

参考:《深入体验Java_Web开发内幕-核心基础\》