JSP request对象

 
JSP request 是 javax.servlet.http.HttpServletRequest 的实例对象,主要用来获取客户端提交的数据。

request 对象提供了一系列方法,可以获取请求参数信息、表单数据、HTTP 头信息、cookie 和 HTTP 请求方法等。request 对象常用方法如下表所示。

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.biancheng.net)</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>

运行结果如下:

index.jsp运行结果
 
头信息介绍如下:

参数名称 说明
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 或其他信息