request 对象提供了一系列方法,可以获取请求参数信息、表单数据、HTTP 头信息、cookie 和 HTTP 请求方法等
| 方法 | 描述 |
|---|---|
| 设置 | |
| void setCharacterEncoding(String name) | 设置请求的字符编码格式 |
| void setAttribute(String name, Object value) | 在属性列表设置指定的属性 |
| 获取 | |
| String getContentType() | 得到请求体的MIME类型 |
| ServletInputStream getInputStream() | 得到请求体中一行的二进制流 |
| String getLocalName() | 获取响应请求的服务器端主机名 |
| String getLocalAddr() | 获取响应请求的服务器端地址 |
| int getLocalPort() | 获取响应请求的服务器端端口 |
| String getMethod() | 获取客户端向服务器端发送请求的方法(GET、POST) |
| String getServletPath() | 获取客户端所请求的脚本文件的文件路径 |
| HttpSession getSession() HttpSession getSession(boolean create) |
获取session,如果create为true,在无session的情况下创建一个 |
| String getPathInfo() | 取出请求中处于ServletPath和QueryString之间的额外信息 |
| 返回 | |
| String getParameter(String name) | 返回name指定参数的参数值 |
| Enumeration getParameterNames() | 返回请求中所有参数的集合 |
| String[] getParameterValues(String name) | 返回包含参数name的所有值的数组 |
| Object getAttribute(String name) | 返回指定属性的属性值,该属性不存在时返回null |
| Enumeration getAttributeNames() | 返回所有可用属性名的枚举 |
| String getAuthType() | 返回用来保护servlet的认证方法的名称,未受保护时返回null |
| String getCharacterEncoding() | 返回字符编码方式 |
| int getContentLength() | 返回请求体的长度(以字节数),不能确定长度时返回-1 |
| String getContentPath() | 返回请求的路径 |
| Cookie[] getCookies() | 返回客户端所有的Cookie的数组 |
| Enumeration getHeaderNames() | 返回所有HTTP头的名称的集合 |
| Enumeration getHeaders(String name) | 返回指定HTTP头的所有值的集合 |
| String getHeader(String name) | 返回指定名称的HTTP头的信息 |
| long getDateHeader(String name) | 返回指定名称的Data类型的HTTP头的信息 |
| int getIntHeader(String name) | 返回指定名称的Int类型的HTTP头的信息 |
| Locale getLocale() | 返回当前页的Locale对象,可以在response中设定 |
| Enumeration getLocales() | 返回请求中所有的Locale对象的集合 |
| Map getParameterMap() | 该方法返回包含请求中所有参数的一个Map对象 |
| String getQueryString() | 返回get方法传递的参数字符串,该方法不分解出单独的参数 |
| String getPathTranslated() | 返回用getPathInfo()方法取得的路径信息的实际路径 |
| String getProtocol() | 返回请求使用的协议。可以是HTTP1.1或者HTTP1.0 |
| BufferedReader getReader() | 返回请求的输入流对应的Reader对象 该方法和getInputStream()方法在一个页面中只能调用一个 |
| String getRemoteAddr() | 返回发送此请求的客户端IP地址 |
| String getRemoteHost() | 返回发送此请求的客户端主机名 |
| String getRemoteUser() | 返回经过客户端验证的用户名,未经验证返回null |
| int getRemotePort() | 返回发出请求的客户端主机端口 |
| String getRealPath(String path) | 返回一虚拟路径的真实路径 |
| String getRequestedSessionId() | 返回请求的session的标识 |
| String RequestURI() | 返回发出请求的客户端地址,但是不包括请求的参数字符串 |
| StringBuffer getRequestURI() | 返回响应请求的服务器端地址 |
| String getScheme() | 返回请求用的计划名,如:http、https及ftp等 |
| String getServerName() | 返回响应请求的服务器名称 |
| int getServerPort() | 返回服务器接受此请求所用的端口号 |
| Principal getUserPrincipal() | 返回包含用户登陆名的一个java.security.Principal对象 |
| 删除 | |
| void removeAttribute(String name) | 在属性列表中删除指定名称的属性 |
| 检查 | |
| boolean isRequestedSessionIdFromCookie() | 检查请求的会话ID是否为通过Cookie传入 |
| boolean isRequestedSessionIdFromURL() | 检查请求的会话ID是否为通过URL传入 |
| boolean isRequestedSessionIdValid() | 检查请求的会话ID是否仍然有效 |
| boolean isSecure() | 检查请求是否使用安全链接,如HTTPS等 |
| boolean isUserInRole(String role) | 检查已经通过验证的用户是否在是role所指定的角色 |
| 其它 | |
| RequestDispatcher getRequestDispatcher(String path) | 按给定的路径生成资源转向处理适配器对象 |
成员:
String BASIC_AUTH = "BASIC"
String CLIENT_CERT_AUTH = "CLIENT_CERT"
String DIGEST_AUTH = "DIGEST"
String FORM_AUTH = "FORM"
| 方法 | 说明 |
|---|---|
| String getParameter(String name) | 获取请求参数 name 的值 |
| Enumeration getParameterNames() | 获取所有参数名称 |
| String[] getParameterValues(String name) | 获取请求参数 name 的所有值 |
| Object getAttribute(String name) | 获取 name 属性的值 |
| cookie[] getCookies() | 获取所有的 cookie 对象 |
| String getHeader(String name) | 获取 name 指定的 HTTP 头信息 |
| String getMethod() | 获取 HTTP 请求方法/客户提交信息方式 |
| HttpSession getSession() | 返回 request 对应的 session 对象,如果没有则创建一个 session 对象 |
| HttpSession getSession(boolean create) | 返回 request 对应的 session 对象,如果没有,且 create 值为 true,则创建一个 session 对象 |
| Enumeration getHeaderNames() | 返回 HTTP 头信息的名称集合 |
| Enumeration getAttributeNames() | 返回所有属性的名称集合 |
| void setAttribute(String key, Object value) | 给 key 对象赋 value 值 |
| void removeAttribute(String name) | 删除指定的 name 属性 |
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ page import="java.util.*"%>
- <!DOCTYPE html>
- <html>
- <head>
- </head>
- <body>
- <h2>获取HTTP请求头信息</h2>
- <table width="100%" border="1" align="center">
- <tr bgcolor="#949494">
- <th>参数名称</th>
- <th>参数值</th>
- </tr>
- <%
- Enumeration headerNames = request.getHeaderNames();
- while (headerNames.hasMoreElements()) {
- String paramName = (String) headerNames.nextElement();
- out.print("<tr><td>" + paramName + "</td>\n");
- String paramValue = request.getHeader(paramName);
- out.println("<td> " + paramValue + "</td></tr>\n");
- }
- %>
- </table>
- </body>
- </html>

| 参数名称 | 说明 |
|---|---|
| host | 表示服务器的主机名和端口号 |
| connection | 判断客户端是否可以持续性的连接 HTTP |
| cache-control | 网页缓存控制,默认值为 no-cache,表明每次访问都从服务器中获取页面 |
| upgrade-insecure-requests | Chrome(谷歌浏览器)会在 HTTP 请求中加入Upgrade-Insecure-Requests: 1 ,服务器收到请求后会返回 Content-Security-Policy: upgrade-insecure-requests头来告诉浏览器,可以把本站的所有 http 连接升级为 https 连接。使用其它浏览器没有该参数 |
| user-agent | 客户端程序的相关信息,例如:浏览器版本、操作系统类型等 |
| accept | 客户端能接收的 MIME 类型 |
| sec-fetch-* | 网络请求的元数据描述,也是 Chrome 特有的参数 |
| accept-encoding | 指明客户端能够处理的编码类型有哪些 |
| accept-language | 浏览器的首选语言 |
| cookie | 会话信息,每个会话都有一个对应的会话 ID 或其他信息 |