`HttpServletRequest` 是 Java Servlet API 中的接口,它是 `ServletRequest` 接口的子接口,提供了更多用于访问 HTTP 请求信息的方法。`HttpServletRequest` 主要用于处理客户端发起的 HTTP 请求,并包含了许多用于获取请求信息的方法。
以下是 `HttpServletRequest` 接口的一些主要属性和方法的解析:
1. 无特定属性:`HttpServletRequest` 接口并未定义任何属性,它主要通过方法提供对请求信息的访问。
1. `String getAuthType()`: 返回对该请求进行身份验证的方案。例如,"BASIC" 或 "DIGEST"。
2. `String getContextPath()`: 返回请求的上下文路径部分。在 Web 应用程序中,通常是应用程序的部署路径。
3. `Cookie[] getCookies()`: 返回一个包含所有请求 Cookie 的数组。
4. `long getDateHeader(String name)`: 返回请求头中指定名称的日期值,如果没有找到该头或解析失败,则返回 -1。
5. `String getHeader(String name)`: 返回指定请求头的值。
6. `Enumeration
7. `Enumeration
8. `int getIntHeader(String name)`: 返回请求头中指定名称的整数值,如果没有找到该头或解析失败,则返回 -1。
9. `String getMethod()`: 返回请求的 HTTP 方法,例如 "GET"、"POST" 等。
10. `Part getPart(String name) throws IOException, ServletException`: 获取指定名称的请求的部分。适用于处理 `multipart/form-data` 类型的请求,例如文件上传。
11. `Collection
12. `String getPathInfo()`: 返回请求的附加路径信息。附加路径是请求 URL 中与 Servlet 映射关联的部分之后的内容。
13. `String getPathTranslated()`: 返回对应于 `getPathInfo()` 的实际文件系统路径。
14. `String getQueryString()`: 返回请求 URL 中的查询字符串部分。
15. `String getRemoteUser()`: 返回发出请求的用户的登录名(如果用户已通过身份验证),否则返回 `null`。
16. `String getRequestedSessionId()`: 返回客户端发起请求时提供的会话 ID。
17. `String getRequestURI()`: 返回请求的 URI(不包括查询字符串部分)。
18. `StringBuffer getRequestURL()`: 返回客户端发起请求时使用的完整 URL。
19. `StringBuffer getBufferedReader() throws IOException`: 获取请求体的字符输入流。通过此流,可以读取请求体中的字符数据。
20. `String getServletPath()`: 返回调用 Servlet 的请求的部分 URL 路径。
21. `HttpSession getSession()`: 返回与请求关联的会话。如果请求没有关联的会话,则创建一个新会话。
22. `HttpSession getSession(boolean create)`: 返回与请求关联的会话。如果请求没有关联的会话,并且 `create` 参数为 `true`,则创建一个新会话;否则返回 `null`。
23. `Principal getUserPrincipal()`: 返回与当前请求关联的用户的 `Principal` 对象。
24. `boolean isRequestedSessionIdFromCookie()`: 返回请求的会话 ID 是否是通过 Cookie 发送的。
25. `boolean isRequestedSessionIdFromURL()`: 返回请求的会话 ID 是否是通过 URL 发送的(已弃用)。
26. `boolean isRequestedSessionIdFromUrl()`: 返回请求的会话 ID 是否是通过 URL 发送的。
27. `boolean isRequestedSessionIdValid()`: 返回请求的会话 ID 是否有效。
28. `boolean isUserInRole(String role)`: 返回当前用户是否属于指定的角色。
这些方法允许开发人员在 Java Web 应用程序中访问和处理 HTTP 请求的各个方面,从而实现动态的、交互式的 Web 应用程序。`HttpServletRequest` 接口的实现类通常是 `org.apache.catalina.connector.RequestFacade`,具体实现类可能会因不同的 Servlet 容器而有所不同。