学科分类
目录
Java Web

header和headerValues对象

当客户端访问Web服务器中的JSP页面时,会通过请求消息头传递一些信息,例如请求消息头中的“User-Agent”字段可以告诉服务器浏览器的类型。为了获取请求消息头中的信息,EL表达式提供了两个隐式对象header和headerValues,接下来,针对这两个对象进行详细讲解,具体如下:

1、header对象

header对象用于获取请求头字段的某个值,具体示例如下:

${header["user-agent"]}

2、headerValues对象

如果一个请求头字段有多个值,可以使用headerValues对象,该对象用于返回请求头字符的所有值组成的数组,如果要获取某个请求头字段的第一个值,可以使用如下代码:

${headerValues["Accept-Language"][0]}

为了让初学者更好的学习这两个隐式对象,接下来通过一个案例来演示header和headerValues隐式对象如何获取请求参数的值,如例1所示。

例1 header.jsp

 1  <%@ page language="java" contentType="text/html; charset=utf-8"

 2    pageEncoding="utf-8" import="java.util.*"%>

 3  <html>

 4  <head></head>

 5  <body>

 6   header.host:${header.host} 

 7   headerValues["Accept-Language"]:${headerValues["Accept-Language"][0]}

 8   headerValues["Accept-Language"]:${headerValues["Accept-Language"][1]}

 9  </body>

 10 </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获取请求参数时,则返回请求头字段的第一个值。

点击此处
隐藏目录