HttpServletRequest 接口继承自 ServletRequest 接口,其主要作用是封装 HTTP 请求消息。由于 HTTP 请求消息分为请求行、请求消息头和请求消息体三部分。因此,在 HttpServletRequest 接口中定义了获取请求行、请求头和请求消息体的相关方法。
本节将针对常用的获取请求行和请求消息头的相关方法进行讲解,下节《Java servlet获取form表单数据(参数)》继续讲解如何通过 HttpServletRequest 接口获取用户提交的 form 表单数据。
获取请求行信息的相关方法
当访问 Servlet 时,所有请求消息将被封装到 HttpServletRequest 对象中,请求消息的请求行中包含请求方法、请求资源名、请求路径等信息,为了获取这些信息,HttpServletRequest 接口定义了一系列方法,如表 1 所示。
表 1 获取请求行信息的常用方法
方法声明
功能描述
String getMethod()
该方法用于获取 HTTP 请求消息中的请求方式(如 GET、POST 等)
String getRequestURI()
该方法用于获取请求行中的资源名称部分即位于 URL 的主机和端门之后、参数部分之前的部分
String getQueryString()
该方法用于获取请求行中的参数部分,也就是资源路径后问号(?)以后的所有内容
String getContextPath()
该方法用于获取请求 URL 中属于 Web 应用程序的路径,这个路径以 / 开头,表示相对于整个 Web 站点的根目录,路径结尾不含 /。如果请求 URL 属于 Web 站点的根目录,那么返回结果为空字符串("")
String getServletPath()
该方法用于获取 Servlet 的名称或 Servlet 所映射的路径
String getRemoteAddr()
该方法用于获取请求客户端的 IP 地址,其格式类似于 192.168.0.3
String getRemoteHost()
该方法用于获取请求客户端的完整主机名,其格式类似于 pcl.mengma.com。需要注意的是,如果无法解析出客户机的完整主机名,那么该方法将会返回客户端的 IP 地址
int getRemotePort()
该方法用于获取请求客户端网络连接的端口号
String getLocaIAddr()
该方法用于获取 Web 服务器上接收当前请求网络连接的 IP 地址
String getLocalName()