Java Web 请求处理:HttpServletRequest 详解
在 Java Web 开发中,客户端的 HTTP 请求由 HttpServletRequest 对象封装,它提供了丰富的方法用于获取请求行、请求头、请求参数等信息。本文将系统梳理 HttpServletRequest 的核心功能,包括请求行解析、请求头获取、参数处理及会话管理等,帮助开发者高效处理客户端请求。
HttpServletRequest 概述
HttpServletRequest 是 ServletRequest 接口的子接口,专门用于处理 HTTP 协议的请求。它由 Servlet 容器创建并传递给 service() 方法,包含客户端请求的所有信息(如 URL、参数、 headers 等)。
1 | // HttpServlet 中处理请求的方法 |
请求行信息获取
HTTP 请求行由请求方法(如 GET/POST)、请求 URI 和协议版本组成(如 GET /index.jsp HTTP/1.1)。HttpServletRequest 提供以下方法解析请求行:
| 方法 | 作用描述 | 示例(假设请求为 GET /app/user?id=1 HTTP/1.1) |
|---|---|---|
getMethod() |
获取请求方法(GET/POST/PUT/DELETE 等) | GET |
getProtocol() |
获取协议版本(如 HTTP/1.1) |
HTTP/1.1 |
getRequestURI() |
获取请求 URI(主机名后的路径部分) | /app/user |
getRequestURL() |
获取完整请求 URL(包含协议、主机、端口和路径) | http://localhost:8080/app/user |
getQueryString() |
获取 URL 中的查询参数(? 后的部分) |
id=1 |
getContextPath() |
获取当前 Web 应用的上下文路径(部署路径) | /app |
getServletPath() |
获取 Servlet 映射的路径 | /user |
getPathInfo() |
获取 URL 中 Servlet 路径后的额外路径信息(无则为 null) |
null(若请求为 /app/user/1,则返回 /1) |
网络连接信息
获取客户端与服务器的网络连接细节,如 IP、端口等: