更新時間:2023-01-29 來源:黑馬程序員 瀏覽量:

當客戶端訪問Web服務器中的JSP頁面時,會通過請求消息頭傳遞一些信息,例如請求消息頭中的“User-Agent”字段可以告訴服務器瀏覽器的類型。為了獲取請求消息頭中的信息,EL表達式提供了兩個隱式對象header和headerValues,接下來,針對這兩個對象進行詳細講解,具體如下。
header對象用于獲取請求頭字段的某個值,具體示例如下。
${header["user- agent"]} ${headerValues["Accept- language"] [0]}如果一個請求頭字段有多個值,可以使用headerValues對象,該對象用于返回請求頭字符的所有值組成的數(shù)組,如果要獲取某個請求頭字段的第一個值,可以使用如下代碼。
為了讓大家更好地學習這兩個隱式對象,接下來通過一個案例來演示header和headerValues隱式對象如何獲取請求參數(shù)的值,如例7-8所示。
例7-8 header.jsp
<%@page language="java" contentType="text/html;charset=utf-8"
pageEncoding="utf-8" import="java.util.*"%>
<html>
<head></head>
<body>
header.host:${Headers.host}
headerValues["Accept-Language"]:${headerValues["Accept-Language"] [0]}
headerValues["Accept-Language"]:${headerValues["Accept-Language"] [1]}
</body>
</html> 由于請求消息頭中Accept-Language頭字段的格式為zh-cn,zh;q=0,8,en-us;q=0.5,en;q=0.3,因此,使用headerValues對象只能獲取到一個值zh-cn,假設將Accept-Language頭字段賦予多個值,具體代碼如下。
GET/chapter07/header.jsp HTTP/1.1 Host:localhost:8080 Accept-language:zh-cn Accept-language:en-us
此時,使用headerValues對象便可以獲取Accept-Language頭字段的多個值,獲取到的結果如下。
header.host:localhost:8080 headerValues["Accept-Language"]:zh-cn headerValues["Accept-Language"]:en-us
需要注意的是,如果一個請求頭字段有多個值,那么在使用header獲取請求參數(shù)時,則返回請求頭字段的第一個值。
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19