JSP request 是 javax.servlet.http.HttpServletRequest 的实例对象,主要用来获取客户端提交的数据。
request 对象提供了一系列方法,可以获取请求参数信息、表单数据、HTTP 头信息、cookie 和 HTTP 请求方法等。request 对象常用方法如下表所示。
方法 | 说明 |
---|---|
String getParameter(String name) | 获取请求参数 name 的值 |
Enumeration getParameterNames() | 获取所有参数名称 |
String[] getParameterValues(String name) | 获取请求参数 name 的所有值 |
Object getAttribute(String name) | 获取 name 属性的值 |
Enumeration getAttributeNames() | 返回所有属性的名称集合 |
void setAttribute(String key, Object value) | 给 key 对象赋 value 值 |
void removeAttribute(String name) | 删除指定的 name 属性 |
cookie[] getCookies() | 获取所有的 cookie 对象 |
HttpSession getSession() | 返回 request 对应的 session 对象,如果没有则创建一个 session 对象 |
HttpSession getSession(boolean create) | 返回 request 对应的 session 对象,如果没有,且 create 值为 true,则创建一个 session 对象 |
Enumeration getHeaderNames() | 返回 HTTP 头信息的名称集合 |
String getHeader(String name) | 获取 name 指定的 HTTP 头信息 |
String getMethod() | 获取 HTTP 请求方法/客户提交信息方式 |
在 index.jsp 页面使用 getHeaderNames() 方法获取 HTTP 头信息,并遍历输出参数名称和对应值。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
<title>城东书院(www.cdsy.xyz)</title>
</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 或其他信息 |