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请求格式图):
PS: 附件 是对《深入体验Java_Web开发内幕-核心基础\》部分源代码的重新整理了。
……
参考:《深入体验Java_Web开发内幕-核心基础\》