import java.io.IOException;
import java.security.Principal;
import java.util.Collection;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
/**
* 说明:HttpServletRequest接口继承自ServletRequest接口,具备该接口中的所有方法
* 但,实现HttpServletRequest接口的类,需要实现本接口中和ServletRequest接口的全部方法
* */
public interface HttpServletRequest extends ServletRequest {
String BASIC_AUTH = "BASIC";
String FORM_AUTH = "FORM";
String CLIENT_CERT_AUTH = "CLIENT_CERT";
String DIGEST_AUTH = "DIGEST";
// 如果servlet由一个鉴定方案所保护,如HTTP基本鉴定,则返回方案名称
String getAuthType();
// 获取客户端发送的cookie
Cookie[] getCookies();
// 该方法返回指定的头名称的构建 Date 对象的 long 值。
long getDateHeader(String var1);
// 获取单个请求头name对应的value值
String getHeader(String var1);
// 获取多个同名请求头对应的一组value值,因此返回枚举类型数据
Enumeration<String> getHeaders(String var1);
// 获取请求头的所有name值,返回的数据也是一个枚举类型的数据
Enumeration<String> getHeaderNames();
// 该方法以 int 格式根据名称返回客户请求中对应的头信息(header)。
int getIntHeader(String var1);
// 获取发送请求的方式,如get,post
String getMethod();
// 返回请求的实际URL相对于请求的servlet的url的路径
String getPathInfo();
// 该方法返回 URL 中在 servlet 名称之后,在检索字符串之前的路径信息(概念太模糊,这个方法都是这么介绍的 0.0)
String getPathTranslated();
// 该方法用于获取请求 URL 中属于 Web 应用程序的路径,
// 这个路径以 / 开头,表示相对于整个 Web 站点的根目录,路径结尾不含 /。
// 如果请求 URL 属于 Web 站点的根目录,那么返回结果为空字符串("")
String getContextPath();
// 该方法用于获取请求行中的参数部分,也就是资源路径后问号(?)以后的所有内容
String getQueryString();
// 如果用户通过鉴定,返回远程用户名,否则为null
String getRemoteUser();
// 如果当前已通过鉴定用户与指定角色相关,则返回true,如果不是或用户未通过鉴定,则返回false。
boolean isUserInRole(String var1);
// 如果用户通过鉴定,返回代表当前用户的java.security.Principal对象,否则为null
Principal getUserPrincipal();
// 返回客户端的会话ID
String getRequestedSessionId();
// 该方法用于获取请求行中的资源名称部分即位于 URL 的主机和端门之后、参数部分之前的部分
String getRequestURI();
// 该方法用于获取客户端发出请求时的完整 URL,包括协议、服务器名、端口号、 资源路径等信息,
// 但不包括后面的査询参数部分。
// 注意,getRequcstURL() 方法返冋的结果是 StringBuffer 类型,
// 而不是 String 类型,这样更便于对结果进行修改
StringBuffer getRequestURL();
// 该方法用于获取 Servlet 的名称或 Servlet 所映射的路径
String getServletPath();
// 返回和客户端相关的session,如果没有分配session,则创建一个并返回(取决于参数,true表示创建)
HttpSession getSession(boolean var1);
// 返回和客户端相关的session,如果没有分配session,则返回null
HttpSession getSession();
// 如果客户端返回的会话ID仍然有效,则返回true
boolean isRequestedSessionIdValid();
// 如果请求的会话ID由一个Cookie对象提供,则返回true,否则为false
boolean isRequestedSessionIdFromCookie();
// 如果请求的会话ID在请求URL中解码,返回true,否则为false
boolean isRequestedSessionIdFromURL();
// 获取使用multipart/form-data格式传递的http请求的请求体,通常用于获取上传文件。
Collection<Part> getParts() throws IOException, ServletException;
// Part用来处理文件上传,获取对应名称的Part
Part getPart(String var1) throws IOException, ServletException;
// 以下方法不作分析
boolean authenticate(HttpServletResponse var1) throws IOException, ServletException;
void login(String var1, String var2) throws ServletException;
void logout() throws ServletException;
/** @deprecated */
boolean isRequestedSessionIdFromUrl();
}
其中,HttpServletRequestWrapper 类是该接口的简单实现类。